]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
i386: Separate costs of pseudo registers from hard registers
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-08-15 H.J. Lu <hongjiu.lu@intel.com>
2
3 PR target/90878
4 * config/i386/i386.c (inline_memory_move_cost): Use hard_register
5 for costs of hard register moves.
6 (ix86_register_move_cost): Likewise.
7 * config/i386/i386.h (processor_costs): Move costs of hard
8 register moves to hard_register. Add int_load, int_store,
9 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
10 sse_load, sse_store, sse_unaligned_load and sse_unaligned_store
11 for costs of RTL expressions.
12 * config/i386/x86-tune-costs.h: Move costs of hard register
13 moves to hard_register. Duplicate int_load, int_store,
14 xmm_move, ymm_move, zmm_move, sse_to_integer, integer_to_sse,
15 sse_load, sse_store for costs of RTL expressions.
16
17 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
18
19 * target.def (setup_incoming_vararg_bounds): Remove.
20 * doc/tm.texi.in (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Remove.
21 * doc/tm.texi: Regenerate.
22 * targhooks.c (default_setup_incoming_vararg_bounds): Delete.
23 * targhooks.h (default_setup_incoming_vararg_bounds): Likewise.
24 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
25 (TARGET_SETUP_INCOMING_VARARG_BOUNDS): Likewise.
26
27 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
28
29 MSP430: Fix lines over 80 characters long in
30 config/msp430/*.{c,h} files
31
32 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix format
33 specifier in string.
34 (msp430_select_hwmult_lib): Split line more than 80 characters long.
35 * config/msp430/msp430-devices.c (msp430_extract_mcu_data): Remove
36 redundant old comment.
37 * config/msp430/msp430-protos.h (msp430_output_aligned_decl_common):
38 Split line more than 80 characters long.
39 * config/msp430/msp430.c (msp430_option_override): Likewise.
40 (msp430_return_in_memory): Likewise.
41 (msp430_gimplify_va_arg_expr): Likewise.
42 (TARGET_ADDR_SPACE_LEGITIMATE_ADDRESS_P): Likewise.
43 (msp430_legitimate_constant): Likewise.
44 (TARGET_ALLOCATE_STACK_SLOTS_FOR_ARGS): Likewise.
45 (msp430_attr): Likewise.
46 (msp430_data_attr): Likewise.
47 (msp430_start_function): Likewise.
48 (gen_prefix): Likewise.
49 (msp430_init_sections): Likewise.
50 (msp430_select_section): Likewise.
51 (msp430_function_section): Likewise.
52 (msp430_unique_section): Likewise.
53 (msp430_output_aligned_decl_common): Likewise.
54 (msp430_do_not_relax_short_jumps): Likewise.
55 (msp430_init_builtins): Likewise.
56 (msp430_expand_delay_cycles): Likewise.
57 (msp430_expand_prologue): Likewise.
58 (msp430_expand_epilogue): Likewise.
59 (msp430_expand_helper): Likewise.
60 (msp430_split_movsi): Likewise.
61 (msp430_print_operand): Likewise.
62 (msp430_return_addr_rtx): Likewise.
63 (msp430x_extendhisi): Likewise.
64 * config/msp430/msp430.h (STARTFILE_SPEC): Likewise.
65 (ASM_SPEC): Likewise.
66 Remove very obvious comments.
67 (LIB_SPEC): Split line more than 80 characters long.
68 (EH_RETURN_HANDLER_RTX): Likewise.
69 (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
70
71 2019-08-15 Jozef Lawrynowicz <jozef.l@mittosystems.com>
72
73 MSP430: Fix whitespace errors and incorrect indentation in
74 config/msp430/*.{c,h} files
75
76 * config/msp430/driver-msp430.c (msp430_select_cpu): Fix indentation.
77 (msp430_select_hwmult_lib): Likewise.
78 * config/msp430/msp430-devices.c (parse_devices_csv_1): Likewise.
79 (msp430_extract_mcu_data): Likewise.
80 (struct t_msp430_mcu_data): Likewise.
81 * config/msp430/msp430.c (struct machine_function): Remove whitespace
82 before left square bracket.
83 (msp430_option_override): Fix indentation.
84 (msp430_hard_regno_nregs_with_padding): Likewise.
85 (msp430_initial_elimination_offset): Likewise.
86 (msp430_special_register_convention_p): Remove whitespace before left
87 square bracket and after exclamation mark.
88 (msp430_evaluate_arg): Likewise.
89 (msp430_callee_copies): Fix indentation.
90 (msp430_gimplify_va_arg_expr): Likewise.
91 (msp430_function_arg_advance): Remove whitespace before left square
92 bracket.
93 (reg_ok_for_addr): Likewise.
94 (msp430_preserve_reg_p): Likewise.
95 (msp430_compute_frame_info): Likewise.
96 (msp430_asm_output_addr_const_extra): Add space between function name
97 and open parenthesis.
98 (has_section_name): Fix indentation.
99 (msp430_attr): Remove trailing whitespace.
100 (msp430_section_attr): Likewise.
101 (msp430_data_attr): Likewise.
102 (struct msp430_attribute_table): Fix comment and whitespace.
103 (msp430_start_function): Remove whitespace before left square bracket.
104 Add space between function name and open parenthesis.
105 (msp430_select_section): Remove trailing whitespace.
106 (msp430_section_type_flags): Remove trailing whitespace.
107 (msp430_unique_section): Remove space before closing parenthesis.
108 (msp430_output_aligned_decl_common): Change 8 spaces to a tab.
109 (msp430_builtins): Remove whitespace before left square bracket.
110 (msp430_init_builtins): Fix indentation.
111 (msp430_expand_prologue): Remove whitespace before left square bracket.
112 Remove space before closing parenthesis.
113 (msp430_expand_epilogue): Remove whitespace before left square bracket.
114 (msp430_split_movsi): Remove space before closing parenthesis.
115 (helper_function_name_mappings): Fix indentation.
116 (msp430_use_f5_series_hwmult): Fix whitespace.
117 (use_32bit_hwmult): Likewise.
118 (msp430_no_hwmult): Likewise.
119 (msp430_output_labelref): Remove whitespace before left square bracket.
120 (msp430_print_operand_raw): Likewise.
121 (msp430_print_operand_addr): Likewise.
122 (msp430_print_operand): Add two spaces after '.' in comment.
123 Fix trailing whitespace.
124 (msp430x_extendhisi): Fix indentation.
125 * config/msp430/msp430.h (TARGET_CPU_CPP_BUILTINS): Change 8 spaces to
126 tab.
127 (PC_REGNUM): Likewise.
128 (STACK_POINTER_REGNUM): Likewise.
129 (CC_REGNUM): Likewise.
130
131 2019-08-15 Richard Biener <rguenther@suse.de>
132
133 PR target/91454
134 * config/i386/i386-features.c (gen_gpr_to_xmm_move_src): New
135 helper.
136 (general_scalar_chain::make_vector_copies): Use it.
137
138 2019-08-15 Bernd Edlinger <bernd.edlinger@hotmail.de>
139
140 * function.c (assign_parm_setup_reg): Handle misaligned stack arguments.
141
142 2019-08-15 Martin Liska <mliska@suse.cz>
143
144 * tree-ssa-dce.c (propagate_necessity): We can't reach now
145 operators with no arguments.
146 (eliminate_unnecessary_stmts): Likewise here.
147
148 2019-08-15 Uroš Bizjak <ubizjak@gmail.com>
149
150 * config/i386/i386-features.c (general_scalar_chain::convert_insn)
151 <case COMPARE>: Revert 2019-08-14 change.
152 (convertible_comparison_p): Revert 2019-08-14 change. Return false
153 for (TARGET_64BIT || mode != DImode).
154
155 2019-08-15 Aldy Hernandez <aldyh@redhat.com>
156
157 * tree-vrp.c (value_range_base::set): Merge in code from
158 value_range_base::set_and_canonicalize.
159 Enforce canonicalization at set time.
160 Normalize [MIN, MAX] into VARYING and ~[MIN, MAX] into UNDEFINED.
161 (value_range_base::set_undefined): Inline call to set().
162 (value_range_base::set_varying): Same.
163 (value_range_base::singleton_p): Handle VR_ANTI_RANGEs.
164 (vrp_val_max): New argument handle_pointers.
165 (vrp_val_min): Same.
166 (ranges_from_anti_range): Same.
167 (extract_range_into_wide_ints): Use tree argument instead of sign
168 and precision.
169 (extract_range_from_multiplicative_op): Take in tree type instead
170 of precision and sign. Adapt function for canonicalized ranges.
171 (extract_range_from_binary_expr): Pass type to
172 extract_range_from_multiplicative_op.
173 Adapt for canonicalized ranges.
174 (extract_range_from_unary_expr): Same.
175 (value_range_base::intersect_helper): Adjust for canonicalized
176 ranges.
177 (value_range_base::union_helper): Same.
178 (value_range_base::normalize_symbolics): New.
179 * tree-vrp.h (class value_range_base): Remove
180 set_and_canonicalize.
181 New prototype for normalize_symbolics.
182 (class value_range): Remove set_and_canonicalize.
183 (vrp_val_min): Adjust prototype.
184 (vrp_val_max): Same.
185 * vr-values.c
186 (vr_values::extract_range_for_var_from_comparison_expr): Call set
187 instead of set_and_canonicalize.
188
189 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
190
191 PR middle-end/91444
192 * tree-vect-stmts.c (vectorizable_call): Check that the function
193 is a BUILT_IN_MD function before passing it to
194 targetm.vectorize.builtin_md_vectorized_function.
195
196 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
197
198 * config/aarch64/aarch64-protos.h (aarch64_sve_mode_p): Declare.
199 * config/aarch64/aarch64.c (aarch64_sve_mode_p): New function.
200 (aarch64_select_early_remat_modes): Use it.
201
202 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
203
204 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
205 16 for SVE predicates even if they are fixed-length.
206
207 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
208
209 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
210 operand order match the MOV /Z alias.
211
212 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
213
214 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
215 the vector pattern as an aarch64_svpattern argument. Update the
216 overloaded caller accordingly.
217 (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
218 (aarch64_output_sve_vector_inc_dec): Likewise.
219
220 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
221
222 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
223 multiplication case, try to compute VG * (lowest set bit) directly
224 rather than always basing the multiplication on VG. Use
225 expand_mult for the multiplication if we can.
226
227 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
228
229 * config/aarch64/aarch64-protos.h
230 (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
231 (aarch64_sve_inc_dec_immediate_p): Rename to...
232 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
233 (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
234 (aarch64_output_sve_scalar_inc_dec): Declare.
235 (aarch64_output_sve_inc_dec_immediate): Rename to...
236 (aarch64_output_sve_vector_inc_dec): ...this.
237 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
238 (aarch64_output_sve_scalar_inc_dec): New functions.
239 (aarch64_output_sve_addvl_addpl): Remove the base and offset
240 arguments. Only handle true ADDVL and ADDPL instructions;
241 don't emit an INC or DEC.
242 (aarch64_sve_inc_dec_immediate_p): Rename to...
243 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
244 (aarch64_output_sve_inc_dec_immediate): Rename to...
245 (aarch64_output_sve_vector_inc_dec): ...this. Update call to
246 aarch64_sve_vector_inc_dec_immediate_p.
247 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
248 (aarch64_sve_plus_immediate): New predicates.
249 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
250 rather than aarch64_sve_addvl_addpl_immediate.
251 (aarch64_sve_inc_dec_immediate): Rename to...
252 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to
253 aarch64_sve_vector_inc_dec_immediate_p.
254 (aarch64_sve_add_operand): Update accordingly.
255 * config/aarch64/constraints.md (Uai): New constraint.
256 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
257 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
258 operand into a register if it satisfies aarch64_sve_plus_immediate.
259 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
260 for Uai. Update calls to aarch64_output_sve_addvl_addpl.
261 * config/aarch64/aarch64-sve.md (add<mode>3): Call
262 aarch64_output_sve_vector_inc_dec instead of
263 aarch64_output_sve_inc_dec_immediate.
264
265 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
266
267 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
268 (UNSPEC_REVW): New constants.
269 (elem_bits): New mode attribute.
270 (SVE_INT_UNARY): New int iterator.
271 (optab): Handle UNSPEC_REV[BHW].
272 (sve_int_op): New int attribute.
273 (min_elem_bits): Handle VNx16QI and the predicate modes.
274 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
275 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
276 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
277 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
278 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
279 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
280 unspecs based on the total width of the reversed data.
281 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a
282 reinterpret followed by a subreg on big-endian targets.
283
284 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
285 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
286
287 * config/aarch64/aarch64-sve.md
288 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
289 alternatives in which one of the inputs is in the same register
290 as the output.
291
292 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
293
294 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
295 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
296
297 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
298
299 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
300 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
301
302 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
303 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
304
305 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
306 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
307 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
308
309 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
310 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
311
312 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
313 Add an alternative that uses reversed shifts.
314
315 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
316
317 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
318 struct.
319
320 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
321
322 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
323 a commutativity marker.
324
325 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
326 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
327
328 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
329 (aarch64_prepare_sve_cond_int_fma): Declare.
330 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
331 (aarch64_prepare_sve_int_fma): New functions.
332 (aarch64_prepare_sve_cond_int_fma): Likewise.
333 * config/aarch64/aarch64-sve.md
334 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
335 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
336 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
337 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
338 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
339 (*madd<mode>): Rename to...
340 (*fma<mode>4): ...this.
341 (*msub<mode>): Rename to...
342 (*fnma<mode>4): ...this.
343
344 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
345 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
346
347 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
348 Print 2.0 naturally.
349 (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
350 * config/aarch64/predicates.md
351 (aarch64_sve_float_negated_arith_immediate): New predicate,
352 renamed from aarch64_sve_float_arith_with_sub_immediate.
353 (aarch64_sve_float_arith_with_sub_immediate): Test for both
354 positive and negative constants.
355 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
356 or an aarch64_sve_float_arith_with_sub_immediate.
357 * config/aarch64/constraints.md (vsN): Use
358 aarch64_sve_float_negated_arith_immediate.
359 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
360 iterator.
361 (sve_pred_fp_rhs2_immediate): New int attribute.
362 * config/aarch64/aarch64-sve.md
363 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
364 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
365 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
366 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
367 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
368 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
369
370 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
371 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
372
373 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
374 (*aarch64_cond_abd<SVE_F:mode>_3)
375 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
376
377 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
378 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
379
380 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
381 (*aarch64_cond_<su>abd<mode>_any): New patterns.
382
383 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
384 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
385
386 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
387 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
388 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
389 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
390 optabs.
391 * optabs.h (create_convert_operand_from): Expand comment.
392 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
393 when mapping scalar rtxes to vector operands.
394 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
395 ashiftrt and lshiftrt.
396 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
397 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
398 (*cond_<optab><mode>_any_const): New patterns.
399
400 2019-08-15 Martin Liska <mliska@suse.cz>
401
402 PR ipa/91438
403 * cgraph.c (cgraph_node::remove): When setting
404 n->origin = NULL for all nested functions, reset
405 also next_nested.
406
407 2019-08-15 Martin Liska <mliska@suse.cz>
408
409 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
410 and next_nested.
411
412 2019-08-15 Martin Liska <mliska@suse.cz>
413
414 PR ipa/91404
415 * passes.c (order): Remove.
416 (uid_hash_t): Likewise).
417 (remove_cgraph_node_from_order): Remove from set
418 of pointers (cgraph_node *).
419 (insert_cgraph_node_to_order): New.
420 (duplicate_cgraph_node_to_order): New.
421 (do_per_function_toporder): Register all 3 cgraph hooks.
422 Skip removed_nodes now as we know about all of them.
423
424 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
425
426 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
427 <case E_V8QImode>: Use vector_set path for
428 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
429 (ix86_expand_vector_init_one_var) <case E_V8QImode>:
430 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
431
432 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
433
434 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
435
436 2019-08-14 Martin Sebor <msebor@redhat.com>
437
438 PR tree-optimization/91294
439 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
440 source length as exact.
441
442 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
443
444 * doc/extend.texi: Add "noinit" attribute documentation.
445 * doc/sourcebuild.texi: Add noinit effective target documentation.
446 * varasm.c (default_section_type_flags): Add support for "noinit"
447 section.
448 (default_elf_select_section): Add support for "noinit" attribute.
449 * config/msp430/msp430.c (msp430_attribute_table): Remove
450 "noinit" entry.
451
452 2019-08-14 Richard Biener <rguenther@suse.de>
453 Uroš Bizjak <ubizjak@gmail.com>
454
455 PR target/91154
456 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
457 mode arguments.
458 (scalar_chain::smode): New member.
459 (scalar_chain::vmode): Likewise.
460 (dimode_scalar_chain): Rename to...
461 (general_scalar_chain): ... this.
462 (general_scalar_chain::general_scalar_chain): Take mode arguments.
463 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
464 base with TImode and V1TImode.
465 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
466 (general_scalar_chain::vector_const_cost): Adjust for SImode
467 chains.
468 (general_scalar_chain::compute_convert_gain): Likewise. Add
469 {S,U}{MIN,MAX} support.
470 (general_scalar_chain::replace_with_subreg): Use vmode/smode.
471 (general_scalar_chain::make_vector_copies): Likewise. Handle
472 non-DImode chains appropriately.
473 (general_scalar_chain::convert_reg): Likewise.
474 (general_scalar_chain::convert_op): Likewise.
475 (general_scalar_chain::convert_insn): Likewise. Add
476 fatal_insn_not_found if the result is not recognized.
477 (convertible_comparison_p): Pass in the scalar mode and use that.
478 (general_scalar_to_vector_candidate_p): Likewise. Rename from
479 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support.
480 (scalar_to_vector_candidate_p): Remove by inlining into single
481 caller.
482 (general_remove_non_convertible_regs): Rename from
483 dimode_remove_non_convertible_regs.
484 (remove_non_convertible_regs): Remove by inlining into single caller.
485 (convert_scalars_to_vector): Handle SImode and DImode chains
486 in addition to TImode chains.
487 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
488 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
489 (*<maxmin>di3_doubleword): Likewise.
490
491 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
492 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
493
494 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
495 (*cond_bic<mode>_any): New patterns.
496
497 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
498
499 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
500 take the equivalent mask, as well as a bit count.
501 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
502 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
503 (aarch64_sve_pred_and_operand): New predicates.
504 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
505 code attribute.
506 * config/aarch64/aarch64-sve.md
507 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
508 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
509
510 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
511
512 * config/aarch64/aarch64-sve.md
513 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
514 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
515 New patterns.
516
517 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
518 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
519
520 * config/aarch64/aarch64-sve.md
521 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
522 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
523
524 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
525 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
526
527 * config/aarch64/aarch64-sve.md
528 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
529 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
530
531 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
532
533 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
534 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
535 New pattern.
536
537 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
538 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
539
540 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
541
542 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
543 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
544
545 * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
546 (aarch64_print_vector_float_operand): Also handle 8-bit floats.
547 (aarch64_print_operand): Add support for %I.
548 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
549 Bitcast floating-point constants to the corresponding integer constant.
550 (aarch64_float_const_representable_p): Handle vectors as well
551 as scalars.
552 (aarch64_expand_sve_vcond): Make sure that the operands are valid
553 for the new vcond_mask_<mode><vpred> expander.
554 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
555 test aarch64_float_const_representable_p.
556 (aarch64_sve_reg_or_dup_imm): New predicate.
557 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
558 gen_vcond_mask_<mode><vpred> instead of
559 gen_aarch64_sve_dup<mode>_const.
560 (vcond_mask_<mode><vpred>): Turn into a define_expand that
561 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
562 for operands 1 and 2 respectively. Force operand 2 into a
563 register if operand 1 is a register. Fold old define_insn...
564 (aarch64_sve_dup<mode>_const): ...and this define_insn...
565 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle
566 floating-point constants that can be moved as integers. Add
567 alternatives for MOV /M and FMOV /M.
568 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
569 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
570 1 and 2 respectively.
571 * config/aarch64/constraints.md (Ufc): Handle vectors as well
572 as scalars.
573 (vss): New constraint.
574
575 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
576
577 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
578 (aarch64_sve_float_maxmin_operand): New predicates.
579 * config/aarch64/constraints.md (vsB): New constraint.
580 (vsM): Fix typo.
581 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
582 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
583 UNSPEC_COND_FMINNM.
584 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
585 Use aarch64_sve_float_maxmin_operand for operand 2.
586 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
587 Add alternatives for the constant forms.
588
589 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
590
591 * config/aarch64/constraints.md (vsb): New constraint.
592 (vsm): Generalize description.
593 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
594 iterator.
595 (sve_imm_con): Handle smax, smin, umax and umin.
596 (sve_imm_prefix): New code attribute.
597 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
598 (aarch64_sve_vsb_operand): New predicates.
599 (aarch64_sve_mul_immediate): Rename to...
600 (aarch64_sve_vsm_immediate): ...this.
601 (aarch64_sve_mul_operand): Rename to...
602 (aarch64_sve_vsm_operand): ...this.
603 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
604 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
605 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
606 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
607 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
608 add movprfx support for the immediate alternatives.
609 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
610 of the above.
611 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
612 for operand 3.
613
614 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
615
616 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
617 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
618 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
619
620 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
621
622 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
623 (optab, sve_int_op): Handle them.
624 * config/aarch64/aarch64-sve.md: Expand comment.
625
626 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
627
628 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
629 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
630 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
631
632 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
633
634 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
635 (aarch64_expand_sve_const_pred_trn): New functions.
636 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
637 use the above functions when the parameter is true.
638 (aarch64_expand_sve_const_pred): Update call accordingly.
639 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
640 Rename to...
641 (@aarch64_sve_<perm_insn><mode>): ...this.
642
643 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
644
645 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
646 Declare.
647 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
648 (aarch64_sve_emit_int_cmp): New functions.
649 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
650 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
651 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
652 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
653 (UNSPEC_PRED_Z): New unspec.
654 (set_clobber_cc_nzc): Delete.
655 * config/aarch64/aarch64-sve.md: Add a block comment about
656 UNSPEC_PRED_Z.
657 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
658 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
659 the old pattern with that name. Use UNSPEC_PRED_Z instead of
660 UNSPEC_MERGE_PTRUE.
661 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
662 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to
663 check for compatible predicates.
664 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
665 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
666 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated
667 comparisons above.
668
669 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
670
671 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
672 * config/aarch64/aarch64-sve.md: Add a section describing it.
673 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
674 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
675 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
676 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
677 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
678 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
679 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
680 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
681 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
682 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
683 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
684 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
685 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
686 (aarch64_evpc_rev_local): Update accordingly.
687
688 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
689
690 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
691 iterators.
692 (SVE_BHSI, SVE_SDI): Tweak comment.
693 (SVE_HSDI): Likewise. Fix definition.
694 (SVE_SDF): New mode iterator.
695 (elem_bits): New mode attribute.
696 (SVE_COND_FCVT): New int iterator.
697 * config/aarch64/aarch64-sve.md
698 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
699 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
700 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
701 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
702 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
703 ...these new patterns.
704 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
705 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
706 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
707 Merge into...
708 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
709 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
710 ...these new patterns.
711 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
712 (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
713 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
714 ...this new pattern.
715 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
716 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
717 ...this new pattern.
718 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
719
720 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
721
722 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
723 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
724 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
725 unspecs.
726 (optab, su): Handle them.
727 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
728 * config/aarch64/aarch64-sve.md
729 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
730 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
731 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
732 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
733 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
734 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
735 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
736 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
737 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
738 FIXUORS.
739 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
740 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
741 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
742 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
743 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
744 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
745 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
746 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
747 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
748 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
749 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
750 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
751 of UNSPEC_FLOAT_CONVERT.
752 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
753 aarch64_sve_extend<mode><Vwide>2.
754
755 2019-08-14 Richard Biener <rguenther@suse.de>
756
757 PR target/91154
758 * config/i386/i386-features.c
759 (dimode_scalar_chain::compute_convert_gain): Compute and dump
760 individual instruction gain. Fix reg-reg copy GRP cost. Use
761 ix86_cost->sse_op for vector instruction costs.
762
763 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
764
765 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
766 (cmp_op): Handle it.
767 (SVE_COND_FP_CMP): Rename to...
768 (SVE_COND_FP_CMP_I0): ...this.
769 (SVE_FP_CMP): Remove.
770 * config/aarch64/aarch64-sve.md
771 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
772 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
773 using unspecs to represent the comparison.
774 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
775 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
776 accordingly.
777 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
778 (aarch64_unspec_cond_code): Move after integer code. Handle
779 UNORDERED.
780 (aarch64_emit_sve_predicated_cond): Replace with...
781 (aarch64_emit_sve_fp_cond): ...this new function.
782 (aarch64_emit_sve_or_conds): Replace with...
783 (aarch64_emit_sve_or_fp_conds): ...this new function.
784 (aarch64_emit_sve_inverted_cond): Replace with...
785 (aarch64_emit_sve_invert_fp_cond): ...this new function.
786 (aarch64_expand_sve_vec_cmp_float): Update accordingly.
787
788 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
789
790 * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
791 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
792 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
793 SVE_HSD instead of SVE_SD.
794
795 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
796 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
797
798 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
799 iterator.
800 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
801 attributes.
802 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
803 (mul<SVE_F:mode>3, div<SVE_F:mode>3)
804 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
805 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
806 (*div<SVE_F:mode>3): Generalize to...
807 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
808
809 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
810 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
811
812 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
813 constants.
814 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
815 predicate.
816 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
817 Declare.
818 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
819 function.
820 * config/aarch64/aarch64-sve.md: Add a block comment about the
821 handling of predicated FP operations.
822 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
823 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
824 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
825 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
826 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
827 operand.
828 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
829 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
830 operand.
831 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
832 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
833 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
834 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
835 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
836 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
837 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
838 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
839 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
840 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
841 strictness operands. Use aarch64_sve_pred_dominates_p to check
842 whether the predicate on the conditional operation is suitable
843 for merging. Split patterns into the canonical equal-predicate form.
844 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
845 Restrict the unpredicated alternatives to SVE_RELAXED_GP.
846
847 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
848 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
849
850 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
851 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
852 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
853 rtx codes.
854 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
855 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
856 unspecs.
857
858 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
859 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
860
861 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
862 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse
863 actually has, rather than relying on REG_EQUAL notes.
864 Make the insn operand order match the SVE operand order.
865 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
866 the SVE operand order.
867
868 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
869
870 * config/aarch64/aarch64.c (aarch64_target_reg): New function.
871 (aarch64_emit_set_immediate): Likewise.
872 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
873 (aarch64_pfalse_reg): Likewise.
874 (aarch64_convert_sve_data_to_pred): New function.
875 (aarch64_sve_move_pred_via_while): Take an optional target register
876 and the required register mode.
877 (aarch64_expand_sve_const_pred_1): New function.
878 (aarch64_expand_sve_const_pred): Likewise.
879 (aarch64_expand_mov_immediate): Build an all-true predicate
880 if the significant bits of the immediate are all true. Use
881 aarch64_expand_sve_const_pred for all compile-time predicate constants.
882 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
883 before register allocation.
884 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
885 a VNx16BI PTRUE when splitting the memory alternative.
886 (vec_duplicate<mode>): Update accordingly.
887 (*pred_cmp<cmp_op><mode>): Rename to...
888 (@aarch64_pred_cmp<cmp_op><mode>): ...this.
889
890 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
891
892 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
893 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
894 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
895 (UNSPEC_PTEST): New unspec.
896 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
897 * config/aarch64/iterators.md (data_bytes): New mode attribute.
898 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
899 * config/aarch64/aarch64-sve.md: Add a new section describing the
900 handling of UNSPEC_PTEST.
901 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
902 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
903 (ptest_ptrue<mode>): Replace with...
904 (aarch64_ptest<mode>): ...this new pattern.
905 (cbranch<mode>4): Update after above changes.
906 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
907 UNSPEC_PTEST_PTRUE.
908 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
909 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
910 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
911
912 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
913
914 PR lto/91287
915 * builtins.c (builtin_with_linkage_p): New function.
916 * builtins.h (builtin_with_linkage_p): New function.
917 * symtab.c (write_symbol): Remove redundant assert.
918 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
919 Remove FIXME and use builtin_with_linkage_p.
920
921 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
922
923 PR middle-end/91421
924 * tree-core.h (function_decl::function_code): Change type to
925 unsigned int.
926 * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
927 (DECL_UNCHECKED_FUNCTION_CODE): ...this.
928 (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
929 (DECL_FUNCTION_CODE): New function. Assert that the built-in class
930 is BUILT_IN_NORMAL.
931 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
932 (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
933 (fndecl_built_in_p): Change the type of the "name" argument to
934 unsigned int.
935 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
936 after check for DECL_BUILT_IN_CLASS.
937 * cgraphclones.c (build_function_decl_skip_args): Use
938 set_decl_built_in_function.
939 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
940 * ipa-split.c (split_function): Likewise.
941 * langhooks.c (add_builtin_function_common): Likewise.
942 * omp-simd-clone.c (simd_clone_create): Likewise.
943 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
944 * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
945 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
946 DECL_FUNCTION_CODE.
947 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
948 instead of DECL_FUNCTION_CODE.
949 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
950 instead of DECL_FUNCTION_CODE.
951 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
952 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
953 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND.
954 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
955 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
956 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
957 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
958 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
959 (alpha_gimple_fold_builtin): Likewise.
960 * config/arc/arc.c (arc_expand_builtin): Likewise.
961 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
962 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
963 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
964 * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
965 * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
966 * config/frv/frv.c (frv_expand_builtin): Likewise.
967 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
968 (gcn_expand_builtin): Likewise.
969 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
970 (fold_builtin_cpu): Likewise.
971 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
972 * config/i386/i386.c (ix86_fold_builtin): Likewise.
973 (ix86_gimple_fold_builtin): Likewise.
974 * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
975 (ia64_expand_builtin): Likewise.
976 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
977 * config/mips/mips.c (mips_expand_builtin): Likewise.
978 * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
979 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
980 * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
981 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
982 * config/pa/pa.c (pa_expand_builtin): Likewise.
983 * config/pru/pru.c (pru_expand_builtin): Likewise.
984 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
985 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
986 Likewise.
987 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
988 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
989 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
990 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
991 (rs6000_builtin_reciprocal): Likewise.
992 * config/rx/rx.c (rx_expand_builtin): Likewise.
993 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
994 * config/s390/s390.c (s390_expand_builtin): Likewise.
995 * config/sh/sh.c (sh_expand_builtin): Likewise.
996 * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
997 (sparc_fold_builtin): Likewise.
998 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
999 * config/spu/spu.c (spu_expand_builtin): Likewise.
1000 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
1001 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
1002 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
1003 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
1004 (xtensa_expand_builtin): Likewise.
1005
1006 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1007
1008 PR middle-end/91421
1009 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
1010 before the DECL_FUNCTION_CODE.
1011 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
1012 to check for a BUILT_IN_ALLOCA call.
1013 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
1014 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE.
1015 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
1016 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
1017 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
1018 for BUILT_IN_NORMAL functions.
1019 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
1020 test for BUILT_IN_TM_ABORT.
1021 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
1022 to check for a BUILT_IN_STACK_RESTORE call.
1023 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
1024 * tree-ssa-threadedge.c
1025 (record_temporary_equivalences_from_stmts_at_dest): Check for a
1026 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
1027 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
1028 test for a BUILT_IN_NORMAL call instead of a negative test for
1029 an internal function call.
1030
1031 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1032
1033 * tree.h (build_vector_a_then_b): Declare.
1034 * tree.c (build_vector_a_then_b): New function.
1035 * fold-const-call.c (fold_while_ult): Likewise.
1036 (fold_const_call): Use it to handle IFN_WHILE_ULT.
1037 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
1038 (aarch64_svpattern): New enum.
1039 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
1040 constants through aarch64_expand_mov_immediate.
1041 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
1042 than general_operand as the predicate for operand 1.
1043 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
1044 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
1045 insn_type.
1046 (simd_immediate_info::simd_immediate_info): New overload that
1047 takes a scalar_int_mode and an svpattern.
1048 (simd_immediate_info::u): Add a "pattern" field.
1049 (svpattern_token): New function.
1050 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
1051 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
1052 (aarch64_sve_move_pred_via_while): New functions.
1053 (aarch64_expand_mov_immediate): Try using
1054 aarch64_sve_move_pred_via_while for predicates that contain N ones
1055 followed by M zeros but that do not correspond to a VLnnn pattern.
1056 (aarch64_sve_pred_valid_immediate): New function.
1057 (aarch64_simd_valid_immediate): Use it instead of dealing directly
1058 with PTRUE and PFALSE.
1059 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
1060 forms.
1061
1062 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
1063
1064 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
1065 flag.
1066 (darwin_override_options): Likewise.
1067 * config/darwin.h: Likewise.
1068 * config/darwin.opt: Likewise.
1069 * config/i386/i386.c (output_pic_addr_const): Likewise.
1070 * config/rs6000/darwin.h: Likewise.
1071 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
1072 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
1073 ... this TARGET_MACHO_SYMBOL_STUBS.
1074 (FUNCTION_PROFILER):Likewise.
1075 * config/i386/i386.h: Likewise.
1076
1077 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
1078
1079 * config/i386/i386-expand.c (ix86_expand_vector_extract)
1080 <case E_V2SImode>: Use vec_extr path for
1081 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
1082 <case E_V8QImode>: Ditto.
1083 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
1084 Use SWI48 mode iterator. Use %k to output operand 0.
1085 (*mmx_pextrw): New insn pattern.
1086 (*mmx_pextrb): Ditto.
1087 (*mmx_pextrb_zext): Ditto.
1088
1089 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
1090
1091 * target.def (libc_has_function, libc_has_fast_function): Improve
1092 documentation strings.
1093 * doc/tm.texi: Regenerate.
1094
1095 2019-08-13 Caroline Tice <cmtice@google.com>
1096
1097 PR other/91396
1098 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
1099 vtv_end.o or vtv_end_preinit.o files if !static.
1100
1101 2019-08-13 Olivier Hainque <hainque@adacore.com>
1102
1103 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
1104
1105 2019-08-13 Olivier Hainque <hainque@adacore.com>
1106
1107 * rtlanal.c (tablejump_casesi_pattern): New function, to
1108 determine if a tablejump insn is a casesi dispatcher. Extracted
1109 from patch_jump_insn.
1110 * rtl.h (tablejump_casesi_pattern): Declare.
1111 * cfgrtl.c (patch_jump_insn): Use it.
1112 * dwarf2cfi.c (create_trace_edges): Use it.
1113
1114 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
1115
1116 PR target/81800
1117 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
1118 operand is larger than a long int.
1119
1120 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1121
1122 * machmode.h (opt_mode::else_mode): New function.
1123 (opt_mode::else_blk): Use it.
1124 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
1125 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
1126 (aarch64_gen_stepped_int_parallel): Likewise.
1127 (aarch64_stepped_int_parallel_p): Likewise.
1128 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
1129 argument.
1130 * config/aarch64/aarch64.c
1131 (aarch64_expand_sve_widened_duplicate): Delete.
1132 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
1133 (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
1134 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
1135 argument. Use early returns in the !CONST_INT_P handling.
1136 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
1137 than handling some inline.
1138 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
1139 from...
1140 (aarch64_simd_container_mode): ...here.
1141 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
1142 (aarch64_sve_ld1rq_operand_p): New functions.
1143 * config/aarch64/predicates.md (descending_int_parallel)
1144 (aarch64_sve_ld1rq_operand): New predicates.
1145 * config/aarch64/constraints.md (UtQ): New constraint.
1146 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
1147 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
1148 gen_vec_duplicate from call to aarch64_expand_mov_immediate.
1149 (@aarch64_sve_reinterpret<mode>): New expander.
1150 (*aarch64_sve_reinterpret<mode>): New pattern.
1151 (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
1152 (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
1153 (*sve_ld1rq<Vesize>): Replace with...
1154 (@aarch64_sve_ld1rq<mode>): ...this new pattern.
1155
1156 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
1157
1158 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
1159 16:12.
1160
1161 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1162
1163 * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
1164 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
1165 (msp430_check_path_for_devices): New.
1166 (parse_devices_csv_1): New.
1167 (parse_devices_csv): New.
1168 (msp430_extract_mcu_data): Try to find devices.csv and search for the
1169 MCU data in devices.csv before using the hard-coded data.
1170 Warn if devices.csv isn't found and the MCU wasn't found in the
1171 hard-coded data either.
1172 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
1173 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
1174 Search for devices.csv on -I and -L paths.
1175 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
1176 msp430_set_driver_var.
1177 * config/msp430/msp430.opt: Add -mwarn-devices-csv and
1178 -mdevices-csv-loc=.
1179 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
1180 searched for devices.csv.
1181 (mwarn-devices-csv): Document option.
1182
1183 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1184
1185 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
1186 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
1187 Use a single Dn alternative instead of separate Dz and Dm
1188 alternatives. Use aarch64_output_sve_move_immediate.
1189 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
1190 function.
1191 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
1192 for predicates too.
1193 (aarch64_output_sve_mov_immediate): Handle predicate modes.
1194 (aarch64_output_ptrue): Delete.
1195
1196 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1197
1198 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
1199 INDEX.
1200 (simd_immediate_info::value, simd_immediate_info::step)
1201 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
1202 with...
1203 (simd_immediate_info::u): ...this new union.
1204 (simd_immediate_info::simd_immediate_info): Update accordingly.
1205 (aarch64_output_simd_mov_immediate): Likewise.
1206 (aarch64_output_sve_mov_immediate): Likewise.
1207
1208 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1209
1210 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
1211 extra_gcc_objs.
1212 * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
1213 (msp430_select_cpu): New spec function.
1214 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
1215 MCU data.
1216 * config/msp430/msp430-devices.c: New file.
1217 * config/msp430/msp430-devices.h: New file.
1218 * config/msp430/msp430.c: Remove msp430_mcu_data.
1219 (msp430_option_override): Use msp430_extract_mcu_data to extract
1220 MCU data.
1221 (msp430_use_f5_series_hwmult): Likewise.
1222 (use_32bit_hwmult): Likewise.
1223 (msp430_no_hwmult): Likewise.
1224 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
1225 assembler.
1226 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
1227 and -mcpu option.
1228 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
1229 * config/msp430/t-msp430: Add rule to build msp430-devices.o.
1230 Remove hard-coded MCU multilib data.
1231
1232 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1233
1234 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
1235 based on the mode instead of testing properties of it.
1236
1237 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1238
1239 * doc/md.texi: Document the x and y constraints for AArch64.
1240 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
1241 (FP_LO8_REGS): New reg_class.
1242 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
1243 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
1244 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
1245 * config/aarch64/predicates.md (aarch64_simd_register): Use
1246 FP_REGNUM_P instead of checking the classes manually.
1247 * config/aarch64/constraints.md (y): New constraint.
1248
1249 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1250
1251 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
1252 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
1253 * config/aarch64/aarch64-simd.md
1254 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
1255 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
1256 from the asm template.
1257 * config/aarch64/aarch64-sve.md
1258 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
1259 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
1260 from the asm template.
1261 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
1262 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
1263 from the asm template.
1264 * config/aarch64/aarch64-simd-builtins.def: Update comment.
1265
1266 2019-08-13 Martin Liska <mliska@suse.cz>
1267
1268 * value-prof.c (gimple_ic_transform): Add new line.
1269 Print details with MSG_NOTE.
1270
1271 2019-08-13 Martin Liska <mliska@suse.cz>
1272
1273 * doc/invoke.texi: Document automatic detection of jobserver.
1274 * lto-wrapper.c (run_gcc): Detect jobserver always.
1275
1276 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
1277
1278 * config/i386/i386-expand.c (ix86_expand_vector_set)
1279 <case E_V2SImode>: Use vec_merge path for
1280 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
1281 <case E_V8QImode>: Ditto.
1282 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
1283 (*mmx_pinsrb): Ditto.
1284
1285 2019-08-12 Jakub Jelinek <jakub@redhat.com>
1286
1287 PR target/83250
1288 PR target/91340
1289 * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
1290 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
1291 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
1292 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
1293 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
1294
1295 2019-08-12 Richard Biener <rguenther@suse.de>
1296
1297 PR lto/91375
1298 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
1299 flag_devirtualize.
1300
1301 2019-08-12 Richard Biener <rguenther@suse.de>
1302
1303 PR driver/91130
1304 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
1305 lang_mask option, always use CL_DRIVER.
1306 (get_options_from_collect_gcc_options): Adjust.
1307 (find_and_merge_options): Likewise.
1308 (run_gcc): Likewise.
1309
1310 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1311
1312 * ipa-predicate.c (add_condition): Restore inverted test.
1313
1314 2019-08-10 Jakub Jelinek <jakub@redhat.com>
1315
1316 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
1317 (enum omp_clause_device_type_kind): New enum.
1318 (struct tree_omp_clause): Add subcode.device_type_kind.
1319 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
1320 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
1321 for device_type clause.
1322 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
1323 * tree-pretty-print.c (dump_omp_clause): Likewise.
1324
1325 PR target/91408
1326 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
1327 vector_operand.
1328
1329 2019-09-09 Vladimir Makarov <vmakarov@redhat.com>
1330
1331 * reload1.c (finish_spills): Do not check ira_conflicts_p when
1332 handling spilled pseudos.
1333
1334 2019-09-09 Richard Earnshaw <rearnsha@arm.com>
1335
1336 PR target/91386
1337 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
1338 to preserve the contents of the original insns.
1339
1340 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
1341
1342 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
1343 (addsi3_compare_op2): Likewise.
1344
1345 2019-08-09 Martin Liska <mliska@suse.cz>
1346
1347 * alias.c (alias_ptr_types_compatible_p): Strengten
1348 type comparison in LTO mode.
1349
1350 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
1351
1352 PR middle-end/90313
1353 * tree-tailcall.c (find_tail_calls): Reject calls that might
1354 read from an escaped RESULT_DECL.
1355
1356 2019-08-09 Martin Liska <mliska@suse.cz>
1357
1358 * doc/invoke.texi: Document the option value.
1359 * lto-wrapper.c (run_gcc): Set auto_parallel
1360 only with -flto=auto.
1361
1362 2019-08-09 Martin Liska <mliska@suse.cz>
1363
1364 * opts.c (common_handle_option): Error for an invalid argument
1365 to -flto=.
1366
1367 2019-08-09 Martin Liska <mliska@suse.cz>
1368
1369 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
1370 use dump_printf to report optimization.
1371 (sem_variable::merge): Likwise.
1372 (sem_item_optimizer::merge_classes): Use dump_printf to report
1373 ICF hits.
1374
1375 2019-08-09 Martin Liska <mliska@suse.cz>
1376
1377 * value-prof.c (gimple_divmod_fixed_value_transform):
1378 Use dump_printf_loc.
1379 (gimple_mod_pow2_value_transform): Likewise.
1380 (gimple_mod_subtract_transform): Likewise.
1381 (init_node_map): Likewise.
1382 (gimple_ic_transform): Likewise.
1383 (gimple_stringops_transform): Likewise.
1384
1385 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
1386
1387 * doc/extend.texi: Add const qualifier to ld intrinsics.
1388
1389 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
1390
1391 * config/rs6000/dfp.md (D64_D128): Rename to ...
1392 (DDTD): ... this, throughout.
1393 (dfp_suffix): Rename to ...
1394 (q): ... this, throughout.
1395
1396 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
1397
1398 * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
1399 (dfp_suffix): Ditto.
1400 (adddd3, addtd3): Merge to ...
1401 (add<mode>3 for D64_D128): ... this.
1402 (subdd3, subtd3): Merge to ...
1403 (sub<mode>3 for D64_D128): ... this.
1404 (muldd3, multd3): Merge to ...
1405 (mul<mode>3 for D64_D128): ... this.
1406 (divdd3, divtd3): Merge to ...
1407 (div<mode>3 for D64_D128): ... this.
1408 (*cmpdd_internal1, *cmptd_internal1): Merge to ...
1409 (*cmp<mode>_internal1 for D64_D128): ... this.
1410 (ftruncdd2, ftrunctd2): Merge to ...
1411 (ftrunc<mode>2 for D64_D128): ... this.
1412 (fixdddi2, fixtddi2): Merge to ...
1413 (fix<mode>di2 for D64_D128): ... this.
1414
1415 2019-08-08 Jim Wilson <jimw@sifive.com>
1416
1417 PR target/91229
1418 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
1419 ignore_zero_width_bit_field_p. Skip zero size bitfields when true.
1420 Pass into recursive call.
1421 (riscv_flatten_aggregate_argument): New arg. Pass to
1422 riscv_flatten_aggregate_field.
1423 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call
1424 riscv_flatten_aggregate_argument twice, with false and true as last
1425 arg. Process result twice. Compare results and warn if different.
1426 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
1427
1428 2019-08-08 Martin Liska <mliska@suse.cz>
1429
1430 PR bootstrap/91352
1431 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
1432 * lto-wrapper.c (jobserver_active_p): Likewise.
1433
1434 2019-08-08 Martin Liska <mliska@suse.cz>
1435
1436 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
1437 IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
1438 (create_version_clone_with_body): Likewise.
1439
1440 2019-08-08 Jakub Jelinek <jakub@redhat.com>
1441
1442 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
1443 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
1444 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
1445 GOVD_EXPLICIT flags.
1446 (gimplify_omp_workshare): For OMP_TARGET_DATA move all
1447 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
1448 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
1449 call install_var_field with mask 11 instead of 3.
1450 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
1451 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
1452
1453 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1454
1455 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
1456 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
1457
1458 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1459
1460 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
1461 MOVPRFX alternatives. Make the GPR alternatives more expensive
1462 than the FPR ones.
1463
1464 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1465
1466 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
1467 Disparage the GPR alternative relative to the FPR one.
1468 Fix handling of 8-bit and 16-bit FPR values.
1469
1470 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1471
1472 * config/aarch64/iterators.md (BITWISEV): Delete.
1473 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
1474 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
1475 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
1476 UNSPEC_FMINNMV, UNSPEC_FMINV.
1477 (bit_reduc_op): Delete.
1478 (sve_int_op): New int attribute.
1479 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
1480 UNSPEC_FMINNMV, UNSPEC_FMINV.
1481 * config/aarch64/aarch64-sve.md
1482 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
1483 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
1484 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
1485 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
1486 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
1487 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
1488 new patterns.
1489 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
1490 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
1491 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
1492 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
1493 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
1494 new patterns.
1495
1496 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1497
1498 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
1499 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
1500 (fms<mode>4, *fms<mode>4): Replace with...
1501 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
1502 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
1503 Use unspecs instead of rtx codes.
1504 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
1505 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
1506
1507 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1508
1509 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
1510 int iterator.
1511 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
1512 * config/aarch64/aarch64-sve.md
1513 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
1514 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
1515 use a single unspec for the rhs.
1516 (*<su><maxmin><mode>3): Delete.
1517 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
1518
1519 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1520
1521 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
1522 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
1523 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
1524 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
1525 (optab, sve_fp_op): Handle them.
1526 (SVE_FP_UNARY): Delete.
1527 (optab): Remove sqrt entry.
1528 (sve_fp_op): Remove neg, abs and sqrt entries.
1529 (SVE_COND_FP_UNARY): New int iterator.
1530 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
1531 (*<frint_pattern><mode>2): Delete.
1532 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
1533 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
1534 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
1535 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
1536
1537 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1538
1539 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
1540
1541 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1542
1543 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
1544 (UNSPEC_COND_FADD): ...this.
1545 (UNSPEC_COND_SUB): Rename to...
1546 (UNSPEC_COND_FSUB): ...this.
1547 (UNSPEC_COND_MUL): Rename to...
1548 (UNSPEC_COND_FMUL): ...this.
1549 (UNSPEC_COND_DIV): Rename to...
1550 (UNSPEC_COND_FDIV): ...this.
1551 (UNSPEC_COND_MAX): Rename to...
1552 (UNSPEC_COND_FMAXNM): ...this.
1553 (UNSPEC_COND_MIN): Rename to...
1554 (UNSPEC_COND_FMINNM): ...this.
1555 (UNSPEC_COND_LT): Rename to...
1556 (UNSPEC_COND_FCMLT): ...this.
1557 (UNSPEC_COND_LE): Rename to...
1558 (UNSPEC_COND_FCMLE): ...this.
1559 (UNSPEC_COND_EQ): Rename to...
1560 (UNSPEC_COND_FCMEQ): ...this.
1561 (UNSPEC_COND_NE): Rename to...
1562 (UNSPEC_COND_FCMNE): ...this.
1563 (UNSPEC_COND_GE): Rename to...
1564 (UNSPEC_COND_FCMGE): ...this.
1565 (UNSPEC_COND_GT): Rename to...
1566 (UNSPEC_COND_FCMGT): ...this.
1567 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
1568 (sve_fp_op_rev): Update accordingly.
1569 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
1570
1571 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1572
1573 * config/aarch64/aarch64-sve.md: Reorganize contents and add
1574 banner comments.
1575 * config/aarch64/check-sve-md.awk: New file.
1576 * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
1577 (insn-conditions.md): Depend on it.
1578
1579 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
1580
1581 PR target/91385
1582 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
1583 (*negsi2_cmpz_zext): Ditto.
1584
1585 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1586
1587 * config/aarch64/iterators.md (commutative): Remove.
1588
1589 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
1590
1591 PR driver/91130
1592 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
1593 processing COLLECT_GCC_OPTIONS.
1594 (run_gcc): Likewise.
1595
1596 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
1597
1598 PR tree-optimization/91109
1599 * lra-remat.c (update_scratch_ops): Remove assignment of the
1600 hard register.
1601
1602 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1603
1604 * data-streamer.h (streamer_write_poly_uint64): Declare.
1605 (streamer_read_poly_uint64): Likewise.
1606 * data-streamer-in.c (streamer_read_poly_uint64): New function.
1607 * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
1608 * ipa-predicate.h (condition::size): Turn into a poly_int64.
1609 (add_condition): Take a poly_int64 size.
1610 * ipa-predicate.c (add_condition): Likewise.
1611 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
1612 * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
1613 (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
1614 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
1615 condition::size as a poly_int64.
1616 (unmodified_parm_1): Take a poly_int64 size pointer.
1617 (unmodified_parm): Likewise.
1618 (unmodified_parm_or_parm_agg_item): Likewise.
1619 (set_cond_stmt_execution_predicate): Update accordingly.
1620 (set_switch_stmt_execution_predicate): Likewise.
1621 (will_be_nonconstant_expr_predicate): Likewise.
1622 (will_be_nonconstant_predicate): Likewise.
1623 (inline_read_section): Stream condition::size as a poly_int.
1624 (ipa_fn_summary_write): Likewise.
1625
1626 2019-08-07 Martin Liska <mliska@suse.cz>
1627
1628 * fold-const.c (twoval_comparison_p): Replace int
1629 with bool as a return type.
1630 (simple_operand_p): Likewise.
1631 (operand_equal_p): Replace int with bool as a return type.
1632 * fold-const.h (operand_equal_p): Likewise.
1633
1634 2019-08-07 Jakub Jelinek <jakub@redhat.com>
1635
1636 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
1637 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
1638 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
1639 for OMP_CLAUSE_USE_DEVICE_ADDR clause.
1640 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
1641 * tree-pretty-print.c (dump_omp_clause): Likewise.
1642 * tree-nested.c (convert_nonlocal_omp_clauses,
1643 convert_local_omp_clauses): Likewise.
1644 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
1645 Likewise.
1646 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
1647 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
1648 clause with array or reference to array types, no matter what type
1649 except for reference it has.
1650
1651 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
1652
1653 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
1654
1655 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
1656
1657 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
1658 (arch_canonicalize): Support rv32g and rv64g and fix error
1659 handling.
1660
1661 2019-08-06 Martin Liska <mliska@suse.cz>
1662
1663 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
1664 and DECL_IS_OPERATOR_DELETE_P.
1665
1666 2019-08-06 Jakub Jelinek <jakub@redhat.com>
1667
1668 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
1669 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
1670 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
1671 new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
1672 (gimplify_omp_for): Don't do C++ random access iterator clause
1673 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
1674 don't predetermine the artificial iterator in case of C++ random
1675 access iterators as lastprivate, but private. For OMP_LOOP, force
1676 bind expr around simd body and force for_pre_body before the
1677 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
1678 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
1679 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
1680 diff var of C++ random access iterators. Handle
1681 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
1682 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
1683 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
1684 on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
1685 * omp-low.c (lower_rec_input_clauses): For
1686 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
1687 variables instead of default constructing them.
1688 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
1689 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
1690 is_taskloop_ctx check from the assert to the guarding condition.
1691
1692 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
1693
1694 * config/riscv/multilib-generator: (canonical_order): New.
1695 (arch_canonicalize): Dito.
1696 Apply arch_canonicalize for alts.
1697
1698 2019-08-05 Martin Sebor <msebor@redhat.com>
1699
1700 * doc/extend.texi (Common Variable Attributes): Document alias
1701 attribute.
1702
1703 2019-08-05 Marek Polacek <polacek@redhat.com>
1704
1705 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
1706 * doc/invoke.texi: Document -Wcomma-subscript.
1707
1708 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
1709
1710 * tree-core.h (tree_function_decl): Make function_code an
1711 independent field. Group the remaining bitfields into bytes
1712 and move decl_type so that it contines to be at a byte boundary.
1713 Leave 12 bits for future expansion.
1714
1715 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
1716
1717 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
1718 (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
1719 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
1720 IFN_MASK_STORE.
1721
1722 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
1723
1724 * gimple.h (gimple_move_vops): Declare.
1725 * gimple.c (gimple_move_vops): New function
1726 * gimple-fold.c (replace_call_with_call_and_fold)
1727 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
1728 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
1729 (gimple_fold_call): Use it.
1730 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
1731 * tree-call-cdce.c (use_internal_fn): Likewise.
1732 * tree-if-conv.c (predicate_load_or_store): Likewise.
1733 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
1734 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
1735 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
1736 (update_call_from_tree): Likewise.
1737 * tree-vect-stmts.c (vectorizable_load): Likewise.
1738 * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
1739
1740 2019-08-05 Martin Liska <mliska@suse.cz>
1741
1742 PR c++/91334
1743 * tree-ssa-dce.c (propagate_necessity): Handle new operators
1744 with not arguments.
1745 (eliminate_unnecessary_stmts): Likewise.
1746
1747 2019-08-05 Richard Biener <rguenther@suse.de>
1748
1749 PR middle-end/91169
1750 * fold-const.c (get_array_ctor_element_at_index): Create
1751 offset_ints according to the sign of the index type and treat
1752 that as signed if it is obviously so.
1753
1754 2019-08-05 Jakub Jelinek <jakub@redhat.com>
1755
1756 PR target/91341
1757 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
1758 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
1759 _mm256_storeu2_m128i): New function.
1760
1761 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
1762
1763 * config/riscv/riscv.c (riscv_promote_function_mode): New.
1764 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
1765
1766 2019-08-05 Alan Modra <amodra@gmail.com>
1767
1768 PR target/91349
1769 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
1770 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
1771
1772 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
1773
1774 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
1775 bug that was fixed in Tcl 8.6.1.
1776
1777 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
1778
1779 * config/rs6000/future.md: New file.
1780 * config/rs6000/rs6000.md: Include future.md.
1781 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
1782
1783 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
1784
1785 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
1786 check to use targetm.slow_unaligned_access instead.
1787
1788 * function.c (assign_param_data_one): Remove unused data members.
1789
1790 2019-08-02 Steve Ellcey <sellcey@marvell.com>
1791
1792 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
1793 build_distinct_type_copy.
1794 (simd_clone_adjust_argument_types): Ditto.
1795 (simd_clone_adjust): Call build_distinct_type_copy here.
1796 (expand_simd_clones): Ditto.
1797
1798 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
1799
1800 PR target/91201
1801 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
1802
1803 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
1804
1805 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
1806 from 'const void *'.
1807 (sort_locs_in_loop_postorder_cmp): Likewise.
1808
1809 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
1810
1811 * doc/invoke.texi (hot-bb-count-fraction): Rework description.
1812 (hot-bb-count-ws-permille): Likewise.
1813 (hot-bb-frequency-fraction): Likewise.
1814 (unlikely-bb-count-fraction): Likewise.
1815 * params.def (hot-bb-count-fraction): Rework description.
1816 (hot-bb-count-ws-permille): Likewise.
1817 (hot-bb-frequency-fraction): Likewise.
1818 (unlikely-bb-count-fraction): Likewise. Remove min and max values.
1819 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
1820
1821 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
1822
1823 PR target/91323
1824 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
1825 Return false.
1826
1827 2019-08-02 Richard Biener <rguenther@suse.de>
1828
1829 * vec.h (vec::sort): Add gcc_qsort_r support.
1830 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
1831 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
1832 to gcc_qsort_r style callback.
1833 (sort_locs_in_loop_postorder_cmp): Likewise.
1834 (analyze_memory_references): Use gcc_sort_r interfaces.
1835 (find_ref_loc_in_loop_cmp): Use new bsearch overload.
1836
1837 2019-08-02 Martin Liska <mliska@suse.cz>
1838
1839 PR lto/91313
1840 * gcc.c (driver::maybe_run_linker): Call detect_jobserver
1841 to detect working job server.
1842 (driver::detect_jobserver): Test whether jobserver
1843 is active from GCC driver. That will prevent situation where
1844 GCC is invoked from a LD plugin and the linker already uses
1845 file descriptors suggested by make. That leads to a wrong
1846 detection.
1847 * gcc.h (driver): Add detect_jobserver.
1848 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
1849 not scanning for --jobserver-auth prefix.
1850
1851 2019-08-02 Jakub Jelinek <jakub@redhat.com>
1852
1853 PR tree-optimization/91201
1854 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
1855 V16QImode extraction without sse4.1 try to use V4SImode lowpart
1856 extraction.
1857
1858 2019-08-01 Martin Sebor <msebor@redhat.com>
1859
1860 PR c++/90947
1861 * tree.c (type_initializer_zero_p): Define.
1862 * tree.h (type_initializer_zero_p): New function.
1863
1864 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
1865
1866 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
1867
1868 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
1869
1870 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
1871 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test.
1872 * predict.c (maybe_hot_count_p): Likewise.
1873 (maybe_hot_bb_p): Tweak comment.
1874 (maybe_hot_edge_p): Likewise.
1875 (probably_never_executed): Likewise. Minor tweak.
1876 (probably_never_executed_bb_p): Likewise.
1877 (unlikely_executed_edge_p): Likewise.
1878 (probably_never_executed_edge_p): Likewise.
1879 (optimize_function_for_size_p): Likewise.
1880 (optimize_function_for_speed_p): Likewise.
1881 (function_optimization_type): Likewise.
1882 (optimize_bb_for_size_p): Likewise.
1883 (optimize_bb_for_speed_p): Likewise.
1884 (bb_optimization_type): Likewise.
1885 (optimize_edge_for_size_p): Likewise.
1886 (optimize_edge_for_speed_p): Likewise.
1887 (optimize_insn_for_size_p): Likewise.
1888 (optimize_insn_for_speed_p): Likewise.
1889 (optimize_loop_for_size_p): Likewise.
1890 (optimize_loop_for_speed_p): Likewise.
1891 (optimize_loop_nest_for_speed_p): Likewise.
1892 (optimize_loop_nest_for_size_p): Likewise.
1893 (predictable_edge_p): Likewise.
1894 (handle_missing_profiles): Minor tweak.
1895
1896 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
1897
1898 * config/rs6000/predicates.md (pcrel_external_address): Update
1899 comment.
1900
1901 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
1902
1903 PR target/85693
1904 * config/i386/mmx.md (usadv8qi): New expander.
1905
1906 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
1907
1908 PR c++/90590
1909 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
1910 with reserved names that are in a system header.
1911
1912 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
1913
1914 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
1915 (*vec_extractv2si_0_zext_sse4): New insn pattern.
1916 (*vec_extractv2si_0_zext): Ditto.
1917 (*vec_extractv2si_1): Add (rm,x) alternative.
1918 (*vec_extractv2si_1_zext): New insn pattern.
1919 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
1920 insn constraint.
1921
1922 2019-08-01 Richard Biener <rguenther@suse.de>
1923
1924 * domwalk.c (bb_postorder): Remove static variable.
1925 (cmp_bb_postorder): Adjust.
1926 (sort_bbs_postorder): Adjust and use gcc_sort_r.
1927 (dom_walker::walk): Adjust.
1928
1929 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
1930
1931 * sort.cc (sort_r_ctx): New struct.
1932 (reorder23): Make templated on context type.
1933 (reorder45): Ditto.
1934 (cmp1): Ditto. Adjust signature.
1935 (netsort): Ditto.
1936 (mergesort): Ditto.
1937 [CHECKING_P] (cmp2to3): New static function. Use it...
1938 (gcc_qsort) [CHECKING_P]: ...here.
1939 (gcc_sort_r): New function.
1940 * system.h (sort_r_cmp_fn): New function typedef.
1941 (qsort_chk): Adjust signature.
1942 (gcc_sort_r): Declare.
1943 * vec.c (qsort_chk_error): Adjust.
1944 (qsort_chk): Adjust.
1945
1946 2019-08-01 Richard Biener <rguenther@suse.de>
1947
1948 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
1949 (compute_antic): Localize it here.
1950
1951 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
1952
1953 * common/config/riscv/riscv-common.c: Check -march string ends
1954 with null.
1955
1956 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
1957
1958 * ipa-devirt.c (type_warning_cmp): Make static.
1959 (decl_warning_cmp): Ditto.
1960
1961 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
1962
1963 PR target/91050
1964 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
1965 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
1966 use of deleted rs6000_dejagnu_cpu_index variable.
1967 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
1968 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
1969 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
1970 (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
1971 * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
1972 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
1973
1974 2019-07-31 Richard Biener <rguenther@suse.de>
1975
1976 PR tree-optimization/91280
1977 * tree-ssa-structalias.c (get_constraint_for_component_ref):
1978 Decompose MEM_REF manually for offset handling.
1979
1980 2019-07-31 Richard Biener <rguenther@suse.de>
1981
1982 PR tree-optimization/91293
1983 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
1984 of reduction stmts.
1985
1986 2019-07-31 Matt Thomas <matt@3am-software.com>
1987 Nick Hudson <nick@nthcliff.demon.co.uk>
1988 Matthew Green <mrg@eterna.com.au>
1989 Maya Rashish <coypu@sdf.org>
1990
1991 * config.gcc (hppa*-*-netbsd*): New target.
1992 * config/pa/pa-netbsd.h: New file.
1993 * config/pa/pa32-netbsd.h: New file.
1994
1995 2019-07-31 Jakub Jelinek <jakub@redhat.com>
1996
1997 PR tree-optimization/91201
1998 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
1999
2000 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
2001
2002 * config/gcn/gcn-valu.md
2003 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
2004 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
2005 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
2006 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
2007 struct ilist. Add nops for delayeduse insns.
2008 * config/gcn/gcn.md (delayeduse): New attribute.
2009 (*movbi): Remove s_waitcnt from stores.
2010 (*mov<mode>_insn): Likewise.
2011 (*movti_insn): Likewise. Add delayeduse attribute.
2012 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
2013 (atomic_store<mode>): Remove or adjust s_waitcnt.
2014
2015 2019-07-31 Richard Biener <rguenther@suse.de>
2016
2017 * vr-values.h (vr_values::swap_vr_value): New.
2018 (vr_values::free_value_range): likewise.
2019 * vr-values.c (vr_values::swap_vr_value): Implement.
2020 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
2021 Do not return a range or take a var.
2022 (evrp_range_analyzer::stack): Change back to recording a non-const
2023 value_range *.
2024 * gimple-ssa-evrp-analyze.c
2025 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
2026 value-range.
2027 (evrp_range_analyzer::pop_to_marker): Adjust.
2028 (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
2029 (evrp_range_analyzer::pop_value_range): Likewise. Free the
2030 no longer needed value-range.
2031
2032 2019-07-31 Martin Liska <mliska@suse.cz>
2033
2034 * tree-ssa-dce.c (propagate_necessity): Delete operator can
2035 have size and (or) alignment as 2nd and later arguments.
2036 Mark all of them as necessary.
2037
2038 2019-07-31 Richard Biener <rguenther@suse.de>
2039
2040 PR tree-optimization/91178
2041 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
2042 Use tail-recursion.
2043
2044 2019-07-31 Jakub Jelinek <jakub@redhat.com>
2045
2046 PR tree-optimization/91201
2047 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
2048 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
2049 TARGET_AVX512F.
2050 (reduc_plus_scal_<mode>): Improve formatting by introducing
2051 a temporary.
2052
2053 2019-07-31 Sudakshina Das <sudi.das@arm.com>
2054
2055 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
2056 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
2057 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
2058 (aarch64_init_tme_builtins): New.
2059 (aarch64_init_builtins): Call aarch64_init_tme_builtins.
2060 (aarch64_expand_builtin_tme): New.
2061 (aarch64_expand_builtin): Handle TME builtins.
2062 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
2063 __ARM_FEATURE_TME when enabled.
2064 * config/aarch64/aarch64-option-extensions.def: Add "tme".
2065 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
2066 (TARGET_TME): New.
2067 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
2068 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
2069 UNSPECV_TCANCEL.
2070 (tstart, ttest, tcommit, tcancel): New instructions.
2071 * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
2072 (__tcancel, __ttest): New.
2073 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
2074 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
2075 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
2076 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
2077 * config/arm/types.md: Add new tme type attr.
2078 * doc/invoke.texi: Document "tme".
2079
2080 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
2081
2082 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
2083 warn_unused_result attribute.
2084 (cmse_check_address_range): Add warn_unused_result attribute.
2085
2086 2019-07-31 Richard Biener <rguenther@suse.de>
2087
2088 PR tree-optimization/91257
2089 * tree-vrp.c (union_ranges): Unify equality and less tests
2090 by using compare_values. Re-order cheap tests first.
2091
2092 2019-07-31 Jakub Jelinek <jakub@redhat.com>
2093
2094 PR middle-end/91301
2095 * gimplify.c (gimplify_omp_for): If for class iterator on
2096 distribute parallel for there is no data sharing clause
2097 on inner_for_stmt, look for private clause on combined
2098 parallel too and if found, move it to inner_for_stmt.
2099
2100 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
2101
2102 * lra-int.h (lra_operand_data): Remove early_clobber field.
2103 (lra_insn_reg): Likewise.
2104 * lra.c (debug_operand_data): Update accordingly.
2105 (setup_operand_alternative): Likewise.
2106 (new_insn_reg): Likewise. Remove early_clobber parameter.
2107 (collect_non_operand_hard_regs): Update call accordingly.
2108 Don't assign to lra_insn_reg::early_clobber.
2109 (add_regs_to_insn_regno_info): Remove early_clobber parameter
2110 and update calls to new_insn_reg.
2111 (lra_update_insn_regno_info): Update calls accordingly.
2112 * lra-constraints.c (update_and_check_small_class_inputs): Take the
2113 alternative number as a parameter and test whether the operand
2114 is earlyclobbered in that particular alternative.
2115 (process_alt_operands): Update call accordingly. Use per-alternative
2116 checks for earyclobber here too.
2117 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
2118 against zero for IRA_UNKNOWN_ALT.
2119
2120 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
2121
2122 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
2123
2124 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
2125
2126 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
2127 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2128
2129 2019-07-30 Martin Liska <mliska@suse.cz>
2130
2131 PR ipa/89330
2132 * cgraph.c (cgraph_edge::make_direct): Use
2133 edge->indirect_unknown_callee as edge->resolve_speculation can
2134 deallocate edge which is this pointer.
2135
2136 2019-07-30 Richard Biener <rguenther@suse.de>
2137
2138 PR tree-optimization/91257
2139 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
2140
2141 2019-07-30 Martin Liska <mliska@suse.cz>
2142
2143 * doc/invoke.texi: Document new behavior.
2144 * lto-wrapper.c (cpuset_popcount): New function
2145 is a copy of libgomp/config/linux/proc.c.
2146 (init_num_threads): Likewise.
2147 (run_gcc): Automatically detect core count for -flto.
2148 (jobserver_active_p): New function.
2149
2150 2019-07-30 Richard Biener <rguenther@suse.de>
2151
2152 PR tree-optimization/91257
2153 * bitmap.h (bitmap_ior_into_and_free): Declare.
2154 * bitmap.c (bitmap_list_unlink_element): Add defaulted param
2155 whether to add the unliked element to the freelist.
2156 (bitmap_list_insert_element_after): Add defaulted param for
2157 an already allocated element.
2158 (bitmap_ior_into_and_free): New function.
2159 * tree-ssa-structalias.c (condense_visit): Reduce the
2160 ponts-to and edge bitmaps of the SCC members in a
2161 logarithmic fashion rather than all to one.
2162
2163 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
2164
2165 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
2166 parameter. When nonnull, make sure that the addition or subtraction
2167 has the same condition.
2168 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
2169 for CFN_COND_MUL too.
2170
2171 2019-07-30 Richard Biener <rguenther@suse.de>
2172
2173 PR tree-optimization/91291
2174 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
2175 constant values.
2176
2177 2019-07-30 Jakub Jelinek <jakub@redhat.com>
2178
2179 PR middle-end/91216
2180 * omp-low.c (global_nonaddressable_vars): New variable.
2181 (use_pointer_for_field): For global decls, if they are non-addressable,
2182 remember it in the global_nonaddressable_vars bitmap, if they are
2183 addressable and in the global_nonaddressable_vars bitmap, ignore their
2184 TREE_ADDRESSABLE bit.
2185 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
2186 vars in global_nonaddressable_vars bitmap.
2187 (execute_lower_omp): Free global_nonaddressable_vars bitmap.
2188
2189 PR target/91150
2190 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
2191 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
2192 comparison to unsigned HOST_WIDE_INT before shifting it left.
2193
2194 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
2195
2196 * config/i386/i386.md (movstrict<mode>): Use register_operand
2197 predicate for operand 0. Add expander condition. Assert that
2198 operand 0 is a SUBREG RTX.
2199 (*movstrict<mode>_1): Use register_operand predicate for operand 0.
2200 Update operand constraints and insn condition.
2201 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
2202 (zero_extendqihi2_and): Do not call gen_movstrictqi.
2203 (*setcc_qi_slp): Use register_operand predicate for operand 0.
2204 Update operand 0 constraints.
2205 (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
2206
2207 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2208
2209 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
2210 when -m{code,data}-region are used without -mlarge.
2211 * config/msp430/msp430.c (msp430_option_override): Error when a
2212 non-default code or data region is used without -mlarge.
2213 (msp430_section_attr): Emit a warning and do not add upper/lower/either
2214 attributes when they are used without -mlarge.
2215
2216 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2217
2218 PR target/70320
2219 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
2220
2221 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2222
2223 PR middle-end/91242
2224 * wide-int.h (generic_wide_int::sext_elt): New function.
2225 * inchash.h (hash::add_wide_int): Use it instead of elt.
2226
2227 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2228
2229 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
2230 CODE_FOR_arm_##.
2231 * config/arm/arm.md (<crc_variant>): Rename to...
2232 (arm_<crc_variant>): ... This.
2233 (<cdp>): Rename to...
2234 (arm_<cdp>): ... This.
2235 (<ldc>): Rename to...
2236 (arm_<ldc>): ... This.
2237 (<stc>): Rename to...
2238 (arm_<stc>): ... This.
2239 (<mcr>): Rename to...
2240 (arm_<mcr>): ... This.
2241 (<mrc>): Rename to...
2242 (arm_<mrc>): ... This.
2243 (<mcrr>): Rename to...
2244 (arm_<mcrr>): ... This.
2245 (<mrrc>): Rename to...
2246 (arm_<mrrc>): ... This.
2247
2248 2019-07-29 Richard Biener <rguenther@suse.de>
2249
2250 PR tree-optimization/91257
2251 * tree-ssa-sccvn.h (struct vn_avail): New.
2252 (struct vn_ssa_aux): Add avail member.
2253 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
2254 member, add m_avail_freelist one.
2255 (rpo_elim::~rpo_elim): Remove.
2256 (rpo_elim::eliminate_avail): Adjust to new avail tracking
2257 data structure.
2258 (rpo_elim::eliminate_push_avail): Likewise.
2259 (do_unwind): Likewise.
2260 (do_rpo_vn): Likewise.
2261
2262 2019-07-29 Richard Biener <rguenther@suse.de>
2263
2264 PR tree-optimization/91257
2265 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
2266 most cases, instead call compare_values which handles the
2267 symbolic ranges we handle specially.
2268 (compare_values_warnv): Do not call operand_less_p but open-code
2269 the effective fold calls. Avoid converting so much.
2270
2271 2019-07-29 Martin Liska <mliska@suse.cz>
2272
2273 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
2274 remove LHS of operator new call. It's handled latter.
2275
2276 2019-07-29 Richard Biener <rguenther@suse.de>
2277
2278 PR tree-optimization/91267
2279 * vr-values.c (vr_values::update_value_range): Add early return
2280 for effectively VARYING lattice entry.
2281
2282 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2283
2284 PR debug/86638
2285 * tree-ssa-dce.c (keep_all_vdefs_p): New function.
2286 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
2287 necessary if keep_all_vdefs_p is true.
2288 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
2289 that keep_all_vdefs_p is false.
2290 (mark_all_reaching_defs_necessary): Likewise.
2291 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
2292
2293 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2294
2295 * common.opt (Og): Change the initial value of flag_dse to 0.
2296 * opts.c (default_options_table): Move OPT_ftree_dse from
2297 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
2298 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
2299 entry before the OPT_ftree_sra entry.
2300 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
2301 of flags disabled by Og.
2302
2303 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2304
2305 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
2306 variables for -Og.
2307
2308 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2309
2310 * doc/sourcebuild.texi (check-function-bodies): Document.
2311
2312 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2313
2314 * simplify-rtx.c (simplify_const_unary_operation): Fold a
2315 VEC_DUPLICATE of a fixed-length vector even if the result
2316 is variable-length. Likewise fold a duplicate of a
2317 variable-length vector if the variable-length vector is
2318 itself a duplicate of a fixed-length sequence.
2319 (test_vector_ops_duplicate): Test more cases.
2320
2321 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2322
2323 * vector-builder.h (vector_builder): Add a shape template parameter.
2324 (vector_builder::new_unary_operation): New function, generalizing
2325 the old tree_vector_builder function.
2326 (vector_builder::new_binary_operation): Likewise.
2327 (vector_builder::binary_encoded_nelts): Likewise.
2328 * int-vector-builder.h (int_vector_builder): Update template
2329 parameters to vector_builder.
2330 (int_vector_builder::shape_nelts): New function.
2331 * rtx-vector-builder.h (rtx_vector_builder): Update template
2332 parameters to vector_builder.
2333 (rtx_vector_builder::shape_nelts): New function.
2334 (rtx_vector_builder::nelts_of): Likewise.
2335 (rtx_vector_builder::npatterns_of): Likewise.
2336 (rtx_vector_builder::nelts_per_pattern_of): Likewise.
2337 * tree-vector-builder.h (tree_vector_builder): Update template
2338 parameters to vector_builder.
2339 (tree_vector_builder::shape_nelts): New function.
2340 (tree_vector_builder::nelts_of): Likewise.
2341 (tree_vector_builder::npatterns_of): Likewise.
2342 (tree_vector_builder::nelts_per_pattern_of): Likewise.
2343 * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
2344 (tree_vector_builder::new_binary_operation): Delete.
2345 (tree_vector_builder::binary_encoded_nelts): Likewise.
2346 * simplify-rtx.c: Include rtx-vector-builder.h.
2347 (distributes_over_addition_p): New function.
2348 (simplify_const_unary_operation)
2349 (simplify_const_binary_operation): Generalize handling of vector
2350 constants to include variable-length vectors.
2351 (test_vector_ops_series): Add more tests.
2352
2353 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
2354
2355 PR lto/91222
2356 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
2357 than INDENTIFIER_POINTER.
2358
2359 2019-07-28 Martin Liska <mliska@suse.cz>
2360
2361 PR ipa/89330
2362 * cgraph.c (symbol_table::create_edge): Always allocate
2363 a cgraph_edge.
2364 (symbol_table::free_edge): Store summary_id to
2365 edge_released_summary_ids if != -1;
2366 * cgraph.h (NEXT_FREE_NODE): Remove.
2367 (SET_NEXT_FREE_NODE): Likewise.
2368 (NEXT_FREE_EDGE): Likewise.
2369 (symbol_table::release_symbol): Store summary_id to
2370 cgraph_released_summary_ids if != -1;
2371 (symbol_table::allocate_cgraph_symbol): Always allocate
2372 a cgraph_node.
2373
2374 2019-07-28 Alan Modra <amodra@gmail.com>
2375
2376 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
2377 gen_sibcall.
2378
2379 2019-07-28 Alan Modra <amodra@gmail.com>
2380
2381 PR target/91135
2382 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
2383 define.
2384 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
2385 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
2386 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
2387
2388 2019-07-28 Alan Modra <amodra@gmail.com>
2389
2390 PR target/91050
2391 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
2392 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
2393 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
2394 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
2395 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
2396 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
2397 in asm_default spec.
2398 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
2399 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
2400
2401 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
2402
2403 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
2404
2405 2019-07-26 Tamar Christina <tamar.christina@arm.com>
2406
2407 PR target/89517
2408 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
2409 * config/aarch64/aarch64-option-extensions.def: Add new comments
2410 and restore easier to read options.
2411
2412 2019-07-26 Tamar Christina <tamar.christina@arm.com>
2413
2414 * convert.c (convert_to_real_1): Move part of conversion code...
2415 * match.pd: ...To here.
2416
2417 2019-07-26 Martin Jambor <mjambor@suse.cz>
2418
2419 PR ipa/89330
2420 * ipa-inline-transform.c (check_speculations_1): New function.
2421 (push_all_edges_in_set_to_vec): Likewise.
2422 (check_speculations): Use check_speculations_1, new parameter
2423 new_edges.
2424 (inline_call): Pass new_edges to check_speculations.
2425 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
2426 NULL.
2427 (speculation_useful_p): Early return true if edge is inlined, remove
2428 later checks for inline_failed.
2429
2430 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
2431
2432 PR rtl-optimization/91223
2433 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
2434 matching with INOUT operand.
2435
2436 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
2437
2438 * stmt.c (expand_case): Try to narrow the index type if it's larger
2439 than a word. Tidy up.
2440
2441 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
2442
2443 * cif-code.def (NEVER_CALL): New code.
2444 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
2445 Set the failure to CIF_NEVER_CALL if the IPA count is zero.
2446
2447 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
2448
2449 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
2450 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2451
2452 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2453
2454 * ipa-devirt.c (add_type_duplicate): Fix return value.
2455
2456 2019-07-25 Richard Biener <rguenther@suse.de>
2457
2458 * tree-vrp.c (extract_range_from_multiplicative_op): Add
2459 type parameter and use it instead of guessing expression
2460 type from the first operand.
2461 (extract_range_from_binary_expr): Pass expr_type down.
2462
2463 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2464
2465 * config/arm/arm.md (SATrev): Change to code attribute.
2466 (*satsi_<SAT:code>): Adjust for the above.
2467 (*satsi_<SAT:code>_shift): Likewise.
2468
2469 2019-07-25 Richard Biener <rguenther@suse.de>
2470
2471 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
2472 Make value_range * temporary const.
2473 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
2474 Likewise.
2475 (evrp_range_analyzer::record_ranges_from_): Likewise.
2476 (evrp_range_analyzer::pop_value_range): Return a const value_range *,
2477 deal with having recorded a const one.
2478 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
2479 Return a const value_range *.
2480 (evrp_range_analyzer::pop_value_range): Likewise.
2481 (evrp_range_analyzer::stack): Record const value_range *s.
2482 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
2483 Adjust.
2484 * gimple-ssa-sprintf.c (get_int_range): Likewise.
2485 (format_integer): Likewise.
2486 (sprintf_dom_walker::handle_gimple_call): Likewise.
2487 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
2488 * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
2489 (vrp_prop::get_value_range): Adjust.
2490 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
2491 modifying the lattice in-place.
2492 (vrp_prop::visit_stmt): Likewise.
2493 * vr-values.c (vr_values::get_lattice_entry): New private method.
2494 (vr_values::get_value_range): Wrap it and return a const
2495 value_range *.
2496 (vr_values::set_def_to_varying): New.
2497 (vr_values::set_defs_to_varying): Use it.
2498 (vr_values::update_value_range): Likewise.
2499 (vr_values::vrp_stmt_computes_nonzero): Adjust.
2500 (values::op_with_constant_singleton_va): Likewise.
2501 (vr_values::extract_range_for_var_from_co): Likewise.
2502 (vr_values::extract_range_from_ssa_name): Likewise.
2503 (vr_values::extract_range_from_cond_expr): Likewise.
2504 (vr_values::extract_range_basic): Likewise.
2505 (compare_ranges): Take const value_range *, adjust.
2506 (compare_range_with_value): Likewise.
2507 (vrp_valueize): Adjust.
2508 (vrp_valueize_1): Likewise.
2509 (vr_values::get_vr_for_comparison): Return a const value_range *.
2510 (vr_values::compare_name_with_value): Adjust.
2511 (vr_values::compare_names): Likewise.
2512 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
2513 Likewise.
2514 (vr_values::vrp_evaluate_conditional): Likewise.
2515 (find_case_label_ranges): Take a const value_range *.
2516 (vr_values::vrp_visit_switch_stmt): Adjust.
2517 (vr_values::extract_range_from_phi_node): Likewise.
2518 (vr_values::simplify_div_or_mod_using_ran): Likewise.
2519 (vr_values::simplify_abs_using_ranges): Likewise.
2520 (test_for_singularity): Take a const value_range *.
2521 (range_fits_type_p): Likewise.
2522 (vr_values::simplify_cond_using_ranges_1): Adjust.
2523 (vr_values::simplify_cond_using_ranges_2): Likewise.
2524 (vr_values::simplify_switch_using_ranges): Likewise.
2525 (vr_values::simplify_float_conversion_usi): Likewise.
2526 (vr_values::two_valued_val_range_p): Likewise.
2527 * vr-values.h (vr_values::get_value_range): Return a const
2528 value_range *.
2529 (vr_values::set_def_to_varying): New.
2530 (vr_values::get_lattice_entry): New private method.
2531 (vr_values::get_vr_for_comparison): Return a const value_range *.
2532
2533 2019-07-25 Martin Liska <mliska@suse.cz>
2534 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
2535
2536 PR c++/23383
2537 * common.opt: Add -fallocation-dce
2538 * gimple.c (gimple_call_operator_delete_p): New.
2539 * gimple.h (gimple_call_operator_delete_p): Likewise.
2540 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
2541 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
2542 DECL_IS_OPERATOR_DELETE_P.
2543 (mark_all_reaching_defs_necessary_1): Likewise.
2544 (propagate_necessity): Likewise.
2545 (eliminate_unnecessary_stmts): Handle
2546 gimple_call_operator_delete_p.
2547 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
2548 Add packing of OPERATOR_DELETE.
2549 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
2550 Similarly here.
2551 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
2552 (DECL_SET_IS_OPERATOR_DELETE): New.
2553 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
2554
2555 2019-07-25 Martin Liska <mliska@suse.cz>
2556
2557 * calls.c (maybe_warn_alloc_args_overflow): Use new macros
2558 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
2559 * coverage.c (coverage_begin_function): Likewise.
2560 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
2561 * gimple.c (gimple_call_nonnull_result_p): Likewise.
2562 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
2563 (sem_item::hash_referenced_symbol_properties): Likewise.
2564 * lto-streamer-out.c (hash_tree): Likewise.
2565 * predict.c (expr_expected_value_1): Likewise.
2566 * tree-inline.c (expand_call_inline): Likewise.
2567 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
2568 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
2569 * tree-core.h (enum function_decl_type): New enum.
2570 (struct tree_function_decl): Remove operator_new_flag and lambda_function.
2571 * tree.h (FUNCTION_DECL_DECL_TYPE): New.
2572 (set_function_decl_type): Likewise.
2573 (DECL_IS_OPERATOR_NEW_P): New.
2574 (DECL_SET_IS_OPERATOR_NEW): Likewise.
2575 (DECL_LAMBDA_FUNCTION): Likewise.
2576 (DECL_LAMBDA_FUNCTION_P): Likewise.
2577 (DECL_IS_OPERATOR_NEW): Remove.
2578 (DECL_SET_LAMBDA_FUNCTION): Likewise.
2579
2580 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
2581
2582 * ipa-profile.c (get_most_common_single_value): Use
2583 get_nth_most_common_value.
2584 * profile.c (sort_hist_value): New function.
2585 (compute_value_histograms): Call sort_hist_value to sort the
2586 values after loading from disk.
2587 * value-prof.c (get_most_common_single_value): Rename to ...
2588 get_nth_most_common_value. Add input params n, return
2589 the n_th value and count.
2590 (gimple_divmod_fixed_value_transform): Use
2591 get_nth_most_common_value.
2592 (gimple_ic_transform): Likewise.
2593 (gimple_stringops_transform): Likewise.
2594 * value-prof.h (get_most_common_single_value): Add input params
2595 n, default to 0.
2596
2597 2019-07-25 Richard Biener <rguenther@suse.de>
2598
2599 PR tree-optimization/91236
2600 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
2601 size of CONSTRUCTOR write. Fix buffer size we pass to
2602 native_encode_expr.
2603
2604 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2605
2606 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
2607 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
2608 r273773.
2609
2610 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2611
2612 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
2613 explicitly disabled with --disable-initfini-array.
2614
2615 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2616
2617 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
2618 if-exists.
2619
2620 2019-07-24 Martin Sebor <msebor@redhat.com>
2621
2622 PR tree-optimization/91183
2623 PR tree-optimization/86688
2624 * builtins.c (compute_objsize): Handle MEM_REF.
2625 * tree-ssa-strlen.c (class ssa_name_limit_t): New.
2626 (get_min_string_length): Remove.
2627 (count_nonzero_bytes): New function.
2628 (handle_char_store): Rename...
2629 (handle_store): to this. Handle multibyte stores via integer types.
2630 (strlen_check_and_optimize_stmt): Adjust conditional and the called
2631 function name.
2632
2633 2019-07-24 Martin Sebor <msebor@redhat.com>
2634
2635 PR driver/80545
2636 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
2637 (diagnostic_report_diagnostic): Same.
2638 * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
2639 (diagnostic_context::lang_mask): New data member.
2640 * ipa-pure-const.c (suggest_attribute): Use
2641 lang_hooks.option_lang_mask ().
2642 * opts-common.c (option_enabled): Handle new argument.
2643 (get_option_state): Pass an additional argument.
2644 * opts.c (print_filtered_help): Print supported languages for
2645 unsupported options. Adjust printing of current state.
2646 * opts.h (option_enabled): Add argument.
2647 * toplev.c (print_switch_values): Use lang_mask.
2648 (general_init): Set global_dc->lang_mask.
2649
2650 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
2651
2652 PR bootstrap/87030
2653 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
2654
2655 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
2656
2657 * cgraphunit.c (symbol_table::compile): Start and stop
2658 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
2659 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
2660
2661 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
2662
2663 * gimplify.c (flag_instrument_functions_exclude_p): Include
2664 namespace/class information in the printable name.
2665 * opts.c (add_comma_separated_to_vector): Add NUL terminator
2666 to tokens entered into the vector.
2667
2668 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
2669
2670 * tree-nested.c (build_simple_mem_ref_notrap): New function.
2671 (get_static_chain): Call it instead of build_simple_mem_ref.
2672 (get_frame_field): Likewise.
2673 (get_nonlocal_debug_decl): Likewise.
2674 (convert_nonlocal_reference_op): Likewise.
2675
2676 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
2677
2678 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
2679 declaration.
2680 (arc_compute_frame_size): Millicode is disabled when compiling
2681 ISR.
2682 (arc_return_address_register): Likewise.
2683 (arc_compute_function_type): Likewise.
2684 (arc_compute_frame_size): Likewise.
2685 (secondary_reload_info): Likewise.
2686 (arc_get_unalign): Likewise.
2687 (arc_can_use_return_insn): Declare.
2688 * config/arc/arc.c (AUX_LP_START): Define
2689 (AUX_LP_END): Likewise.
2690 (arc_frame_info): Update gmask member to 64-bit datum.
2691 (GMASK_LEN): Update.
2692 (arc_compute_function_type): Make it static, move it forward.
2693 (arc_must_save_register): Update, consider the extra regs.
2694 (arc_compute_millicode_save_restore_regs): Update to use the 64
2695 bit gmask.
2696 (arc_compute_frame_size): Likewise.
2697 (arc_enter_leave_p): Likewise.
2698 (arc_save_callee_saves): Likewise.
2699 (arc_restore_callee_saves): Likewise.
2700 (arc_save_callee_enter): Likewise.
2701 (arc_restore_callee_leave): Likewise.
2702 (arc_save_callee_milli): Likewise.
2703 (arc_restore_callee_milli): Likewise.
2704 (arc_expand_prologue): Add new interrupt handling.
2705 (arc_return_address_register): Make it static, move it forward.
2706 (arc_expand_epilogue): Add new interrupt handling.
2707 (arc_get_unalign): Delete.
2708 (arc_epilogue_uses): Make sure we do not remove the extra
2709 saved/restored registers when interrupt.
2710 (arc_can_use_return_insn): New function.
2711 (push_reg): Likewise.
2712 (pop_reg): Likewise.
2713 (arc_save_callee_saves): Add ZOL and FPX aux registers saving
2714 procedures.
2715 (arc_restore_callee_saves): Likewise, but restoring.
2716 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
2717 (R33_REG): Likewise.
2718 (R34_REG): Likewise.
2719 (R35_REG): Likewise.
2720 (R36_REG): Likewise.
2721 (R37_REG): Likewise.
2722 (R38_REG): Likewise.
2723 (R39_REG): Likewise.
2724 (R45_REG): Likewise.
2725 (R46_REG): Likewise.
2726 (R47_REG): Likewise.
2727 (R48_REG): Likewise.
2728 (R49_REG): Likewise.
2729 (R50_REG): Likewise.
2730 (R51_REG): Likewise.
2731 (R52_REG): Likewise.
2732 (R53_REG): Likewise.
2733 (R54_REG): Likewise.
2734 (R55_REG): Likewise.
2735 (R56_REG): Likewise.
2736 (R58_REG): Likewise.
2737 (type): Add rtie attribute.
2738 (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
2739 (movsi_insn): Accept moves to lp_count.
2740 (rtie): Update pattern.
2741 (simple_return): Simplify it, don't use this pattern as a return
2742 from an interrupt.
2743 (arc600_rtie): New pattern.
2744 (p_return_i): Clean up.
2745 (return): Likewise.
2746 * config/arc/builtins.def (rtie): Only available for non ARC6xx
2747 family CPUs.
2748 * config/arc/predicates.md (move_src_operand): Consider lp_count
2749 as a register.
2750
2751 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
2752
2753 * config/s390/predicates.md (addv_const_operand): New predicate.
2754 * config/s390/s390-modes.def (CCO): New condition code mode.
2755 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
2756 (s390_branch_condition_mask): Likewise.
2757 * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
2758 ("mulv<mode>4"): New expanders.
2759 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
2760 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
2761 pattern definitions.
2762
2763 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2764
2765 PR middle-end/91166
2766 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
2767 (define_predicates): Add entry for uniform_vector_p.
2768 (vec_same_elem_p): New match pattern.
2769
2770 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
2771
2772 PR bootstrap/87030
2773 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
2774 * config/i386/darwin32-biarch.h .. to here.
2775 * config/i386/darwin64-biarch.h: Adjust comments.
2776 * config/rs6000/darwin32-biarch.h: Likewise.
2777 * config/rs6000/darwin64-biarch.h: Likewise.
2778 * config.gcc: Missed commit from r273746
2779 (*-*-darwin*): Don't include CPU t-darwin here.
2780 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
2781 an error message if i686-darwin configuration is attempted for
2782 Darwin >= 18.
2783
2784 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
2785
2786 PR bootstrap/87030
2787 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
2788 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
2789 an error message if i686-darwin configuration is attempted for
2790 Darwin >= 18.
2791 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
2792 (powerpc-*-darwin*): Use biarch files where needed.
2793 (powerpc64-*-darwin*): Likewise.
2794 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
2795 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
2796 arch case.
2797 * config/i386/darwin32-biarch.h: New.
2798 * config/i386/darwin64.h: Rename.
2799 * config/i386/darwin64-biarch.h: To this.
2800 * config/i386/t-darwin: Rename.
2801 * config/i386/t-darwin32-biarch: To this.
2802 * config/i386/t-darwin64: Rename.
2803 * config/i386/t-darwin64-biarch: To this.
2804 * config/rs6000/darwin32-biarch.h: New.
2805 * config/rs6000/darwin64.h: Rename.
2806 * config/rs6000/darwin64-biarch.h: To this.
2807 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
2808 arch case.
2809 * config/rs6000/t-darwin8: Rename.
2810 * config/rs6000/t-darwin32-biarch: To this.
2811 * config/rs6000/t-darwin64 Rename.
2812 * config/rs6000/t-darwin64-biarch: To this.
2813
2814 2019-07-23 Martin Sebor <msebor@redhat.com>
2815
2816 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
2817
2818 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
2819
2820 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
2821 (rh): New alias for it.
2822
2823 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
2824
2825 * gdbhooks.py: Pass replace=True to
2826 gdb.printing.register_pretty_printer.
2827
2828 2019-07-23 Richard Biener <rguenther@suse.de>
2829
2830 PR debug/91231
2831 * lto-streamer-in.c (input_function): Drop inline-entry markers
2832 that ended up with an unknown location block.
2833
2834 2019-07-23 Richard Biener <rguenther@suse.de>
2835
2836 PR tree-optimization/83518
2837 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
2838 init from a constant even when partial defs are already recorded.
2839
2840 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2841
2842 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
2843 * config/i386/znver1.md: Enable patterns for znver2 and add store
2844 variants which use extra AGU unit.
2845
2846 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2847
2848 * config/i386/i386-options.c (ix86_option_override_internal): Default
2849 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
2850 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
2851 for ZNVER2.
2852
2853 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2854
2855 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
2856 (znver2_costs): Update 256 bit SSE costs and multiplication.
2857
2858 2019-07-23 Jan Beulich <jbeulich@suse.com>
2859
2860 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
2861 Require only AVX512F.
2862 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add
2863 alternative expanding to vpternlog.
2864
2865 2019-07-23 Martin Liska <mliska@suse.cz>
2866
2867 * dwarf2out.c (gen_producer_string): Canonize -flto=N
2868 to -flto in dwarf producer string.
2869
2870 2019-07-23 Richard Biener <rguenther@suse.de>
2871
2872 * tree-cfg.c (label_for_bb): Remove global var.
2873 (main_block_label): Take label_for_bb as argument.
2874 (cleanup_dead_labels_eh): Likewise, adjust.
2875 (cleanup_dead_labels): Adjust.
2876
2877 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
2878
2879 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
2880 Configurations): Add documentation for __builtin_mtfsf.
2881
2882 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
2883
2884 * config/riscv/riscv-opts.h (struct riscv_align_data): New.
2885 * config/riscv/riscv.c (riscv_constant_alignment): Use
2886 riscv_align_data_type.
2887 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
2888 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
2889 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
2890 * config/riscv/riscv.opt (malign-data): New.
2891 * doc/invoke.texi (RISC-V Options): Document -malign-data=.
2892
2893 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
2894
2895 * cgraph.c (dump_graphviz): New function.
2896 * cgraph.h (dump_graphviz): New function.
2897 * symtab.c (dump_graphviz): New function.
2898
2899 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
2900
2901 * config/aarch64/aarch64-simd.md
2902 (*aarch64_simd_sra<mode>): New.
2903 * config/aarch64/iterators.md
2904 (SHIFTRT): New iterator.
2905 (sra_op): New attribute.
2906
2907 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2908
2909 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
2910 callee-saved regs R4->R10 in an interrupt function that calls another
2911 function.
2912
2913 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
2914
2915 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
2916 (_mm_blendv_epi8): New.
2917
2918 2019-07-22 Richard Biener <rguenther@suse.de>
2919
2920 PR tree-optimization/91221
2921 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
2922 restrict partial-def handling of empty constructors and
2923 memset to refs with known offset.
2924
2925 2019-07-22 Jan Beulich <jbeulich@suse.com>
2926
2927 * config/i386/sse.md (ternlogsuffix): New.
2928 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
2929 AVX512F is in use.
2930 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
2931
2932 2019-07-22 Martin Liska <mliska@suse.cz>
2933
2934 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
2935 comment.
2936 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
2937
2938 2019-07-22 Martin Liska <mliska@suse.cz>
2939
2940 * lto-section-in.c (lto_get_section_data):
2941 Use new function get_compression.
2942 * lto-streamer-out.c (produce_lto_section): Use
2943 set_compression to encode compression algorithm.
2944 * lto-streamer.h (struct lto_section): Do not
2945 use bitfields in the format.
2946
2947 2019-07-22 Martin Liska <mliska@suse.cz>
2948
2949 PR driver/91172
2950 * opts-common.c (decode_cmdline_option): Decode
2951 argument of -Werror and check it for a wrong language.
2952 * opts-global.c (complain_wrong_lang): Remove such case.
2953
2954 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
2955
2956 * config/arc/arc.c (prepare_move_operands): Always use an
2957 intermediate register when storing a TLS symbols.
2958
2959 2019-07-22 Stafford Horne <shorne@gmail.com>
2960
2961 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
2962 force_reg.
2963
2964 2019-07-22 Stafford Horne <shorne@gmail.com>
2965
2966 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
2967 and munordered-float validations.
2968 * config/or1k/constraints.md (d): New register constraint.
2969 * config/or1k/predicates.md (fp_comparison_operator): New.
2970 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
2971 operands.
2972 (or1k_expand_compare): Normalize unordered comparisons.
2973 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
2974 (REG_CLASS_NAMES): Add "DOUBLE_REGS".
2975 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
2976 * config/or1k/or1k.md (type): Add fpu.
2977 (fpu): New instruction reservation.
2978 (F, f, fr, fi, FI, FOP, fop): New.
2979 (<fop><F:mode>3): New ALU instruction definition.
2980 (float<fi><F:mode>2): New conversion instruction definition.
2981 (fix_trunc<F:mode><fi>2): New conversion instruction definition.
2982 (fpcmpcc): New code iterator.
2983 (*sf_fp_insn): New instruction definition.
2984 (cstore<F:mode>4): New expand definition.
2985 (cbranch<F:mode>4): New expand definition.
2986 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
2987 munordered-float): New options.
2988 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
2989 munordered-float.
2990
2991 2019-07-22 Stafford Horne <shorne@gmail.com>
2992
2993 * config.gcc (or1k*-*-*): Add mrori and mror to validation.
2994 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
2995 documenation to be more clear.
2996 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
2997 more clear.
2998 * config/or1k/or1k.opt (mrori): New option.
2999 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
3000 msfimm, mshftimm): Rewrite documentation to be more clear.
3001 * config/or1k/or1k.md (insn_support): Add ror and rori.
3002 (enabled): Add conditions for ror and rori.
3003 (rotrsi3): Replace condition for shftimm with ror and rori.
3004
3005 2019-07-22 Stafford Horne <shorne@gmail.com>
3006
3007 PR target/90363
3008 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
3009 (extend<mode>si2): Update predicate.
3010 * config/or1k/predicates.md (volatile_mem_operand): New.
3011 (reg_or_mem_operand): New.
3012
3013 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
3014
3015 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
3016 * config/rs6000/rs6000-call.c: ... to here.
3017
3018 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
3019
3020 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
3021 memory.
3022
3023 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
3024
3025 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
3026
3027 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
3028
3029 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
3030
3031 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
3032
3033 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
3034 (any_memory_operand): New predicate.
3035 (reg_or_mem_operand): Use it.
3036
3037 2019-07-20 Jakub Jelinek <jakub@redhat.com>
3038
3039 PR target/91204
3040 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
3041
3042 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
3043
3044 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
3045 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
3046
3047 2019-07-20 Jakub Jelinek <jakub@redhat.com>
3048
3049 * tree.def (OMP_LOOP): New tree code.
3050 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
3051 (enum omp_clause_bind_kind): New enum.
3052 (struct tree_omp_clause): Add subcode.bind_kind.
3053 * tree.h (OMP_LOOP_CHECK): Rename to ...
3054 (OMP_LOOPING_CHECK): ... this.
3055 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
3056 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
3057 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
3058 (OMP_CLAUSE_BIND_KIND): Define.
3059 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
3060 bind clause entries.
3061 (walk_tree_1): Handle OMP_CLAUSE_BIND.
3062 * tree-pretty-print.c (dump_omp_clause): Likewise.
3063 (dump_generic_node): Handle OMP_LOOP.
3064 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
3065 (in_omp_construct): New variable.
3066 (is_gimple_stmt): Handle OMP_LOOP.
3067 (gimplify_scan_omp_clauses): For lastprivate don't set
3068 check_non_private if code == OMP_LOOP. For reduction clause
3069 on OMP_LOOP combined with parallel or teams propagate as shared
3070 on the combined construct. Handle OMP_CLAUSE_BIND.
3071 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
3072 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
3073 for constructs from a loop construct to gimplify_scan_omp_clauses.
3074 Don't predetermine iterator linear on OMP_SIMD from loop construct.
3075 (replace_reduction_placeholders, gimplify_omp_loop): New functions.
3076 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
3077 to match the implicit ORT_TARGET construct around whole body.
3078 Temporarily clear in_omp_construct when processing body.
3079 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
3080 etc. temporarily set in_omp_construct when processing body.
3081 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
3082 * omp-low.c (struct omp_context): Add loop_p.
3083 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
3084 in that the original var might be private.
3085 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
3086 (check_omp_nesting_restrictions): Adjust nesting restrictions for
3087 addition of loop construct.
3088 (scan_omp_1_stmt): Allow setjmp inside of loop construct.
3089
3090 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
3091 lastprivate non-addressable iterator of a collapse(1) simd.
3092
3093 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
3094
3095 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
3096 as in rs6000.c.
3097
3098 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
3099
3100 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
3101 refer to default conditions. Warn for the 'y' spec which is ignored
3102 by current linkers.
3103
3104 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
3105
3106 * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
3107 cpu_supports_info, builtin_hash_struct, builtin_hasher,
3108 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
3109 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
3110 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
3111 init_cumulative_args, rs6000_promote_function_mode,
3112 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
3113 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
3114 rs6000_function_arg_boundary, rs6000_parm_offset,
3115 rs6000_parm_start, rs6000_arg_size,
3116 rs6000_darwin64_record_arg_advance_flush,
3117 rs6000_darwin64_record_arg_advance_recurse,
3118 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
3119 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
3120 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
3121 rs6000_mixed_function_arg, rs6000_psave_function_arg,
3122 rs6000_finish_function_arg, rs6000_function_arg,
3123 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
3124 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
3125 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
3126 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
3127 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
3128 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
3129 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
3130 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
3131 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
3132 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
3133 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
3134 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
3135 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
3136 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
3137 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
3138 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
3139 get_element_number, altivec_expand_vec_set_builtin,
3140 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
3141 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
3142 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
3143 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
3144 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
3145 rs6000_expand_builtin, rs6000_vector_type,
3146 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
3147 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
3148 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
3149 to rs6000-call.c.
3150 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
3151 cpu_supports_info, builtin_hash_struct, builtin_hasher,
3152 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
3153 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
3154 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
3155 init_cumulative_args, rs6000_promote_function_mode,
3156 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
3157 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
3158 rs6000_function_arg_boundary, rs6000_parm_offset,
3159 rs6000_parm_start, rs6000_arg_size,
3160 rs6000_darwin64_record_arg_advance_flush,
3161 rs6000_darwin64_record_arg_advance_recurse,
3162 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
3163 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
3164 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
3165 rs6000_mixed_function_arg, rs6000_psave_function_arg,
3166 rs6000_finish_function_arg, rs6000_function_arg,
3167 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
3168 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
3169 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
3170 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
3171 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
3172 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
3173 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
3174 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
3175 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
3176 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
3177 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
3178 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
3179 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
3180 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
3181 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
3182 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
3183 get_element_number, altivec_expand_vec_set_builtin,
3184 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
3185 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
3186 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
3187 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
3188 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
3189 rs6000_expand_builtin, rs6000_vector_type,
3190 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
3191 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
3192 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
3193 to here from rs6000.c.
3194 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
3195 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
3196 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
3197 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
3198 rs6000_gimplify_va_arg, rs6000_promote_function_mode,
3199 rs6000_return_in_memory, rs6000_return_in_msb,
3200 rs6000_pass_by_reference, setup_incoming_varargs,
3201 rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
3202 rs6000_arg_partial_bytes, rs6000_function_arg_advance,
3203 rs6000_function_arg_padding, rs6000_function_arg,
3204 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
3205 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
3206 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
3207 rs6000_passes_long_double, rs6000_passes_vector,
3208 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
3209 altivec_builtin_mask_for_load) Add declarations.
3210 * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
3211 * config/config.gcc: Add new source file rs6000-call.c to garbage
3212 collector and extra_objs.
3213
3214 2019-07-19 Jeff Law <law@redhat.com>
3215
3216 PR tree-optimization/86061
3217 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
3218 strncpy. Drop some trivial dead code.
3219 (maybe_trim_memstar_call): Handle strncpy.
3220
3221 2019-07-19 Richard Biener <rguenther@suse.de>
3222
3223 PR tree-optimization/91211
3224 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
3225 memset encoding size.
3226
3227 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
3228
3229 PR target/91204
3230 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
3231
3232 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
3233
3234 PR ipa/91194
3235 * ipa-inline.c (recursive_inlining): Fix limits check.
3236
3237 2019-07-19 Richard Biener <rguenther@suse.de>
3238
3239 PR tree-optimization/91200
3240 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
3241 no PHI nodes in middle-bb.
3242
3243 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
3244
3245 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
3246 to +sve-bitperm.
3247 * config/aarch64/aarch64-option-extensions.def: Likewise.
3248
3249 2019-07-19 Jakub Jelinek <jakub@redhat.com>
3250
3251 PR middle-end/91190
3252 * function.c (insert_temp_slot_address): Store into the hash table
3253 a copy of address to avoid RTL sharing issues.
3254
3255 2019-07-19 Richard Biener <rguenther@suse.de>
3256
3257 PR tree-optimization/91207
3258 Revert
3259 2019-07-17 Richard Biener <rguenther@suse.de>
3260
3261 PR tree-optimization/91178
3262 * tree-vect-stmts.c (get_group_load_store_type): For SLP
3263 loads with a gap larger than the vector size always use
3264 VMAT_STRIDED_SLP.
3265 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
3266 avoid loading vectors that are only contained in the gap
3267 and thus are not needed.
3268
3269 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
3270
3271 * config/i386/i386.md (*addqi_2_slp): Remove.
3272 (*<code>qi_2_slp): Ditto.
3273
3274 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
3275
3276 * config/rs6000/predicates.md (prefixed_mem_operand): Call
3277 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
3278 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
3279 Rename function from rs6000_prefixed_address.
3280 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3281 TARGET_HAS_TOC.
3282 (TARGET_TOC): Likewise.
3283 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
3284 rs6000.h.
3285 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3286 TARGET_HAS_TOC.
3287 (TARGET_TOC): Likewise.
3288 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
3289 rs6000.h.
3290 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3291 TARGET_HAS_TOC.
3292 (TARGET_TOC): Likewise.
3293 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3294 check to require -mcmodel=medium for pc-relative addressing.
3295 (create_TOC_reference): Add assertion for TARGET_TOC.
3296 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
3297 TARGET_NO_TOC.
3298 (rs6000_emit_move): Likewise.
3299 (TOC_alias_set): Rename TOC alias set static variable from 'set'
3300 to 'TOC_alias_set'.
3301 (get_TOC_alias_set): Likewise.
3302 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
3303 TARGET_NO_TOC.
3304 (rs6000_can_eliminate): Likewise.
3305 (rs6000_prefixed_address_mode_p): Rename function from
3306 rs6000_prefixed_address.
3307 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
3308 TARGET_HAS_TOC and not pc-relative.
3309 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
3310 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3311 TARGET_HAS_TOC.
3312 (TARGET_TOC): Likewise.
3313 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
3314 rs6000.h.
3315
3316 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
3317
3318 PR target/91188
3319 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
3320 for operand 0. Do not use (match_dup) to match operand 1 with
3321 operand 0. Add check in insn constraint that either input operand
3322 matches operand 0. Use SWI12 mode iterator to also handle
3323 HImode operands.
3324 (*and<mode>_1_slp): Ditto.
3325 (*<code>qi_1_slp): Ditto.
3326 (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
3327 Do not use (match_dup) to match operand 1 with operand 0. Add
3328 check in insn constraint that operand 1 matches operand 0.
3329 Use SWI12 mode iterator to also handle HImode operands.
3330 (*ashl<mode>3_1_slp): Ditto.
3331 (*<shift_insn><mode>3_1_slp): Ditto.
3332 (*<rotate_insn><mode>3_1_slp): Ditto.
3333
3334 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
3335
3336 * config/arm/arm-builtins.c
3337 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
3338 (arm_expand_unop_builtin): Likewise.
3339 * config/arm/crypto.md
3340 (crypto_sha1h): Convert from define_insn to define_expand.
3341 (crypto_<crypto_pattern>): Likewise.
3342 (crypto_sha1h_lb): New define_insn.
3343 (crypto_<crypto_pattern>_lb): Likewise.
3344
3345 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
3346
3347 PR target/90317
3348 * config/arm/arm_neon.h (vsha1h_u32): Refactor.
3349 (vsha1cq_u32): Likewise.
3350 (vsha1pq_u32): Likewise.
3351 (vsha1mq_u32): Likewise.
3352 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
3353 vec select.
3354 (crypto_sha1c): Correct vec select.
3355 (crypto_sha1m): Likewise.
3356 (crypto_sha1p): Likewise.
3357
3358 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
3359
3360 * config/arm/predicates.md (arm_borrow_operation): New predicate.
3361 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
3362 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
3363 (subdi_zesidi_zesidi): Likewise.
3364 (negdi2_compare, negdi2_insn): Likewise.
3365 (negdi_extensidi): Likewise.
3366 (negdi_zero_extendsidi): Likewise.
3367 (arm_cmpdi_insn): Likewise.
3368 (subsi3_carryin): Use arm_borrow_operation.
3369 (subsi3_carryin_const): Likewise.
3370 (subsi3_carryin_const0): Likewise.
3371 (subsi3_carryin_compare): Likewise.
3372 (subsi3_carryin_compare_const): Likewise.
3373 (subsi3_carryin_compare_const0): Likewise.
3374 (subsi3_carryin_shift): Likewise.
3375 (rsbsi3_carryin_shift): Likewise.
3376 (negsi2_carryin_compare): Likewise.
3377
3378 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
3379
3380 PR tree-optimization/91137
3381 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
3382 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
3383 Init, use and fini the above new field.
3384 (determine_base_object_1): New function.
3385 (determine_base_object): Reimplement using walk_tree.
3386
3387 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
3388
3389 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
3390 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
3391 CLEANUP_FORCE_FAST_DCE is set.
3392 * ifcvt.c (rest_of_handle_if_conversion): Pass
3393 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
3394 if-conversion succeeded.
3395
3396 2019-07-18 Richard Biener <rguenther@suse.de>
3397
3398 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
3399 branches to make code less indented.
3400
3401 2019-07-17 Alexandre Oliva <oliva@adacore.com>
3402
3403 PR middle-end/81824
3404 * attribs.c (decls_mismatched_attributes): Simplify the logic
3405 that avoids duplicates and false positives.
3406
3407 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
3408
3409 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
3410 data into data section when generating PIC code.
3411 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
3412 (pa_reloc_rw_mask): Return 3 when generating PIC code and when
3413 generating code for SOM targets earlier than HP-UX 11. Otherwise,
3414 return 2 for SOM and 0 for other targets.
3415
3416 2019-07-17 Jeff Law <law@redhat.com>
3417
3418 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
3419 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to
3420 avoid unexpected switch statement fallthru.
3421
3422 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
3423
3424 * config/i386/i386.md (*add<dwi>3_doubleword):
3425 Remove redundant constraints.
3426 (*add<mode>_1): Ditto.
3427 (*addhi_1): Ditto.
3428 (*addqi_1): Ditto.
3429 (*addqi_1_slp): Ditto.
3430 (*add<mode>_2): Ditto.
3431 (*addv<mode>4): Ditto.
3432 (*sub<dwi>3_doubleword): Ditto.
3433 (*sub<mode>_1): Ditto.
3434 (*subqi_1_slp): Ditto.
3435 (*sub<mode>_2): Ditto.
3436 (*subv<mode>4): Ditto.
3437 (*sub<mode>_3): Ditto.
3438 (@add<mode>3_carry): Ditto.
3439 (@sub<mode>3_carry): Ditto.
3440 (*add<mode>3_cc_overflow_1): Ditto.
3441 (*add<mode>3_zext_cc_overflow_2): Ditto.
3442 (*anddi_1): Ditto.
3443 (*and<mode>_1): Ditto.
3444 (*andqi_1): Ditto.
3445 (*andqi_1_slp): Ditto.
3446 (*anddi_2): Ditto.
3447 (*andqi_2_maybe_si): Ditto.
3448 (*and<mode>_2): Ditto.
3449 (*andqi_2_slp): Ditto.
3450 (*<code><mode>_1): Ditto.
3451 (*<code>qi_1): Ditto.
3452 (*<code>qi_1_slp): Ditto.
3453 (*<code><mode>_2): Ditto.
3454 (*<code>qi_2_slp): Ditto.
3455
3456 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
3457
3458 * alias.c (record_component_aliases): Do not simplify pointed-to
3459 types of ODR types.
3460
3461 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
3462
3463 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
3464 partial reg stall on alternative 2.
3465
3466 2019-07-17 Richard Biener <rguenther@suse.de>
3467
3468 PR tree-optimization/91178
3469 * tree-ssa.c (release_defs_bitset): Iterate from higher to
3470 lower SSA names to avoid quadratic behavior in the common case.
3471 * tree-data-ref.c (split_constant_offset): Add limit argument
3472 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
3473 (split_constant_offset_1): Add limit argument and use it to
3474 limit SSA def walking. Optimize the common plus/minus case.
3475
3476 2019-07-17 Richard Biener <rguenther@suse.de>
3477
3478 PR tree-optimization/91178
3479 * tree-vect-stmts.c (get_group_load_store_type): For SLP
3480 loads with a gap larger than the vector size always use
3481 VMAT_STRIDED_SLP.
3482 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
3483 avoid loading vectors that are only contained in the gap
3484 and thus are not needed.
3485
3486 2019-07-17 Richard Biener <rguenther@suse.de>
3487
3488 PR tree-optimization/91180
3489 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
3490 computation for memset partial defs.
3491
3492 2019-07-17 Jakub Jelinek <jakub@redhat.com>
3493
3494 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
3495 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
3496 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
3497 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
3498 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
3499 * omp-grid.c (grid_process_grid_body,
3500 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
3501 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
3502 == GF_OMP_FOR_KIND_SIMD.
3503 * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
3504 check_omp_nesting_restrictions, scan_omp_1_stmt,
3505 lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
3506 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
3507 omp_find_scan): Likewise.
3508 * omp-expand.c (expand_omp_for): Likewise.
3509 * omp-general.c (omp_extract_for_data): Likewise.
3510
3511 PR tree-optimization/91157
3512 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
3513 a vector boolean with scalar mode.
3514 (expand_vector_condition): Handle first operand being a vector boolean
3515 with scalar mode.
3516 (expand_vector_operations_1): For comparisons, don't bail out early
3517 if the return type is vector boolean with scalar mode, but comparison
3518 operand type is not.
3519
3520 2019-07-17 Richard Biener <rguenther@suse.de>
3521
3522 PR tree-optimization/91181
3523 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
3524 IFN_LOADs as calls.
3525
3526 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
3527
3528 * config/i386/i386.md (*testdi_1): Match CCZmode for
3529 constants that might have the SImode sign bit set.
3530 (*testqi_1_maybe_si): Remove "!" constraint modifier.
3531 Use correct constraints for pentium pairing.
3532 (*test<mode>_1): Ditto.
3533
3534 2019-07-16 Jeff Law <law@redhat.com>
3535
3536 PR rtl-optimization/91173
3537 * tree-ssa-address.c (addr_for_mem_ref): If the base is an
3538 SSA_NAME with a constant value, fold its value into the offset
3539 and clear the base before calling gen_addr_rtx.
3540
3541 2019-07-16 Jakub Jelinek <jakub@redhat.com>
3542
3543 PR rtl-optimization/91164
3544 * dse.c (rest_of_handle_dse): If dead edges have been purged,
3545 invalidate dominance info.
3546
3547 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3548
3549 * read-md.h (md_reader::record_potential_iterator_use): Add a
3550 file_location parameter.
3551 * read-rtl.c (attribute_use::loc): New field.
3552 (map_attr_string): Take a file_location parameter. Report cases
3553 in which attributes map to multiple distinct values.
3554 (apply_attribute_uses): Update call accordingly.
3555 (md_reader::handle_overloaded_name): Likewise.
3556 (md_reader::apply_iterator_to_string): Likewise. Skip empty
3557 nonnull strings.
3558 (record_attribute_use): Take a file_location parameter.
3559 Initialize attribute_use::loc.
3560 (md_reader::record_potential_iterator_use): Take a file_location
3561 parameter. Update call to record_attribute_use.
3562 (rtx_reader::rtx_alloc_for_name): Update call accordingly.
3563 (rtx_reader::read_rtx_code): Likewise.
3564 (rtx_reader::read_rtx_operand): Likewise. Record a location
3565 for implicitly-expanded empty strings.
3566
3567 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3568
3569 * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
3570 Use file_location instead of separate fields.
3571 (md_reader::set_md_ptr_loc): Take a file_location instead of a
3572 separate filename and line number.
3573 * read-md.c (ptr_loc): As above.
3574 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
3575 (md_reader::fprint_md_ptr_loc): Likewise.
3576 (md_reader::set_md_ptr_loc): Likewise. Take a file_location
3577 instead of a separate filename and line number.
3578 (md_reader::read_string): Update call accordingly.
3579
3580 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3581
3582 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
3583 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
3584 leaving the choice between SFDF and P implicit.
3585 (*mov<mode>_update2): Likewise.
3586 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
3587 rather than leaving the choice betweem IBM128 and GPR implicit.
3588 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
3589 <IEEE128:MODE> rather than leaving the choice between IEEE128 and
3590 QHSI implicit.
3591 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
3592 rather than leaving the choice between ALTIVEC_DFORM and P implicit.
3593 * config/rs6000/vsx.md
3594 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
3595 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
3596 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
3597 and VSX_EXTRACT_I implicit.
3598
3599 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3600
3601 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
3602 Explicitly use <MOVEP1:MODE> for the mode attribute.
3603
3604 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
3605
3606 PR bootstrap/91176
3607 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
3608
3609 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
3610
3611 PR target/91050
3612 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
3613 .machine directive.
3614
3615 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
3616
3617 * config/i386/i386.md (@test<mode>_ccno_1):
3618 Rename from test<mode>_ccno_1.
3619 (*testdi_1): Remove redundant alternatives. Remove modrm attribute.
3620 (*testqi_1_maybe_si): Remove modrm attribute.
3621 (*test<mode>_1): Ditto.
3622 * config/i386/i386-expand.c (ix86_split_idivmod): Use
3623 gen_test_ccno_1 and gen_extend_insn.
3624
3625 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
3626
3627 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
3628 to 0.
3629
3630 2019-07-15 Richard Biener <rguenther@suse.de>
3631
3632 PR middle-end/91162
3633 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
3634 node make sure to replace all uses with something valid.
3635
3636 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
3637
3638 PR tree-optimization/88497
3639 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
3640 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
3641 function undistribute_bitref_for_vector.
3642 (undistribute_bitref_for_vector): New function.
3643 (cleanup_vinfo_map): Likewise.
3644 (sort_by_mach_mode): Likewise.
3645
3646 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
3647
3648 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
3649 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
3650 and testdi_ccno_1 using SWI48 mode attribute.
3651 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
3652 x86_64_szext_general_operand.
3653 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
3654 (*test<mode>_1): Use nonmemory_szext_operand mode attribute
3655 instead of genera_operand mode attribute.
3656
3657 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
3658
3659 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
3660 fopen and fclose to their respective types.
3661 (DotFn.invoke): Ditto.
3662
3663 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
3664
3665 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
3666 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
3667 (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
3668 (array_index_predicate): Remove.
3669 (analyze_function_body): Account cost for variable ofsetted array
3670 indexing.
3671 (estimate_node_size_and_time): Do not compute array index hint.
3672 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
3673 (inline_read_section): Do not read array index hint.
3674 (ipa_fn_summary_write): Do not write array index hint.
3675 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
3676 * ipa-cp.c (hint_time_bonus): Remove.
3677 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
3678 (ipa_fnsummary): Remove array_index.
3679 * ipa-inline.c (want_inline_small_function_p): Do not use
3680 array_index.
3681 (edge_badness): Likewise.
3682 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
3683
3684 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
3685
3686 PR target/91148
3687 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
3688 superfluous "builtin function" phrasing.
3689
3690 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
3691
3692 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
3693 Break out from ...
3694 (aliasing_component_refs_walk): Break out from ...
3695 (aliasing_component_refs_p): ... here.
3696
3697 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
3698
3699 PR target/91148
3700 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
3701 "builtin function" phrasing.
3702
3703 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3704
3705 PR target/90723
3706 * recog.h (temporary_volatile_ok): New class.
3707 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
3708 volatile_ok temporarily to true using temporary_volatile_ok.
3709 * expr.c (emit_block_move_via_cpymem): Likewise.
3710 * optabs.c (maybe_legitimize_operand): Likewise.
3711
3712 2019-07-13 Jakub Jelinek <jakub@redhat.com>
3713
3714 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
3715 (omp_notice_threadprivate_variable): Diagnose threadprivate variable
3716 uses inside of order(concurrent) constructs.
3717 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
3718 OMP_CLAUSE_ORDER is seen.
3719 * omp-low.c (struct omp_context): Add order_concurrent member.
3720 (scan_sharing_clauses): Set ctx->order_concurrent if
3721 OMP_CLAUSE_ORDER is seen.
3722 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
3723 of simd order(concurrent). Diagnose constructs not allowed inside of
3724 for order(concurrent).
3725 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
3726 complaining about static double setjmp (double); or class static
3727 methods or non-global namespace setjmps.
3728 (omp_runtime_api_call): New function.
3729 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
3730 order(concurrent) loops.
3731
3732 2019-07-12 Martin Sebor <msebor@redhat.com>
3733
3734 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
3735 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
3736 * tree-vrp.c (vrp_prop::check_mem_ref): Use
3737 PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
3738
3739 2019-07-12 Jan Hubicka <jh@suse.cz>
3740
3741 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
3742 (indirect_refs_may_alias_p): ... here.
3743 (nonoverlapping_component_refs_since_match_p): Support also non-trivial
3744 mem refs in the access paths.
3745
3746 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
3747
3748 PR tree-optimization/89430
3749 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
3750 store elimination for local variable without address escape.
3751
3752 2019-07-12 Jeff Law <law@redhat.com>
3753
3754 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
3755 for the ".far" section.
3756
3757 2019-07-12 Richard Biener <rguenther@suse.de>
3758
3759 PR tree-optimization/91145
3760 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
3761 chain check.
3762
3763 2019-07-12 Alexandre Oliva <oliva@adacore.com>
3764
3765 * tree-eh.c (honor_protect_cleanup_actions): Use outer_
3766 rather than this_state as the lowering context for the ELSE
3767 seq in a GIMPLE_EH_ELSE.
3768
3769 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
3770
3771 * vector-builder.h (vector_builder::elt): Allow already-supplied
3772 elements to be read back before building is complete.
3773
3774 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
3775
3776 PR rtl-optimization/91136
3777 * df-core.c (ACCESSING REFS): Fix typos in comment.
3778 * resource.c (mark_target_live_reg): Add artificial defs that occur at
3779 the beginning of the block to the initial set of live registers.
3780
3781 2019-07-12 Richard Biener <rguenther@suse.de>
3782
3783 * fold-const.h (get_array_ctor_element_at_index): Adjust.
3784 * fold-const.c (get_array_ctor_element_at_index): Add
3785 ctor_idx output parameter informing the caller where in
3786 the constructor the element was (not) found. Add early exit
3787 for when the ctor is sorted.
3788 * gimple-fold.c (fold_array_ctor_reference): Support constant
3789 folding across multiple array elements.
3790
3791 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
3792
3793 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
3794 doesn't have location, set the current location to the function's end.
3795
3796 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
3797
3798 * config/aarch64/aarch64.md (*compare_condjump<mode>)
3799 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
3800 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
3801 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
3802 * config/aarch64/aarch64-simd.md
3803 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
3804 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
3805 * config/aarch64/aarch64-sve.md
3806 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
3807 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
3808
3809 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
3810
3811 * doc/md.texi: Document that @ patterns can have different
3812 numbers of operands.
3813 * genemit.c (handle_overloaded_gen): Handle this case.
3814 * genopinit.c (handle_overloaded_gen): Likewise.
3815 * gensupport.c (replace_operands_with_dups): Iterate over
3816 the new rtx's format rather than the old one's.
3817
3818 2019-07-12 Jakub Jelinek <jakub@redhat.com>
3819
3820 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
3821 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
3822 order clause entries.
3823 (walk_tree_1): Handle OMP_CLAUSE_ORDER.
3824 * tree-pretty-print.c (dump_omp_clause): Likewise.
3825 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
3826 Likewise.
3827 * omp-low.c (scan_sharing_clauses): Likewise.
3828 * tree-nested.c (convert_nonlocal_omp_clauses,
3829 convert_local_omp_clauses): Likewise.
3830
3831 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
3832
3833 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
3834 fallthrough target of current basic block isn't the placed
3835 right next.
3836
3837 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
3838
3839 PR target/90980
3840 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
3841 (_mm512_storeu_epi64): Likewise.
3842 (_mm512_loadu_epi32): Likewise.
3843 (_mm512_storeu_epi32): Likewise.
3844 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
3845 (_mm_storeu_epi64): Likewise.
3846 (_mm256_storeu_epi32): Likewise.
3847 (_mm_storeu_epi32): Likewise.
3848
3849 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
3850
3851 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
3852
3853 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
3854
3855 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
3856 Handle Modula-2.
3857
3858 2019-07-11 Jakub Jelinek <jakub@redhat.com>
3859
3860 PR target/91124
3861 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
3862 (sse2_cvtpd2dq): ... this. Remove mask substitution macros.
3863 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
3864 (ufix_notruncv2dfv2si2<mask_name>): Change into ...
3865 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros.
3866 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
3867 define_insns.
3868 (ufix_truncv2dfv2si2<mask_name>): Change into ...
3869 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
3870 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
3871 define_insns.
3872 (sse2_cvttpd2dq<mask_name>): Change into ...
3873 (sse2_cvttpd2dq): ... this. Remove mask substitution macros.
3874 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
3875 (*sse2_cvtpd2dq<mask_name>): Change into ...
3876 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros.
3877 Add "C" constraint to const0_operand.
3878 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
3879 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
3880 changes.
3881
3882 PR target/91124
3883 * config/i386/i386-builtin-types.def
3884 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
3885 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
3886 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
3887 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
3888 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
3889 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
3890 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
3891 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
3892 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
3893 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
3894 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
3895 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
3896 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
3897 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
3898 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
3899 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
3900 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
3901 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
3902 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
3903 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
3904 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
3905 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
3906 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
3907 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
3908 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
3909 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
3910 __builtin_ia32_vpdpbusd_v4si_maskz,
3911 __builtin_ia32_vpdpbusds_v16si_mask,
3912 __builtin_ia32_vpdpbusds_v16si_maskz,
3913 __builtin_ia32_vpdpbusds_v8si_mask,
3914 __builtin_ia32_vpdpbusds_v8si_maskz,
3915 __builtin_ia32_vpdpbusds_v4si_mask,
3916 __builtin_ia32_vpdpbusds_v4si_maskz,
3917 __builtin_ia32_vpdpwssd_v16si_mask,
3918 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
3919 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
3920 __builtin_ia32_vpdpwssd_v4si_maskz,
3921 __builtin_ia32_vpdpwssds_v16si_mask,
3922 __builtin_ia32_vpdpwssds_v16si_maskz,
3923 __builtin_ia32_vpdpwssds_v8si_mask,
3924 __builtin_ia32_vpdpwssds_v8si_maskz,
3925 __builtin_ia32_vpdpwssds_v4si_mask,
3926 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
3927 suffixed types rather than *_INT.
3928 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
3929 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
3930 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
3931 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
3932 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
3933 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
3934
3935 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
3936
3937 * tree-vrp.c (intersect_ranges): If we know the intersection is
3938 empty, there is no need to conservatively add anything else to
3939 the set.
3940
3941 2019-07-11 Richard Biener <rguenther@suse.de>
3942
3943 PR middle-end/91131
3944 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
3945 when the object is volatile and we have not cleared it even though
3946 there are no nonzero elements.
3947
3948 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
3949
3950 * config/rs6000/predicates.md (cint34_operand): Update
3951 SIGNED_34BIT_OFFSET_P call.
3952 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
3953 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
3954 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
3955 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
3956 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
3957 argument.
3958 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
3959 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
3960 SIGNED_16BIT_OFFSET_P with an EXTRA argument.
3961 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
3962 SIGNED_34BIT_OFFSET_P with an EXTRA argument.
3963
3964 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
3965
3966 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
3967 * config/rs6000/darwin7.h (LIB_SPEC): Remove.
3968 * config/rs6000/darwin8.h (LIB_SPEC): Remove.
3969 (DEF_MIN_OSX_VERSION): New.
3970
3971 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
3972
3973 * fold-const.c (fold_relational_const): Fix folding of
3974 vector-to-scalar NE_EXPRs.
3975 (test_vector_folding): Add more tests.
3976
3977 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
3978
3979 PR target/91060
3980 * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
3981 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
3982 (vec_setv2di_internal): Reexpress as...
3983 (@vec_set<V2DI_ONLY:mode>_internal): ...this.
3984 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
3985 rather than gen_neon_vset_lane<mode>.
3986
3987 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
3988
3989 PR target/91102
3990 * lra-constraints.c (process_alt_operands): Don't match user
3991 defined regs only if they are early clobbers.
3992
3993 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
3994
3995 * wide-int.h (wi::lshift): Reject negative values for the fast path.
3996
3997 2019-07-10 Richard Biener <rguenther@suse.de>
3998
3999 PR tree-optimization/91126
4000 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
4001 native encoding offset for BYTES_BIG_ENDIAN.
4002 (vn_reference_lookup_3): Likewise.
4003
4004 2019-07-10 Richard Biener <rguenther@suse.de>
4005
4006 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
4007 LHS whenever possible.
4008
4009 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
4010
4011 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
4012 from ...; work also on duplicated types.
4013 (nonoverlapping_component_refs_since_match): ... here
4014 (ncr_type_uid): Break out from ...
4015 (ncr_compar): ... here; look for TYPE_UID of canonical type if
4016 available.
4017 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
4018 the types and nonoverlapping_component_refs_p_1 to disambiguate.
4019
4020 2019-07-09 Martin Sebor <msebor@redhat.com>
4021
4022 PR tree-optimization/90989
4023 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
4024 optimization to just single character stores.
4025
4026 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
4027
4028 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
4029 Swap operands only once.
4030
4031 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
4032
4033 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
4034 for both call instructions.
4035
4036 2019-07-09 John Darrington <john@darrington.wattle.id.au>
4037
4038 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
4039 rather than GET_MODE_BITSIZE to better handle partial integer modes.
4040
4041 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
4042
4043 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
4044 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
4045 function from rs6000-logue.c back to rs6000.c.
4046 * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
4047
4048 2019-07-09 Martin Sebor <msebor@redhat.com>
4049
4050 PR c++/61339
4051 * auto-profile.c: Change class-key of PODs to struct and others
4052 to class.
4053 * basic-block.h: Same.
4054 * bitmap.c (bitmap_alloc): Same.
4055 * bitmap.h: Same.
4056 * builtins.c (expand_builtin_prefetch): Same.
4057 (expand_builtin_interclass_mathfn): Same.
4058 (expand_builtin_strlen): Same.
4059 (expand_builtin_mempcpy_args): Same.
4060 (expand_cmpstr): Same.
4061 (expand_builtin___clear_cache): Same.
4062 (expand_ifn_atomic_bit_test_and): Same.
4063 (expand_builtin_thread_pointer): Same.
4064 (expand_builtin_set_thread_pointer): Same.
4065 * caller-save.c (setup_save_areas): Same.
4066 (replace_reg_with_saved_mem): Same.
4067 (insert_restore): Same.
4068 (insert_save): Same.
4069 (add_used_regs): Same.
4070 * cfg.c (get_bb_copy): Same.
4071 (set_loop_copy): Same.
4072 * cfg.h: Same.
4073 * cfganal.h: Same.
4074 * cfgexpand.c (alloc_stack_frame_space): Same.
4075 (add_stack_var): Same.
4076 (add_stack_var_conflict): Same.
4077 (add_scope_conflicts_1): Same.
4078 (update_alias_info_with_stack_vars): Same.
4079 (expand_used_vars): Same.
4080 * cfghooks.c (redirect_edge_and_branch_force): Same.
4081 (delete_basic_block): Same.
4082 (split_edge): Same.
4083 (make_forwarder_block): Same.
4084 (force_nonfallthru): Same.
4085 (duplicate_block): Same.
4086 (lv_flush_pending_stmts): Same.
4087 * cfghooks.h: Same.
4088 * cfgloop.c (flow_loops_cfg_dump): Same.
4089 (flow_loop_nested_p): Same.
4090 (superloop_at_depth): Same.
4091 (get_loop_latch_edges): Same.
4092 (flow_loop_dump): Same.
4093 (flow_loops_dump): Same.
4094 (flow_loops_free): Same.
4095 (flow_loop_nodes_find): Same.
4096 (establish_preds): Same.
4097 (flow_loop_tree_node_add): Same.
4098 (flow_loop_tree_node_remove): Same.
4099 (flow_loops_find): Same.
4100 (find_subloop_latch_edge_by_profile): Same.
4101 (find_subloop_latch_edge_by_ivs): Same.
4102 (mfb_redirect_edges_in_set): Same.
4103 (form_subloop): Same.
4104 (merge_latch_edges): Same.
4105 (disambiguate_multiple_latches): Same.
4106 (disambiguate_loops_with_multiple_latches): Same.
4107 (flow_bb_inside_loop_p): Same.
4108 (glb_enum_p): Same.
4109 (get_loop_body_with_size): Same.
4110 (get_loop_body): Same.
4111 (fill_sons_in_loop): Same.
4112 (get_loop_body_in_dom_order): Same.
4113 (get_loop_body_in_custom_order): Same.
4114 (release_recorded_exits): Same.
4115 (get_loop_exit_edges): Same.
4116 (num_loop_branches): Same.
4117 (remove_bb_from_loops): Same.
4118 (find_common_loop): Same.
4119 (delete_loop): Same.
4120 (cancel_loop): Same.
4121 (verify_loop_structure): Same.
4122 (loop_preheader_edge): Same.
4123 (loop_exit_edge_p): Same.
4124 (single_exit): Same.
4125 (loop_exits_to_bb_p): Same.
4126 (loop_exits_from_bb_p): Same.
4127 (get_loop_location): Same.
4128 (record_niter_bound): Same.
4129 (get_estimated_loop_iterations_int): Same.
4130 (max_stmt_executions_int): Same.
4131 (likely_max_stmt_executions_int): Same.
4132 (get_estimated_loop_iterations): Same.
4133 (get_max_loop_iterations): Same.
4134 (get_max_loop_iterations_int): Same.
4135 (get_likely_max_loop_iterations): Same.
4136 * cfgloop.h (simple_loop_desc): Same.
4137 (get_loop): Same.
4138 (loop_depth): Same.
4139 (loop_outer): Same.
4140 (loop_iterator::next): Same.
4141 (loop_outermost): Same.
4142 * cfgloopanal.c (mark_irreducible_loops): Same.
4143 (num_loop_insns): Same.
4144 (average_num_loop_insns): Same.
4145 (expected_loop_iterations_unbounded): Same.
4146 (expected_loop_iterations): Same.
4147 (mark_loop_exit_edges): Same.
4148 (single_likely_exit): Same.
4149 * cfgloopmanip.c (fix_bb_placement): Same.
4150 (fix_bb_placements): Same.
4151 (remove_path): Same.
4152 (place_new_loop): Same.
4153 (add_loop): Same.
4154 (scale_loop_frequencies): Same.
4155 (scale_loop_profile): Same.
4156 (create_empty_if_region_on_edge): Same.
4157 (create_empty_loop_on_edge): Same.
4158 (loopify): Same.
4159 (unloop): Same.
4160 (fix_loop_placements): Same.
4161 (copy_loop_info): Same.
4162 (duplicate_loop): Same.
4163 (duplicate_subloops): Same.
4164 (loop_redirect_edge): Same.
4165 (can_duplicate_loop_p): Same.
4166 (duplicate_loop_to_header_edge): Same.
4167 (mfb_keep_just): Same.
4168 (has_preds_from_loop): Same.
4169 (create_preheader): Same.
4170 (create_preheaders): Same.
4171 (lv_adjust_loop_entry_edge): Same.
4172 (loop_version): Same.
4173 * cfgloopmanip.h: Same.
4174 * cgraph.h: Same.
4175 * cgraphbuild.c: Same.
4176 * combine.c (make_extraction): Same.
4177 * config/i386/i386-features.c: Same.
4178 * config/i386/i386-features.h: Same.
4179 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
4180 (ix86_emit_outlined_ms2sysv_restore): Same.
4181 (ix86_noce_conversion_profitable_p): Same.
4182 (ix86_init_cost): Same.
4183 (ix86_simd_clone_usable): Same.
4184 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
4185 Wstruct-not-pod.
4186 * coretypes.h: Same.
4187 * data-streamer-in.c (string_for_index): Change class-key of PODs
4188 to struct and others to class.
4189 (streamer_read_indexed_string): Same.
4190 (streamer_read_string): Same.
4191 (bp_unpack_indexed_string): Same.
4192 (bp_unpack_string): Same.
4193 (streamer_read_uhwi): Same.
4194 (streamer_read_hwi): Same.
4195 (streamer_read_gcov_count): Same.
4196 (streamer_read_wide_int): Same.
4197 * data-streamer.h (streamer_write_bitpack): Same.
4198 (bp_unpack_value): Same.
4199 (streamer_write_char_stream): Same.
4200 (streamer_write_hwi_in_range): Same.
4201 (streamer_write_record_start): Same.
4202 * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
4203 (add_cross_iteration_register_deps): Same.
4204 (build_intra_loop_deps): Same.
4205 * df-core.c (df_analyze): Same.
4206 (loop_post_order_compute): Same.
4207 (loop_inverted_post_order_compute): Same.
4208 * df-problems.c (df_rd_alloc): Same.
4209 (df_rd_simulate_one_insn): Same.
4210 (df_rd_local_compute): Same.
4211 (df_rd_init_solution): Same.
4212 (df_rd_confluence_n): Same.
4213 (df_rd_transfer_function): Same.
4214 (df_rd_free): Same.
4215 (df_rd_dump_defs_set): Same.
4216 (df_rd_top_dump): Same.
4217 (df_lr_alloc): Same.
4218 (df_lr_reset): Same.
4219 (df_lr_local_compute): Same.
4220 (df_lr_init): Same.
4221 (df_lr_confluence_n): Same.
4222 (df_lr_free): Same.
4223 (df_lr_top_dump): Same.
4224 (df_lr_verify_transfer_functions): Same.
4225 (df_live_alloc): Same.
4226 (df_live_reset): Same.
4227 (df_live_init): Same.
4228 (df_live_confluence_n): Same.
4229 (df_live_finalize): Same.
4230 (df_live_free): Same.
4231 (df_live_top_dump): Same.
4232 (df_live_verify_transfer_functions): Same.
4233 (df_mir_alloc): Same.
4234 (df_mir_reset): Same.
4235 (df_mir_init): Same.
4236 (df_mir_confluence_n): Same.
4237 (df_mir_free): Same.
4238 (df_mir_top_dump): Same.
4239 (df_word_lr_alloc): Same.
4240 (df_word_lr_reset): Same.
4241 (df_word_lr_init): Same.
4242 (df_word_lr_confluence_n): Same.
4243 (df_word_lr_free): Same.
4244 (df_word_lr_top_dump): Same.
4245 (df_md_alloc): Same.
4246 (df_md_simulate_one_insn): Same.
4247 (df_md_reset): Same.
4248 (df_md_init): Same.
4249 (df_md_free): Same.
4250 (df_md_top_dump): Same.
4251 * df-scan.c (df_insn_delete): Same.
4252 (df_insn_rescan): Same.
4253 (df_notes_rescan): Same.
4254 (df_sort_and_compress_mws): Same.
4255 (df_install_mws): Same.
4256 (df_refs_add_to_chains): Same.
4257 (df_ref_create_structure): Same.
4258 (df_ref_record): Same.
4259 (df_def_record_1): Same.
4260 (df_find_hard_reg_defs): Same.
4261 (df_uses_record): Same.
4262 (df_get_conditional_uses): Same.
4263 (df_get_call_refs): Same.
4264 (df_recompute_luids): Same.
4265 (df_get_entry_block_def_set): Same.
4266 (df_entry_block_defs_collect): Same.
4267 (df_get_exit_block_use_set): Same.
4268 (df_exit_block_uses_collect): Same.
4269 (df_mws_verify): Same.
4270 (df_bb_verify): Same.
4271 * df.h (df_scan_get_bb_info): Same.
4272 * doc/tm.texi: Same.
4273 * dse.c (record_store): Same.
4274 * dumpfile.h: Same.
4275 * emit-rtl.c (const_fixed_hasher::equal): Same.
4276 (set_mem_attributes_minus_bitpos): Same.
4277 (change_address): Same.
4278 (adjust_address_1): Same.
4279 (offset_address): Same.
4280 * emit-rtl.h: Same.
4281 * except.c (dw2_build_landing_pads): Same.
4282 (sjlj_emit_dispatch_table): Same.
4283 * explow.c (allocate_dynamic_stack_space): Same.
4284 (emit_stack_probe): Same.
4285 (probe_stack_range): Same.
4286 * expmed.c (store_bit_field_using_insv): Same.
4287 (store_bit_field_1): Same.
4288 (store_integral_bit_field): Same.
4289 (extract_bit_field_using_extv): Same.
4290 (extract_bit_field_1): Same.
4291 (emit_cstore): Same.
4292 * expr.c (emit_block_move_via_cpymem): Same.
4293 (expand_cmpstrn_or_cmpmem): Same.
4294 (set_storage_via_setmem): Same.
4295 (emit_single_push_insn_1): Same.
4296 (expand_assignment): Same.
4297 (store_constructor): Same.
4298 (expand_expr_real_2): Same.
4299 (expand_expr_real_1): Same.
4300 (try_casesi): Same.
4301 * flags.h: Same.
4302 * function.c (try_fit_stack_local): Same.
4303 (assign_stack_local_1): Same.
4304 (assign_stack_local): Same.
4305 (cut_slot_from_list): Same.
4306 (insert_slot_to_list): Same.
4307 (max_slot_level): Same.
4308 (move_slot_to_level): Same.
4309 (temp_address_hasher::equal): Same.
4310 (remove_unused_temp_slot_addresses): Same.
4311 (assign_temp): Same.
4312 (combine_temp_slots): Same.
4313 (update_temp_slot_address): Same.
4314 (preserve_temp_slots): Same.
4315 * function.h: Same.
4316 * fwprop.c: Same.
4317 * gcc-rich-location.h: Same.
4318 * gcov.c: Same.
4319 * genattrtab.c (check_attr_test): Same.
4320 (check_attr_value): Same.
4321 (convert_set_attr_alternative): Same.
4322 (convert_set_attr): Same.
4323 (check_defs): Same.
4324 (copy_boolean): Same.
4325 (get_attr_value): Same.
4326 (expand_delays): Same.
4327 (make_length_attrs): Same.
4328 (min_fn): Same.
4329 (make_alternative_compare): Same.
4330 (simplify_test_exp): Same.
4331 (tests_attr_p): Same.
4332 (get_attr_order): Same.
4333 (clear_struct_flag): Same.
4334 (gen_attr): Same.
4335 (compares_alternatives_p): Same.
4336 (gen_insn): Same.
4337 (gen_delay): Same.
4338 (find_attrs_to_cache): Same.
4339 (write_test_expr): Same.
4340 (walk_attr_value): Same.
4341 (write_attr_get): Same.
4342 (eliminate_known_true): Same.
4343 (write_insn_cases): Same.
4344 (write_attr_case): Same.
4345 (write_attr_valueq): Same.
4346 (write_attr_value): Same.
4347 (write_dummy_eligible_delay): Same.
4348 (next_comma_elt): Same.
4349 (find_attr): Same.
4350 (make_internal_attr): Same.
4351 (copy_rtx_unchanging): Same.
4352 (gen_insn_reserv): Same.
4353 (check_tune_attr): Same.
4354 (make_automaton_attrs): Same.
4355 (handle_arg): Same.
4356 * genextract.c (gen_insn): Same.
4357 (VEC_char_to_string): Same.
4358 * genmatch.c (print_operand): Same.
4359 (lower): Same.
4360 (parser::parse_operation): Same.
4361 (parser::parse_capture): Same.
4362 (parser::parse_c_expr): Same.
4363 (parser::parse_simplify): Same.
4364 (main): Same.
4365 * genoutput.c (output_operand_data): Same.
4366 (output_get_insn_name): Same.
4367 (compare_operands): Same.
4368 (place_operands): Same.
4369 (process_template): Same.
4370 (validate_insn_alternatives): Same.
4371 (validate_insn_operands): Same.
4372 (gen_expand): Same.
4373 (note_constraint): Same.
4374 * genpreds.c (write_one_predicate_function): Same.
4375 (add_constraint): Same.
4376 (process_define_register_constraint): Same.
4377 (write_lookup_constraint_1): Same.
4378 (write_lookup_constraint_array): Same.
4379 (write_insn_constraint_len): Same.
4380 (write_reg_class_for_constraint_1): Same.
4381 (write_constraint_satisfied_p_array): Same.
4382 * genrecog.c (optimize_subroutine_group): Same.
4383 * gensupport.c (process_define_predicate): Same.
4384 (queue_pattern): Same.
4385 (remove_from_queue): Same.
4386 (process_rtx): Same.
4387 (is_predicable): Same.
4388 (change_subst_attribute): Same.
4389 (subst_pattern_match): Same.
4390 (alter_constraints): Same.
4391 (alter_attrs_for_insn): Same.
4392 (shift_output_template): Same.
4393 (alter_output_for_subst_insn): Same.
4394 (process_one_cond_exec): Same.
4395 (subst_dup): Same.
4396 (process_define_cond_exec): Same.
4397 (mnemonic_htab_callback): Same.
4398 (gen_mnemonic_attr): Same.
4399 (read_md_rtx): Same.
4400 * ggc-page.c: Same.
4401 * gimple-loop-interchange.cc (dump_reduction): Same.
4402 (dump_induction): Same.
4403 (loop_cand::~loop_cand): Same.
4404 (free_data_refs_with_aux): Same.
4405 (tree_loop_interchange::interchange_loops): Same.
4406 (tree_loop_interchange::map_inductions_to_loop): Same.
4407 (tree_loop_interchange::move_code_to_inner_loop): Same.
4408 (compute_access_stride): Same.
4409 (compute_access_strides): Same.
4410 (proper_loop_form_for_interchange): Same.
4411 (tree_loop_interchange_compute_ddrs): Same.
4412 (prune_datarefs_not_in_loop): Same.
4413 (prepare_data_references): Same.
4414 (pass_linterchange::execute): Same.
4415 * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
4416 (unroll_jam_possible_p): Same.
4417 (fuse_loops): Same.
4418 (adjust_unroll_factor): Same.
4419 (tree_loop_unroll_and_jam): Same.
4420 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
4421 (loop_versioning::expensive_stmt_p): Same.
4422 (loop_versioning::version_for_unity): Same.
4423 (loop_versioning::dump_inner_likelihood): Same.
4424 (loop_versioning::find_per_loop_multiplication): Same.
4425 (loop_versioning::analyze_term_using_scevs): Same.
4426 (loop_versioning::record_address_fragment): Same.
4427 (loop_versioning::analyze_expr): Same.
4428 (loop_versioning::analyze_blocks): Same.
4429 (loop_versioning::prune_conditions): Same.
4430 (loop_versioning::merge_loop_info): Same.
4431 (loop_versioning::add_loop_to_queue): Same.
4432 (loop_versioning::decide_whether_loop_is_versionable): Same.
4433 (loop_versioning::make_versioning_decisions): Same.
4434 (loop_versioning::implement_versioning_decisions): Same.
4435 * gimple-ssa-evrp-analyze.c
4436 (evrp_range_analyzer::record_ranges_from_phis): Same.
4437 * gimple-ssa-store-merging.c (split_store::split_store): Same.
4438 (count_multiple_uses): Same.
4439 (split_group): Same.
4440 (imm_store_chain_info::output_merged_store): Same.
4441 (pass_store_merging::process_store): Same.
4442 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
4443 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
4444 (is_max): Same.
4445 (alloca_call_type): Same.
4446 (pass_walloca::execute): Same.
4447 * gimple-streamer-in.c (input_phi): Same.
4448 (input_gimple_stmt): Same.
4449 * gimple-streamer.h: Same.
4450 * godump.c (go_force_record_alignment): Same.
4451 (go_format_type): Same.
4452 (go_output_type): Same.
4453 (go_output_fndecl): Same.
4454 (go_output_typedef): Same.
4455 (keyword_hash_init): Same.
4456 (find_dummy_types): Same.
4457 * graph.c (draw_cfg_nodes_no_loops): Same.
4458 (draw_cfg_nodes_for_loop): Same.
4459 * hard-reg-set.h (hard_reg_set_iter_next): Same.
4460 * hsa-brig.c: Same.
4461 * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
4462 * hsa-dump.c (dump_hsa_cfun): Same.
4463 * hsa-gen.c (gen_function_def_parameters): Same.
4464 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
4465 * input.c (dump_line_table_statistics): Same.
4466 (test_lexer): Same.
4467 * input.h: Same.
4468 * internal-fn.c (get_multi_vector_move): Same.
4469 (expand_load_lanes_optab_fn): Same.
4470 (expand_GOMP_SIMT_ENTER_ALLOC): Same.
4471 (expand_GOMP_SIMT_EXIT): Same.
4472 (expand_GOMP_SIMT_LAST_LANE): Same.
4473 (expand_GOMP_SIMT_ORDERED_PRED): Same.
4474 (expand_GOMP_SIMT_VOTE_ANY): Same.
4475 (expand_GOMP_SIMT_XCHG_BFLY): Same.
4476 (expand_GOMP_SIMT_XCHG_IDX): Same.
4477 (expand_addsub_overflow): Same.
4478 (expand_neg_overflow): Same.
4479 (expand_mul_overflow): Same.
4480 (expand_call_mem_ref): Same.
4481 (expand_mask_load_optab_fn): Same.
4482 (expand_scatter_store_optab_fn): Same.
4483 (expand_gather_load_optab_fn): Same.
4484 * ipa-cp.c (ipa_get_parm_lattices): Same.
4485 (print_all_lattices): Same.
4486 (ignore_edge_p): Same.
4487 (build_toporder_info): Same.
4488 (free_toporder_info): Same.
4489 (push_node_to_stack): Same.
4490 (ipcp_lattice<valtype>::set_contains_variable): Same.
4491 (set_agg_lats_to_bottom): Same.
4492 (ipcp_bits_lattice::meet_with): Same.
4493 (set_single_call_flag): Same.
4494 (initialize_node_lattices): Same.
4495 (ipa_get_jf_ancestor_result): Same.
4496 (ipcp_verify_propagated_values): Same.
4497 (propagate_scalar_across_jump_function): Same.
4498 (propagate_context_across_jump_function): Same.
4499 (propagate_bits_across_jump_function): Same.
4500 (ipa_vr_operation_and_type_effects): Same.
4501 (propagate_vr_across_jump_function): Same.
4502 (set_check_aggs_by_ref): Same.
4503 (set_chain_of_aglats_contains_variable): Same.
4504 (merge_aggregate_lattices): Same.
4505 (agg_pass_through_permissible_p): Same.
4506 (propagate_aggs_across_jump_function): Same.
4507 (call_passes_through_thunk_p): Same.
4508 (propagate_constants_across_call): Same.
4509 (devirtualization_time_bonus): Same.
4510 (good_cloning_opportunity_p): Same.
4511 (context_independent_aggregate_values): Same.
4512 (gather_context_independent_values): Same.
4513 (perform_estimation_of_a_value): Same.
4514 (estimate_local_effects): Same.
4515 (value_topo_info<valtype>::add_val): Same.
4516 (add_all_node_vals_to_toposort): Same.
4517 (value_topo_info<valtype>::propagate_effects): Same.
4518 (ipcp_propagate_stage): Same.
4519 (ipcp_discover_new_direct_edges): Same.
4520 (same_node_or_its_all_contexts_clone_p): Same.
4521 (cgraph_edge_brings_value_p): Same.
4522 (gather_edges_for_value): Same.
4523 (create_specialized_node): Same.
4524 (find_more_scalar_values_for_callers_subset): Same.
4525 (find_more_contexts_for_caller_subset): Same.
4526 (copy_plats_to_inter): Same.
4527 (intersect_aggregates_with_edge): Same.
4528 (find_aggregate_values_for_callers_subset): Same.
4529 (cgraph_edge_brings_all_agg_vals_for_node): Same.
4530 (decide_about_value): Same.
4531 (decide_whether_version_node): Same.
4532 (spread_undeadness): Same.
4533 (identify_dead_nodes): Same.
4534 (ipcp_store_vr_results): Same.
4535 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
4536 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
4537 (redirect_to_unreachable): Same.
4538 (edge_set_predicate): Same.
4539 (evaluate_conditions_for_known_args): Same.
4540 (evaluate_properties_for_edge): Same.
4541 (ipa_fn_summary_t::duplicate): Same.
4542 (ipa_call_summary_t::duplicate): Same.
4543 (dump_ipa_call_summary): Same.
4544 (ipa_dump_fn_summary): Same.
4545 (eliminated_by_inlining_prob): Same.
4546 (set_cond_stmt_execution_predicate): Same.
4547 (set_switch_stmt_execution_predicate): Same.
4548 (compute_bb_predicates): Same.
4549 (will_be_nonconstant_expr_predicate): Same.
4550 (phi_result_unknown_predicate): Same.
4551 (analyze_function_body): Same.
4552 (compute_fn_summary): Same.
4553 (estimate_edge_devirt_benefit): Same.
4554 (estimate_edge_size_and_time): Same.
4555 (estimate_calls_size_and_time): Same.
4556 (estimate_node_size_and_time): Same.
4557 (remap_edge_change_prob): Same.
4558 (remap_edge_summaries): Same.
4559 (ipa_merge_fn_summary_after_inlining): Same.
4560 (ipa_fn_summary_generate): Same.
4561 (inline_read_section): Same.
4562 (ipa_fn_summary_read): Same.
4563 (ipa_fn_summary_write): Same.
4564 * ipa-fnsummary.h: Same.
4565 * ipa-hsa.c (ipa_hsa_read_section): Same.
4566 * ipa-icf-gimple.c (func_checker::compare_loops): Same.
4567 * ipa-icf.c (sem_function::param_used_p): Same.
4568 * ipa-inline-analysis.c (do_estimate_edge_time): Same.
4569 * ipa-inline.c (edge_badness): Same.
4570 (inline_small_functions): Same.
4571 * ipa-polymorphic-call.c
4572 (ipa_polymorphic_call_context::stream_out): Same.
4573 * ipa-predicate.c (predicate::remap_after_duplication): Same.
4574 (predicate::remap_after_inlining): Same.
4575 (predicate::stream_out): Same.
4576 * ipa-predicate.h: Same.
4577 * ipa-profile.c (ipa_profile_read_summary): Same.
4578 * ipa-prop.c (ipa_get_param_decl_index_1): Same.
4579 (count_formal_params): Same.
4580 (ipa_dump_param): Same.
4581 (ipa_alloc_node_params): Same.
4582 (ipa_print_node_jump_functions_for_edge): Same.
4583 (ipa_print_node_jump_functions): Same.
4584 (ipa_load_from_parm_agg): Same.
4585 (get_ancestor_addr_info): Same.
4586 (ipa_compute_jump_functions_for_edge): Same.
4587 (ipa_analyze_virtual_call_uses): Same.
4588 (ipa_analyze_stmt_uses): Same.
4589 (ipa_analyze_params_uses_in_bb): Same.
4590 (update_jump_functions_after_inlining): Same.
4591 (try_decrement_rdesc_refcount): Same.
4592 (ipa_impossible_devirt_target): Same.
4593 (update_indirect_edges_after_inlining): Same.
4594 (combine_controlled_uses_counters): Same.
4595 (ipa_edge_args_sum_t::duplicate): Same.
4596 (ipa_write_jump_function): Same.
4597 (ipa_write_indirect_edge_info): Same.
4598 (ipa_write_node_info): Same.
4599 (ipa_read_edge_info): Same.
4600 (ipa_prop_read_section): Same.
4601 (read_replacements_section): Same.
4602 * ipa-prop.h (ipa_get_param_count): Same.
4603 (ipa_get_param): Same.
4604 (ipa_get_type): Same.
4605 (ipa_get_param_move_cost): Same.
4606 (ipa_set_param_used): Same.
4607 (ipa_get_controlled_uses): Same.
4608 (ipa_set_controlled_uses): Same.
4609 (ipa_get_cs_argument_count): Same.
4610 * ipa-pure-const.c (analyze_function): Same.
4611 (pure_const_read_summary): Same.
4612 * ipa-ref.h: Same.
4613 * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
4614 * ipa-split.c (test_nonssa_use): Same.
4615 (dump_split_point): Same.
4616 (dominated_by_forbidden): Same.
4617 (split_part_set_ssa_name_p): Same.
4618 (find_split_points): Same.
4619 * ira-build.c (finish_loop_tree_nodes): Same.
4620 (low_pressure_loop_node_p): Same.
4621 * ira-color.c (ira_reuse_stack_slot): Same.
4622 * ira-int.h: Same.
4623 * ira.c (setup_reg_equiv): Same.
4624 (print_insn_chain): Same.
4625 (ira): Same.
4626 * loop-doloop.c (doloop_condition_get): Same.
4627 (add_test): Same.
4628 (record_reg_sets): Same.
4629 (doloop_optimize): Same.
4630 * loop-init.c (loop_optimizer_init): Same.
4631 (fix_loop_structure): Same.
4632 * loop-invariant.c (merge_identical_invariants): Same.
4633 (compute_always_reached): Same.
4634 (find_exits): Same.
4635 (may_assign_reg_p): Same.
4636 (find_invariants_bb): Same.
4637 (find_invariants_body): Same.
4638 (replace_uses): Same.
4639 (can_move_invariant_reg): Same.
4640 (free_inv_motion_data): Same.
4641 (move_single_loop_invariants): Same.
4642 (change_pressure): Same.
4643 (mark_ref_regs): Same.
4644 (calculate_loop_reg_pressure): Same.
4645 * loop-iv.c (biv_entry_hasher::equal): Same.
4646 (iv_extend_to_rtx_code): Same.
4647 (check_iv_ref_table_size): Same.
4648 (clear_iv_info): Same.
4649 (latch_dominating_def): Same.
4650 (iv_get_reaching_def): Same.
4651 (iv_constant): Same.
4652 (iv_subreg): Same.
4653 (iv_extend): Same.
4654 (iv_neg): Same.
4655 (iv_add): Same.
4656 (iv_mult): Same.
4657 (get_biv_step): Same.
4658 (record_iv): Same.
4659 (analyzed_for_bivness_p): Same.
4660 (record_biv): Same.
4661 (iv_analyze_biv): Same.
4662 (iv_analyze_expr): Same.
4663 (iv_analyze_def): Same.
4664 (iv_analyze_op): Same.
4665 (iv_analyze): Same.
4666 (iv_analyze_result): Same.
4667 (biv_p): Same.
4668 (eliminate_implied_conditions): Same.
4669 (simplify_using_initial_values): Same.
4670 (shorten_into_mode): Same.
4671 (canonicalize_iv_subregs): Same.
4672 (determine_max_iter): Same.
4673 (check_simple_exit): Same.
4674 (find_simple_exit): Same.
4675 (get_simple_loop_desc): Same.
4676 * loop-unroll.c (report_unroll): Same.
4677 (decide_unrolling): Same.
4678 (unroll_loops): Same.
4679 (loop_exit_at_end_p): Same.
4680 (decide_unroll_constant_iterations): Same.
4681 (unroll_loop_constant_iterations): Same.
4682 (compare_and_jump_seq): Same.
4683 (unroll_loop_runtime_iterations): Same.
4684 (decide_unroll_stupid): Same.
4685 (unroll_loop_stupid): Same.
4686 (referenced_in_one_insn_in_loop_p): Same.
4687 (reset_debug_uses_in_loop): Same.
4688 (analyze_iv_to_split_insn): Same.
4689 * lra-eliminations.c (lra_debug_elim_table): Same.
4690 (setup_can_eliminate): Same.
4691 (form_sum): Same.
4692 (lra_get_elimination_hard_regno): Same.
4693 (lra_eliminate_regs_1): Same.
4694 (eliminate_regs_in_insn): Same.
4695 (update_reg_eliminate): Same.
4696 (init_elimination): Same.
4697 (lra_eliminate): Same.
4698 * lra-int.h: Same.
4699 * lra-lives.c (initiate_live_solver): Same.
4700 * lra-remat.c (create_remat_bb_data): Same.
4701 * lra-spills.c (lra_spill): Same.
4702 * lra.c (lra_set_insn_recog_data): Same.
4703 (lra_set_used_insn_alternative_by_uid): Same.
4704 (init_reg_info): Same.
4705 (expand_reg_info): Same.
4706 * lto-cgraph.c (output_symtab): Same.
4707 (read_identifier): Same.
4708 (get_alias_symbol): Same.
4709 (input_node): Same.
4710 (input_varpool_node): Same.
4711 (input_ref): Same.
4712 (input_edge): Same.
4713 (input_cgraph_1): Same.
4714 (input_refs): Same.
4715 (input_symtab): Same.
4716 (input_offload_tables): Same.
4717 (output_cgraph_opt_summary): Same.
4718 (input_edge_opt_summary): Same.
4719 (input_cgraph_opt_section): Same.
4720 * lto-section-in.c (lto_free_raw_section_data): Same.
4721 (lto_create_simple_input_block): Same.
4722 (lto_free_function_in_decl_state_for_node): Same.
4723 * lto-streamer-in.c (lto_tag_check_set): Same.
4724 (lto_location_cache::revert_location_cache): Same.
4725 (lto_location_cache::input_location): Same.
4726 (lto_input_location): Same.
4727 (stream_input_location_now): Same.
4728 (lto_input_tree_ref): Same.
4729 (lto_input_eh_catch_list): Same.
4730 (input_eh_region): Same.
4731 (lto_init_eh): Same.
4732 (make_new_block): Same.
4733 (input_cfg): Same.
4734 (fixup_call_stmt_edges): Same.
4735 (input_struct_function_base): Same.
4736 (input_function): Same.
4737 (lto_read_body_or_constructor): Same.
4738 (lto_read_tree_1): Same.
4739 (lto_read_tree): Same.
4740 (lto_input_scc): Same.
4741 (lto_input_tree_1): Same.
4742 (lto_input_toplevel_asms): Same.
4743 (lto_input_mode_table): Same.
4744 (lto_reader_init): Same.
4745 (lto_data_in_create): Same.
4746 * lto-streamer-out.c (output_cfg): Same.
4747 * lto-streamer.h: Same.
4748 * modulo-sched.c (duplicate_insns_of_cycles): Same.
4749 (generate_prolog_epilog): Same.
4750 (mark_loop_unsched): Same.
4751 (dump_insn_location): Same.
4752 (loop_canon_p): Same.
4753 (sms_schedule): Same.
4754 * omp-expand.c (expand_omp_for_ordered_loops): Same.
4755 (expand_omp_for_generic): Same.
4756 (expand_omp_for_static_nochunk): Same.
4757 (expand_omp_for_static_chunk): Same.
4758 (expand_omp_simd): Same.
4759 (expand_omp_taskloop_for_inner): Same.
4760 (expand_oacc_for): Same.
4761 (expand_omp_atomic_pipeline): Same.
4762 (mark_loops_in_oacc_kernels_region): Same.
4763 * omp-offload.c (oacc_xform_loop): Same.
4764 * omp-simd-clone.c (simd_clone_adjust): Same.
4765 * optabs-query.c (get_traditional_extraction_insn): Same.
4766 * optabs.c (expand_vector_broadcast): Same.
4767 (expand_binop_directly): Same.
4768 (expand_twoval_unop): Same.
4769 (expand_twoval_binop): Same.
4770 (expand_unop_direct): Same.
4771 (emit_indirect_jump): Same.
4772 (emit_conditional_move): Same.
4773 (emit_conditional_neg_or_complement): Same.
4774 (emit_conditional_add): Same.
4775 (vector_compare_rtx): Same.
4776 (expand_vec_perm_1): Same.
4777 (expand_vec_perm_const): Same.
4778 (expand_vec_cond_expr): Same.
4779 (expand_vec_series_expr): Same.
4780 (maybe_emit_atomic_exchange): Same.
4781 (maybe_emit_sync_lock_test_and_set): Same.
4782 (expand_atomic_compare_and_swap): Same.
4783 (expand_atomic_load): Same.
4784 (expand_atomic_store): Same.
4785 (maybe_emit_op): Same.
4786 (valid_multiword_target_p): Same.
4787 (create_integer_operand): Same.
4788 (maybe_legitimize_operand_same_code): Same.
4789 (maybe_legitimize_operand): Same.
4790 (create_convert_operand_from_type): Same.
4791 (can_reuse_operands_p): Same.
4792 (maybe_legitimize_operands): Same.
4793 (maybe_gen_insn): Same.
4794 (maybe_expand_insn): Same.
4795 (maybe_expand_jump_insn): Same.
4796 (expand_insn): Same.
4797 * optabs.h (create_expand_operand): Same.
4798 (create_fixed_operand): Same.
4799 (create_output_operand): Same.
4800 (create_input_operand): Same.
4801 (create_convert_operand_to): Same.
4802 (create_convert_operand_from): Same.
4803 * optinfo.h: Same.
4804 * poly-int.h: Same.
4805 * predict.c (optimize_insn_for_speed_p): Same.
4806 (optimize_loop_for_size_p): Same.
4807 (optimize_loop_for_speed_p): Same.
4808 (optimize_loop_nest_for_speed_p): Same.
4809 (get_base_value): Same.
4810 (predicted_by_loop_heuristics_p): Same.
4811 (predict_extra_loop_exits): Same.
4812 (predict_loops): Same.
4813 (predict_paths_for_bb): Same.
4814 (predict_paths_leading_to): Same.
4815 (propagate_freq): Same.
4816 (pass_profile::execute): Same.
4817 * predict.h: Same.
4818 * profile-count.c (profile_count::differs_from_p): Same.
4819 (profile_probability::differs_lot_from_p): Same.
4820 * profile-count.h: Same.
4821 * profile.c (branch_prob): Same.
4822 * regrename.c (free_chain_data): Same.
4823 (mark_conflict): Same.
4824 (create_new_chain): Same.
4825 (merge_overlapping_regs): Same.
4826 (init_rename_info): Same.
4827 (merge_chains): Same.
4828 (regrename_analyze): Same.
4829 (regrename_do_replace): Same.
4830 (scan_rtx_reg): Same.
4831 (record_out_operands): Same.
4832 (build_def_use): Same.
4833 * regrename.h: Same.
4834 * reload.h: Same.
4835 * reload1.c (init_reload): Same.
4836 (maybe_fix_stack_asms): Same.
4837 (copy_reloads): Same.
4838 (count_pseudo): Same.
4839 (count_spilled_pseudo): Same.
4840 (find_reg): Same.
4841 (find_reload_regs): Same.
4842 (select_reload_regs): Same.
4843 (spill_hard_reg): Same.
4844 (fixup_eh_region_note): Same.
4845 (set_reload_reg): Same.
4846 (allocate_reload_reg): Same.
4847 (compute_reload_subreg_offset): Same.
4848 (reload_adjust_reg_for_icode): Same.
4849 (emit_input_reload_insns): Same.
4850 (emit_output_reload_insns): Same.
4851 (do_input_reload): Same.
4852 (inherit_piecemeal_p): Same.
4853 * rtl.h: Same.
4854 * sanopt.c (maybe_get_dominating_check): Same.
4855 (maybe_optimize_ubsan_ptr_ifn): Same.
4856 (can_remove_asan_check): Same.
4857 (maybe_optimize_asan_check_ifn): Same.
4858 (sanopt_optimize_walker): Same.
4859 * sched-deps.c (add_dependence_list): Same.
4860 (chain_to_prev_insn): Same.
4861 (add_insn_mem_dependence): Same.
4862 (create_insn_reg_set): Same.
4863 (maybe_extend_reg_info_p): Same.
4864 (sched_analyze_reg): Same.
4865 (sched_analyze_1): Same.
4866 (get_implicit_reg_pending_clobbers): Same.
4867 (chain_to_prev_insn_p): Same.
4868 (deps_analyze_insn): Same.
4869 (deps_start_bb): Same.
4870 (sched_free_deps): Same.
4871 (init_deps): Same.
4872 (init_deps_reg_last): Same.
4873 (free_deps): Same.
4874 * sched-ebb.c: Same.
4875 * sched-int.h: Same.
4876 * sched-rgn.c (add_branch_dependences): Same.
4877 (concat_insn_mem_list): Same.
4878 (deps_join): Same.
4879 (sched_rgn_compute_dependencies): Same.
4880 * sel-sched-ir.c (reset_target_context): Same.
4881 (copy_deps_context): Same.
4882 (init_id_from_df): Same.
4883 (has_dependence_p): Same.
4884 (change_loops_latches): Same.
4885 (bb_top_order_comparator): Same.
4886 (make_region_from_loop_preheader): Same.
4887 (sel_init_pipelining): Same.
4888 (get_loop_nest_for_rgn): Same.
4889 (make_regions_from_the_rest): Same.
4890 (sel_is_loop_preheader_p): Same.
4891 * sel-sched-ir.h (inner_loop_header_p): Same.
4892 (get_all_loop_exits): Same.
4893 * selftest.h: Same.
4894 * sese.c (sese_build_liveouts): Same.
4895 (sese_insert_phis_for_liveouts): Same.
4896 * sese.h (defined_in_sese_p): Same.
4897 * sreal.c (sreal::stream_out): Same.
4898 * sreal.h: Same.
4899 * streamer-hooks.h: Same.
4900 * target-globals.c (save_target_globals): Same.
4901 * target-globals.h: Same.
4902 * target.def: Same.
4903 * target.h: Same.
4904 * targhooks.c (default_has_ifunc_p): Same.
4905 (default_empty_mask_is_expensive): Same.
4906 (default_init_cost): Same.
4907 * targhooks.h: Same.
4908 * toplev.c: Same.
4909 * tree-affine.c (aff_combination_mult): Same.
4910 (aff_combination_expand): Same.
4911 (aff_combination_constant_multiple_p): Same.
4912 * tree-affine.h: Same.
4913 * tree-cfg.c (build_gimple_cfg): Same.
4914 (replace_loop_annotate_in_block): Same.
4915 (replace_uses_by): Same.
4916 (remove_bb): Same.
4917 (dump_cfg_stats): Same.
4918 (gimple_duplicate_sese_region): Same.
4919 (gimple_duplicate_sese_tail): Same.
4920 (move_block_to_fn): Same.
4921 (replace_block_vars_by_duplicates): Same.
4922 (move_sese_region_to_fn): Same.
4923 (print_loops_bb): Same.
4924 (print_loop): Same.
4925 (print_loops): Same.
4926 (debug): Same.
4927 (debug_loops): Same.
4928 * tree-cfg.h: Same.
4929 * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
4930 (chrec_fold_multiply_poly_poly): Same.
4931 (chrec_evaluate): Same.
4932 (chrec_component_in_loop_num): Same.
4933 (reset_evolution_in_loop): Same.
4934 (is_multivariate_chrec): Same.
4935 (chrec_contains_symbols): Same.
4936 (nb_vars_in_chrec): Same.
4937 (chrec_convert_1): Same.
4938 (chrec_convert_aggressive): Same.
4939 * tree-chrec.h: Same.
4940 * tree-core.h: Same.
4941 * tree-data-ref.c (dump_data_dependence_relation): Same.
4942 (canonicalize_base_object_address): Same.
4943 (data_ref_compare_tree): Same.
4944 (prune_runtime_alias_test_list): Same.
4945 (get_segment_min_max): Same.
4946 (create_intersect_range_checks): Same.
4947 (conflict_fn_no_dependence): Same.
4948 (object_address_invariant_in_loop_p): Same.
4949 (analyze_ziv_subscript): Same.
4950 (analyze_siv_subscript_cst_affine): Same.
4951 (analyze_miv_subscript): Same.
4952 (analyze_overlapping_iterations): Same.
4953 (build_classic_dist_vector_1): Same.
4954 (add_other_self_distances): Same.
4955 (same_access_functions): Same.
4956 (build_classic_dir_vector): Same.
4957 (subscript_dependence_tester_1): Same.
4958 (subscript_dependence_tester): Same.
4959 (access_functions_are_affine_or_constant_p): Same.
4960 (get_references_in_stmt): Same.
4961 (loop_nest_has_data_refs): Same.
4962 (graphite_find_data_references_in_stmt): Same.
4963 (find_data_references_in_bb): Same.
4964 (get_base_for_alignment): Same.
4965 (find_loop_nest_1): Same.
4966 (find_loop_nest): Same.
4967 * tree-data-ref.h (dr_alignment): Same.
4968 (ddr_dependence_level): Same.
4969 * tree-if-conv.c (fold_build_cond_expr): Same.
4970 (add_to_predicate_list): Same.
4971 (add_to_dst_predicate_list): Same.
4972 (phi_convertible_by_degenerating_args): Same.
4973 (idx_within_array_bound): Same.
4974 (all_preds_critical_p): Same.
4975 (pred_blocks_visited_p): Same.
4976 (predicate_bbs): Same.
4977 (build_region): Same.
4978 (if_convertible_loop_p_1): Same.
4979 (is_cond_scalar_reduction): Same.
4980 (predicate_scalar_phi): Same.
4981 (remove_conditions_and_labels): Same.
4982 (combine_blocks): Same.
4983 (version_loop_for_if_conversion): Same.
4984 (versionable_outer_loop_p): Same.
4985 (ifcvt_local_dce): Same.
4986 (tree_if_conversion): Same.
4987 (pass_if_conversion::gate): Same.
4988 * tree-if-conv.h: Same.
4989 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
4990 * tree-loop-distribution.c (bb_top_order_cmp): Same.
4991 (free_rdg): Same.
4992 (stmt_has_scalar_dependences_outside_loop): Same.
4993 (copy_loop_before): Same.
4994 (create_bb_after_loop): Same.
4995 (const_with_all_bytes_same): Same.
4996 (generate_memset_builtin): Same.
4997 (generate_memcpy_builtin): Same.
4998 (destroy_loop): Same.
4999 (build_rdg_partition_for_vertex): Same.
5000 (compute_access_range): Same.
5001 (data_ref_segment_size): Same.
5002 (latch_dominated_by_data_ref): Same.
5003 (compute_alias_check_pairs): Same.
5004 (fuse_memset_builtins): Same.
5005 (finalize_partitions): Same.
5006 (find_seed_stmts_for_distribution): Same.
5007 (prepare_perfect_loop_nest): Same.
5008 * tree-parloops.c (lambda_transform_legal_p): Same.
5009 (loop_parallel_p): Same.
5010 (reduc_stmt_res): Same.
5011 (add_field_for_name): Same.
5012 (create_call_for_reduction_1): Same.
5013 (replace_uses_in_bb_by): Same.
5014 (transform_to_exit_first_loop_alt): Same.
5015 (try_transform_to_exit_first_loop_alt): Same.
5016 (transform_to_exit_first_loop): Same.
5017 (num_phis): Same.
5018 (gen_parallel_loop): Same.
5019 (gather_scalar_reductions): Same.
5020 (get_omp_data_i_param): Same.
5021 (try_create_reduction_list): Same.
5022 (oacc_entry_exit_single_gang): Same.
5023 (parallelize_loops): Same.
5024 * tree-pass.h: Same.
5025 * tree-predcom.c (determine_offset): Same.
5026 (last_always_executed_block): Same.
5027 (split_data_refs_to_components): Same.
5028 (suitable_component_p): Same.
5029 (valid_initializer_p): Same.
5030 (find_looparound_phi): Same.
5031 (insert_looparound_copy): Same.
5032 (add_looparound_copies): Same.
5033 (determine_roots_comp): Same.
5034 (predcom_tmp_var): Same.
5035 (initialize_root_vars): Same.
5036 (initialize_root_vars_store_elim_1): Same.
5037 (initialize_root_vars_store_elim_2): Same.
5038 (finalize_eliminated_stores): Same.
5039 (initialize_root_vars_lm): Same.
5040 (remove_stmt): Same.
5041 (determine_unroll_factor): Same.
5042 (execute_pred_commoning_cbck): Same.
5043 (base_names_in_chain_on): Same.
5044 (combine_chains): Same.
5045 (pcom_stmt_dominates_stmt_p): Same.
5046 (try_combine_chains): Same.
5047 (prepare_initializers_chain_store_elim): Same.
5048 (prepare_initializers_chain): Same.
5049 (prepare_initializers): Same.
5050 (prepare_finalizers_chain): Same.
5051 (prepare_finalizers): Same.
5052 (insert_init_seqs): Same.
5053 * tree-scalar-evolution.c (loop_phi_node_p): Same.
5054 (compute_overall_effect_of_inner_loop): Same.
5055 (add_to_evolution_1): Same.
5056 (add_to_evolution): Same.
5057 (follow_ssa_edge_binary): Same.
5058 (follow_ssa_edge_expr): Same.
5059 (backedge_phi_arg_p): Same.
5060 (follow_ssa_edge_in_condition_phi_branch): Same.
5061 (follow_ssa_edge_in_condition_phi): Same.
5062 (follow_ssa_edge_inner_loop_phi): Same.
5063 (follow_ssa_edge): Same.
5064 (analyze_evolution_in_loop): Same.
5065 (analyze_initial_condition): Same.
5066 (interpret_loop_phi): Same.
5067 (interpret_condition_phi): Same.
5068 (interpret_rhs_expr): Same.
5069 (interpret_expr): Same.
5070 (interpret_gimple_assign): Same.
5071 (analyze_scalar_evolution_1): Same.
5072 (analyze_scalar_evolution): Same.
5073 (analyze_scalar_evolution_for_address_of): Same.
5074 (get_instantiated_value_entry): Same.
5075 (loop_closed_phi_def): Same.
5076 (instantiate_scev_name): Same.
5077 (instantiate_scev_poly): Same.
5078 (instantiate_scev_binary): Same.
5079 (instantiate_scev_convert): Same.
5080 (instantiate_scev_not): Same.
5081 (instantiate_scev_r): Same.
5082 (instantiate_scev): Same.
5083 (resolve_mixers): Same.
5084 (initialize_scalar_evolutions_analyzer): Same.
5085 (scev_reset_htab): Same.
5086 (scev_reset): Same.
5087 (derive_simple_iv_with_niters): Same.
5088 (simple_iv_with_niters): Same.
5089 (expression_expensive_p): Same.
5090 (final_value_replacement_loop): Same.
5091 * tree-scalar-evolution.h (block_before_loop): Same.
5092 * tree-ssa-address.h: Same.
5093 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
5094 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
5095 (record_edge_info): Same.
5096 * tree-ssa-live.c (var_map_base_fini): Same.
5097 (remove_unused_locals): Same.
5098 * tree-ssa-live.h: Same.
5099 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
5100 (pass_ch_vect::execute): Same.
5101 (pass_ch::process_loop_p): Same.
5102 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
5103 (movement_possibility): Same.
5104 (outermost_invariant_loop): Same.
5105 (stmt_cost): Same.
5106 (determine_max_movement): Same.
5107 (invariantness_dom_walker::before_dom_children): Same.
5108 (move_computations): Same.
5109 (may_move_till): Same.
5110 (force_move_till_op): Same.
5111 (force_move_till): Same.
5112 (memref_free): Same.
5113 (record_mem_ref_loc): Same.
5114 (set_ref_stored_in_loop): Same.
5115 (mark_ref_stored): Same.
5116 (sort_bbs_in_loop_postorder_cmp): Same.
5117 (sort_locs_in_loop_postorder_cmp): Same.
5118 (analyze_memory_references): Same.
5119 (mem_refs_may_alias_p): Same.
5120 (find_ref_loc_in_loop_cmp): Same.
5121 (rewrite_mem_ref_loc::operator): Same.
5122 (first_mem_ref_loc_1::operator): Same.
5123 (sm_set_flag_if_changed::operator): Same.
5124 (execute_sm_if_changed_flag_set): Same.
5125 (execute_sm): Same.
5126 (hoist_memory_references): Same.
5127 (ref_always_accessed::operator): Same.
5128 (refs_independent_p): Same.
5129 (record_dep_loop): Same.
5130 (ref_indep_loop_p_1): Same.
5131 (ref_indep_loop_p): Same.
5132 (can_sm_ref_p): Same.
5133 (find_refs_for_sm): Same.
5134 (loop_suitable_for_sm): Same.
5135 (store_motion_loop): Same.
5136 (store_motion): Same.
5137 (fill_always_executed_in): Same.
5138 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
5139 (estimated_unrolled_size): Same.
5140 (loop_edge_to_cancel): Same.
5141 (remove_exits_and_undefined_stmts): Same.
5142 (remove_redundant_iv_tests): Same.
5143 (unloop_loops): Same.
5144 (estimated_peeled_sequence_size): Same.
5145 (try_peel_loop): Same.
5146 (canonicalize_loop_induction_variables): Same.
5147 (canonicalize_induction_variables): Same.
5148 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
5149 (name_info): Same.
5150 (stmt_after_inc_pos): Same.
5151 (contains_abnormal_ssa_name_p): Same.
5152 (niter_for_exit): Same.
5153 (find_bivs): Same.
5154 (mark_bivs): Same.
5155 (find_givs_in_bb): Same.
5156 (find_induction_variables): Same.
5157 (find_interesting_uses_cond): Same.
5158 (outermost_invariant_loop_for_expr): Same.
5159 (idx_find_step): Same.
5160 (add_candidate_1): Same.
5161 (add_iv_candidate_derived_from_uses): Same.
5162 (alloc_use_cost_map): Same.
5163 (prepare_decl_rtl): Same.
5164 (generic_predict_doloop_p): Same.
5165 (computation_cost): Same.
5166 (determine_common_wider_type): Same.
5167 (get_computation_aff_1): Same.
5168 (get_use_type): Same.
5169 (determine_group_iv_cost_address): Same.
5170 (iv_period): Same.
5171 (difference_cannot_overflow_p): Same.
5172 (may_eliminate_iv): Same.
5173 (determine_set_costs): Same.
5174 (cheaper_cost_pair): Same.
5175 (compare_cost_pair): Same.
5176 (iv_ca_cand_for_group): Same.
5177 (iv_ca_recount_cost): Same.
5178 (iv_ca_set_remove_invs): Same.
5179 (iv_ca_set_no_cp): Same.
5180 (iv_ca_set_add_invs): Same.
5181 (iv_ca_set_cp): Same.
5182 (iv_ca_add_group): Same.
5183 (iv_ca_cost): Same.
5184 (iv_ca_compare_deps): Same.
5185 (iv_ca_delta_reverse): Same.
5186 (iv_ca_delta_commit): Same.
5187 (iv_ca_cand_used_p): Same.
5188 (iv_ca_delta_free): Same.
5189 (iv_ca_new): Same.
5190 (iv_ca_free): Same.
5191 (iv_ca_dump): Same.
5192 (iv_ca_extend): Same.
5193 (iv_ca_narrow): Same.
5194 (iv_ca_prune): Same.
5195 (cheaper_cost_with_cand): Same.
5196 (iv_ca_replace): Same.
5197 (try_add_cand_for): Same.
5198 (get_initial_solution): Same.
5199 (try_improve_iv_set): Same.
5200 (find_optimal_iv_set_1): Same.
5201 (create_new_iv): Same.
5202 (rewrite_use_compare): Same.
5203 (remove_unused_ivs): Same.
5204 (determine_scaling_factor): Same.
5205 * tree-ssa-loop-ivopts.h: Same.
5206 * tree-ssa-loop-manip.c (create_iv): Same.
5207 (compute_live_loop_exits): Same.
5208 (add_exit_phi): Same.
5209 (add_exit_phis): Same.
5210 (find_uses_to_rename_use): Same.
5211 (find_uses_to_rename_def): Same.
5212 (find_uses_to_rename_in_loop): Same.
5213 (rewrite_into_loop_closed_ssa): Same.
5214 (check_loop_closed_ssa_bb): Same.
5215 (split_loop_exit_edge): Same.
5216 (ip_end_pos): Same.
5217 (ip_normal_pos): Same.
5218 (copy_phi_node_args): Same.
5219 (gimple_duplicate_loop_to_header_edge): Same.
5220 (can_unroll_loop_p): Same.
5221 (determine_exit_conditions): Same.
5222 (scale_dominated_blocks_in_loop): Same.
5223 (niter_for_unrolled_loop): Same.
5224 (tree_transform_and_unroll_loop): Same.
5225 (rewrite_all_phi_nodes_with_iv): Same.
5226 * tree-ssa-loop-manip.h: Same.
5227 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
5228 (number_of_iterations_ne): Same.
5229 (assert_no_overflow_lt): Same.
5230 (assert_loop_rolls_lt): Same.
5231 (number_of_iterations_lt): Same.
5232 (adjust_cond_for_loop_until_wrap): Same.
5233 (tree_simplify_using_condition): Same.
5234 (simplify_using_initial_conditions): Same.
5235 (simplify_using_outer_evolutions): Same.
5236 (loop_only_exit_p): Same.
5237 (ssa_defined_by_minus_one_stmt_p): Same.
5238 (number_of_iterations_popcount): Same.
5239 (number_of_iterations_exit): Same.
5240 (find_loop_niter): Same.
5241 (finite_loop_p): Same.
5242 (chain_of_csts_start): Same.
5243 (get_val_for): Same.
5244 (loop_niter_by_eval): Same.
5245 (derive_constant_upper_bound_ops): Same.
5246 (do_warn_aggressive_loop_optimizations): Same.
5247 (record_estimate): Same.
5248 (get_cst_init_from_scev): Same.
5249 (record_nonwrapping_iv): Same.
5250 (idx_infer_loop_bounds): Same.
5251 (infer_loop_bounds_from_ref): Same.
5252 (infer_loop_bounds_from_array): Same.
5253 (infer_loop_bounds_from_pointer_arith): Same.
5254 (infer_loop_bounds_from_signedness): Same.
5255 (bound_index): Same.
5256 (discover_iteration_bound_by_body_walk): Same.
5257 (maybe_lower_iteration_bound): Same.
5258 (estimate_numbers_of_iterations): Same.
5259 (estimated_loop_iterations): Same.
5260 (estimated_loop_iterations_int): Same.
5261 (max_loop_iterations): Same.
5262 (max_loop_iterations_int): Same.
5263 (likely_max_loop_iterations): Same.
5264 (likely_max_loop_iterations_int): Same.
5265 (estimated_stmt_executions_int): Same.
5266 (max_stmt_executions): Same.
5267 (likely_max_stmt_executions): Same.
5268 (estimated_stmt_executions): Same.
5269 (stmt_dominates_stmt_p): Same.
5270 (nowrap_type_p): Same.
5271 (loop_exits_before_overflow): Same.
5272 (scev_var_range_cant_overflow): Same.
5273 (scev_probably_wraps_p): Same.
5274 (free_numbers_of_iterations_estimates): Same.
5275 * tree-ssa-loop-niter.h: Same.
5276 * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
5277 (idx_analyze_ref): Same.
5278 (analyze_ref): Same.
5279 (gather_memory_references_ref): Same.
5280 (mark_nontemporal_store): Same.
5281 (emit_mfence_after_loop): Same.
5282 (may_use_storent_in_loop_p): Same.
5283 (mark_nontemporal_stores): Same.
5284 (should_unroll_loop_p): Same.
5285 (volume_of_dist_vector): Same.
5286 (add_subscript_strides): Same.
5287 (self_reuse_distance): Same.
5288 (insn_to_prefetch_ratio_too_small_p): Same.
5289 * tree-ssa-loop-split.c (split_at_bb_p): Same.
5290 (patch_loop_exit): Same.
5291 (find_or_create_guard_phi): Same.
5292 (easy_exit_values): Same.
5293 (connect_loop_phis): Same.
5294 (connect_loops): Same.
5295 (compute_new_first_bound): Same.
5296 (split_loop): Same.
5297 (tree_ssa_split_loops): Same.
5298 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
5299 (is_maybe_undefined): Same.
5300 (tree_may_unswitch_on): Same.
5301 (simplify_using_entry_checks): Same.
5302 (tree_unswitch_single_loop): Same.
5303 (tree_unswitch_loop): Same.
5304 (tree_unswitch_outer_loop): Same.
5305 (empty_bb_without_guard_p): Same.
5306 (used_outside_loop_p): Same.
5307 (get_vop_from_header): Same.
5308 (hoist_guard): Same.
5309 * tree-ssa-loop.c (gate_oacc_kernels): Same.
5310 (get_lsm_tmp_name): Same.
5311 * tree-ssa-loop.h: Same.
5312 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
5313 (build_and_add_sum): Same.
5314 (no_side_effect_bb): Same.
5315 (get_ops): Same.
5316 (linearize_expr): Same.
5317 (should_break_up_subtract): Same.
5318 (linearize_expr_tree): Same.
5319 * tree-ssa-scopedtables.c: Same.
5320 * tree-ssa-scopedtables.h: Same.
5321 * tree-ssa-structalias.c (condense_visit): Same.
5322 (label_visit): Same.
5323 (dump_pred_graph): Same.
5324 (perform_var_substitution): Same.
5325 (move_complex_constraints): Same.
5326 (remove_preds_and_fake_succs): Same.
5327 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
5328 (determine_bb_domination_status): Same.
5329 (duplicate_thread_path): Same.
5330 (thread_through_all_blocks): Same.
5331 * tree-ssa-threadupdate.h: Same.
5332 * tree-streamer-in.c (streamer_read_string_cst): Same.
5333 (input_identifier): Same.
5334 (unpack_ts_type_common_value_fields): Same.
5335 (unpack_ts_block_value_fields): Same.
5336 (unpack_ts_translation_unit_decl_value_fields): Same.
5337 (unpack_ts_omp_clause_value_fields): Same.
5338 (streamer_read_tree_bitfields): Same.
5339 (streamer_alloc_tree): Same.
5340 (lto_input_ts_common_tree_pointers): Same.
5341 (lto_input_ts_vector_tree_pointers): Same.
5342 (lto_input_ts_poly_tree_pointers): Same.
5343 (lto_input_ts_complex_tree_pointers): Same.
5344 (lto_input_ts_decl_minimal_tree_pointers): Same.
5345 (lto_input_ts_decl_common_tree_pointers): Same.
5346 (lto_input_ts_decl_non_common_tree_pointers): Same.
5347 (lto_input_ts_decl_with_vis_tree_pointers): Same.
5348 (lto_input_ts_field_decl_tree_pointers): Same.
5349 (lto_input_ts_function_decl_tree_pointers): Same.
5350 (lto_input_ts_type_common_tree_pointers): Same.
5351 (lto_input_ts_type_non_common_tree_pointers): Same.
5352 (lto_input_ts_list_tree_pointers): Same.
5353 (lto_input_ts_vec_tree_pointers): Same.
5354 (lto_input_ts_exp_tree_pointers): Same.
5355 (lto_input_ts_block_tree_pointers): Same.
5356 (lto_input_ts_binfo_tree_pointers): Same.
5357 (lto_input_ts_constructor_tree_pointers): Same.
5358 (lto_input_ts_omp_clause_tree_pointers): Same.
5359 (streamer_read_tree_body): Same.
5360 * tree-streamer.h: Same.
5361 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
5362 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
5363 (vect_analyze_possibly_independent_ddr): Same.
5364 (vect_analyze_data_ref_dependence): Same.
5365 (vect_compute_data_ref_alignment): Same.
5366 (vect_enhance_data_refs_alignment): Same.
5367 (vect_analyze_data_ref_access): Same.
5368 (vect_check_gather_scatter): Same.
5369 (vect_find_stmt_data_reference): Same.
5370 (vect_create_addr_base_for_vector_ref): Same.
5371 (vect_setup_realignment): Same.
5372 (vect_supportable_dr_alignment): Same.
5373 * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
5374 (adjust_phi_and_debug_stmts): Same.
5375 (vect_set_loop_mask): Same.
5376 (add_preheader_seq): Same.
5377 (vect_maybe_permute_loop_masks): Same.
5378 (vect_set_loop_masks_directly): Same.
5379 (vect_set_loop_condition_masked): Same.
5380 (vect_set_loop_condition_unmasked): Same.
5381 (slpeel_duplicate_current_defs_from_edges): Same.
5382 (slpeel_add_loop_guard): Same.
5383 (slpeel_can_duplicate_loop_p): Same.
5384 (create_lcssa_for_virtual_phi): Same.
5385 (iv_phi_p): Same.
5386 (vect_update_ivs_after_vectorizer): Same.
5387 (vect_gen_vector_loop_niters_mult_vf): Same.
5388 (slpeel_update_phi_nodes_for_loops): Same.
5389 (slpeel_update_phi_nodes_for_guard1): Same.
5390 (find_guard_arg): Same.
5391 (slpeel_update_phi_nodes_for_guard2): Same.
5392 (slpeel_update_phi_nodes_for_lcssa): Same.
5393 (vect_do_peeling): Same.
5394 (vect_create_cond_for_alias_checks): Same.
5395 (vect_loop_versioning): Same.
5396 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
5397 (vect_inner_phi_in_double_reduction_p): Same.
5398 (vect_analyze_scalar_cycles_1): Same.
5399 (vect_fixup_scalar_cycles_with_patterns): Same.
5400 (vect_get_loop_niters): Same.
5401 (bb_in_loop_p): Same.
5402 (vect_get_max_nscalars_per_iter): Same.
5403 (vect_verify_full_masking): Same.
5404 (vect_compute_single_scalar_iteration_cost): Same.
5405 (vect_analyze_loop_form_1): Same.
5406 (vect_analyze_loop_form): Same.
5407 (vect_active_double_reduction_p): Same.
5408 (vect_analyze_loop_operations): Same.
5409 (neutral_op_for_slp_reduction): Same.
5410 (vect_is_simple_reduction): Same.
5411 (vect_model_reduction_cost): Same.
5412 (get_initial_def_for_reduction): Same.
5413 (get_initial_defs_for_reduction): Same.
5414 (vect_create_epilog_for_reduction): Same.
5415 (vectorize_fold_left_reduction): Same.
5416 (vectorizable_reduction): Same.
5417 (vectorizable_induction): Same.
5418 (vectorizable_live_operation): Same.
5419 (loop_niters_no_overflow): Same.
5420 (vect_get_loop_mask): Same.
5421 (vect_transform_loop_stmt): Same.
5422 (vect_transform_loop): Same.
5423 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
5424 (vect_determine_precisions): Same.
5425 (vect_pattern_recog_1): Same.
5426 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
5427 * tree-vect-stmts.c (stmt_vectype): Same.
5428 (process_use): Same.
5429 (vect_init_vector_1): Same.
5430 (vect_truncate_gather_scatter_offset): Same.
5431 (get_group_load_store_type): Same.
5432 (vect_build_gather_load_calls): Same.
5433 (vect_get_strided_load_store_ops): Same.
5434 (vectorizable_simd_clone_call): Same.
5435 (vectorizable_store): Same.
5436 (permute_vec_elements): Same.
5437 (vectorizable_load): Same.
5438 (vect_transform_stmt): Same.
5439 (supportable_widening_operation): Same.
5440 * tree-vectorizer.c (vec_info::replace_stmt): Same.
5441 (vec_info::free_stmt_vec_info): Same.
5442 (vect_free_loop_info_assumptions): Same.
5443 (vect_loop_vectorized_call): Same.
5444 (set_uid_loop_bbs): Same.
5445 (vectorize_loops): Same.
5446 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
5447 * tree.c (add_tree_to_fld_list): Same.
5448 (fld_type_variant_equal_p): Same.
5449 (fld_decl_context): Same.
5450 (fld_incomplete_type_of): Same.
5451 (free_lang_data_in_binfo): Same.
5452 (need_assembler_name_p): Same.
5453 (find_decls_types_r): Same.
5454 (get_eh_types_for_runtime): Same.
5455 (find_decls_types_in_eh_region): Same.
5456 (find_decls_types_in_node): Same.
5457 (assign_assembler_name_if_needed): Same.
5458 * value-prof.c (stream_out_histogram_value): Same.
5459 * value-prof.h: Same.
5460 * var-tracking.c (use_narrower_mode): Same.
5461 (prepare_call_arguments): Same.
5462 (vt_expand_loc_callback): Same.
5463 (resolve_expansions_pending_recursion): Same.
5464 (vt_expand_loc): Same.
5465 * varasm.c (const_hash_1): Same.
5466 (compare_constant): Same.
5467 (tree_output_constant_def): Same.
5468 (simplify_subtraction): Same.
5469 (get_pool_constant): Same.
5470 (output_constant_pool_2): Same.
5471 (output_constant_pool_1): Same.
5472 (mark_constants_in_pattern): Same.
5473 (mark_constant_pool): Same.
5474 (get_section_anchor): Same.
5475 * vr-values.c (compare_range_with_value): Same.
5476 (vr_values::extract_range_from_phi_node): Same.
5477 * vr-values.h: Same.
5478 * web.c (unionfind_union): Same.
5479 * wide-int.h: Same.
5480
5481 2019-07-09 Martin Sebor <msebor@redhat.com>
5482
5483 PR c++/61339
5484 * align.h: Change class-key from class to struct and vice versa
5485 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
5486 * alloc-pool.h: Same.
5487 * asan.c (shadow_mem_size): Same.
5488 * auto-profile.c: Same.
5489 * basic-block.h: Same.
5490 * bitmap.h: Same.
5491 * cfgexpand.c (set_rtl): Same.
5492 (expand_one_stack_var_at): Same.
5493 * cfghooks.h: Same.
5494 * cfgloop.h: Same.
5495 * cgraph.h: Same.
5496 * config/i386/i386.h: Same.
5497 * df-problems.c (df_print_bb_index): Same.
5498 * df-scan.c: Same.
5499 * df.h (df_single_use): Same.
5500 * diagnostic-show-locus.c (layout::print_annotation_line): Same.
5501 (layout::annotation_line_showed_range_p): Same.
5502 (get_printed_columns): Same.
5503 (correction::ensure_terminated): Same.
5504 (line_corrections::~line_corrections): Same.
5505 * dojump.h: Same.
5506 * dse.c: Same.
5507 * dump-context.h: Same.
5508 * dumpfile.h: Same.
5509 * dwarf2out.c: Same.
5510 * edit-context.c: Same.
5511 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
5512 * flags.h: Same.
5513 * function.c (assign_stack_local): Same.
5514 * function.h: Same.
5515 * gcc.c: Same.
5516 * gcov.c (block_info::block_info): Same.
5517 * genattrtab.c: Same.
5518 * genextract.c: Same.
5519 * genmatch.c (comparison_code_p): Same.
5520 (id_base::id_base): Same.
5521 (decision_tree::print): Same.
5522 * genoutput.c: Same.
5523 * genpreds.c (write_one_predicate_function): Same.
5524 * genrecog.c (validate_pattern): Same.
5525 (find_operand_positions): Same.
5526 (optimize_subroutine_group): Same.
5527 (merge_pattern_transition::merge_pattern_transition): Same.
5528 (merge_pattern_info::merge_pattern_info): Same.
5529 (merge_state_result::merge_state_result): Same.
5530 (merge_into_state): Same.
5531 * gensupport.c: Same.
5532 * gensupport.h: Same.
5533 * ggc-common.c (init_ggc_heuristics): Same.
5534 * ggc-tests.c (test_union): Same.
5535 * gimple-loop-interchange.cc (dump_induction): Same.
5536 * gimple-loop-versioning.cc: Same.
5537 * gimple-match.h (gimple_match_cond::any_else): Same.
5538 * gimple-ssa-backprop.c: Same.
5539 * gimple-ssa-sprintf.c: Same.
5540 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
5541 Same.
5542 (store_immediate_info::store_immediate_info): Same.
5543 (merged_store_group::apply_stores): Same.
5544 (get_location_for_stmts): Same.
5545 * gimple-ssa-strength-reduction.c: Same.
5546 * gimple-ssa-warn-alloca.c: Same.
5547 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
5548 * godump.c (go_type_decl): Same.
5549 * hash-map-tests.c (test_map_of_strings_to_int): Same.
5550 * hash-map.h: Same.
5551 * hash-set-tests.c (test_set_of_strings): Same.
5552 * hsa-brig.c: Same.
5553 * hsa-common.h: Same.
5554 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
5555 * input.c (assert_loceq): Same.
5556 * input.h: Same.
5557 * ipa-cp.c: Same.
5558 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
5559 * ipa-fnsummary.h: Same.
5560 * ipa-inline.h: Same.
5561 * ipa-prop.h: Same.
5562 * ipa-split.c (visit_bb): Same.
5563 * ira-int.h (minmax_set_iter_next): Same.
5564 * loop-invariant.c: Same.
5565 * loop-iv.c: Same.
5566 * lra-eliminations.c: Same.
5567 * lra-int.h: Same.
5568 * lra-lives.c (mark_regno_dead): Same.
5569 * lra-remat.c: Same.
5570 * lra-spills.c: Same.
5571 * lto-streamer.h: Same.
5572 * mem-stats.h: Same.
5573 * omp-grid.c (omp_grid_lastprivate_predicate): Same.
5574 * omp-low.c (omp_clause_aligned_alignment): Same.
5575 * optabs-query.h (get_vcond_eq_icode): Same.
5576 * optabs.h: Same.
5577 * opts.c (wrap_help): Same.
5578 * poly-int.h: Same.
5579 * predict.c (predict_paths_leading_to_edge): Same.
5580 * pretty-print.h: Same.
5581 * profile-count.h: Same.
5582 * read-md.h: Same.
5583 * read-rtl-function.c: Same.
5584 * ree.c: Same.
5585 * reginfo.c: Same.
5586 * regrename.c: Same.
5587 * regrename.h: Same.
5588 * reload.h: Same.
5589 * rtl-iter.h: Same.
5590 * rtl.h (costs_add_n_insns): Same.
5591 * sanopt.c: Same.
5592 * sched-int.h: Same.
5593 * sel-sched-ir.h: Same.
5594 * selftest.h: Same.
5595 * sese.h (vec_find): Same.
5596 * stmt.c: Same.
5597 * target-globals.h: Same.
5598 * tree-affine.c (aff_combination_find_elt): Same.
5599 * tree-affine.h: Same.
5600 * tree-data-ref.h: Same.
5601 * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
5602 * tree-predcom.c: Same.
5603 * tree-scalar-evolution.c (find_var_scev_info): Same.
5604 * tree-ssa-alias.h: Same.
5605 * tree-ssa-ccp.c: Same.
5606 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
5607 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
5608 (rewrite_mem_refs): Same.
5609 (execute_sm_if_changed): Same.
5610 (hoist_memory_references): Same.
5611 * tree-ssa-loop-ivopts.c (operator<=): Same.
5612 * tree-ssa-loop.h: Same.
5613 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
5614 * tree-ssa-structalias.c: Same.
5615 * tree-switch-conversion.h (cluster::cluster): Same.
5616 (simple_cluster::simple_cluster): Same.
5617 * tree-vect-patterns.c (type_conversion_p): Same.
5618 * tree-vectorizer.c (dump_stmt_cost): Same.
5619 * tree-vectorizer.h (loop_vec_info_for_loop): Same.
5620 * tree.c (protected_set_expr_location): Same.
5621 * tree.h (desired_pro_or_demotion_p): Same.
5622 (fndecl_built_in_p): Same.
5623 * unique-ptr-tests.cc: Same.
5624 * var-tracking.c (delete_variable_part): Same.
5625 * varasm.c (assemble_real): Same.
5626 (tree_output_constant_def): Same.
5627 * vec.c: Same.
5628 * wide-int-bitmask.h: Same.
5629 * wide-int.h (decompose): Same.
5630
5631 2019-07-09 Richard Biener <rguenther@suse.de>
5632
5633 PR tree-optimization/91114
5634 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
5635 find a vector type isn't fatal.
5636
5637 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
5638
5639 * config/aarch64/aarch64-simd.md
5640 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
5641 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
5642 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
5643 (*aarch64_crypto_aese_fused,
5644 *aarch64_crypto_aesd_fused): Update to new definition.
5645 * config/aarch64/aarch64.c
5646 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
5647
5648 2019-07-09 Richard Biener <rguenther@suse.de>
5649
5650 * gimple-match.h (gimple_match_op::resimplify): New.
5651 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
5652 gimple_resimplify4, gimple_resimplify5): Remove.
5653 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
5654 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
5655 Make static.
5656 (gimple_match_op::resimplify): New.
5657 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
5658 according to availability. Use gimple_match_op::resimplify.
5659
5660 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
5661
5662 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
5663
5664 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
5665
5666 * config/arm/crypto.md:
5667 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
5668 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
5669 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
5670 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
5671 * config/arm/arm.c
5672 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
5673 * config/arm/aarch-common-protos.h
5674 (aarch_crypto_can_dual_issue): Remove.
5675 * config/arm/aarch-common.c
5676 (aarch_crypto_can_dual_issue): Likewise.
5677 * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
5678 * config/arm/cortex-a53.md: Likewise.
5679 * config/arm/cortex-a57.md: Likewise.
5680 * config/arm/iterators.md:
5681 (CRYPTO_BINARY): Redefine.
5682 (CRYPTO_UNARY): Removed.
5683 (CRYPTO_AES, CRYPTO_AESMC): New.
5684
5685 2019-07-09 Richard Biener <rguenther@suse.de>
5686
5687 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
5688 (vn_reference_lookup_3): If the main ref has no access path recorded
5689 but orig_ref has use it to do access-path based disambiguation.
5690 (vn_reference_lookup_pieces): Adjust.
5691 (vn_reference_lookup): Pass down original ref if we valueized.
5692
5693 2019-07-09 Martin Liska <mliska@suse.cz>
5694
5695 * doc/extend.texi: Document influence on loop
5696 optimizers.
5697
5698 2019-07-09 Martin Liska <mliska@suse.cz>
5699
5700 * lto-compress.c (lto_normalized_zstd_level): Do not use
5701 ZSTD_CLEVEL_DEFAULT as it is not default in old releases
5702 of libzstd. One can use 0 as a default compression level.
5703
5704 2019-07-09 Martin Liska <mliska@suse.cz>
5705
5706 * doc/invoke.texi: Add link from -fprofile-dir option.
5707 Use better wording for 'gcno filename'.
5708
5709 2019-07-08 Martin Sebor <msebor@redhat.com>
5710
5711 PR middle-end/71924
5712 PR middle-end/90549
5713 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
5714 comment.
5715 (args_loc_t): New type.
5716 (args_loc_t, locmap_t): same.
5717 (diag_returned_locals): New function.
5718 (is_addr_local): Same.
5719 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
5720 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
5721 (find_explicit_erroneous_behavior): Call warn_return_addr_local.
5722
5723 2019-07-08 Jakub Jelinek <jakub@redhat.com>
5724
5725 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
5726 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR
5727 and casts in offset when different, both through gimple stmts
5728 and through trees. Rewritten using loops to minimize code duplication
5729 for each operand.
5730
5731 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
5732
5733 * emit-rtl.c (set_insn_locations): New function moved from...
5734 * function.c (set_insn_locations): ...here.
5735 * ira-emit.c (emit_moves): Propagate location of the first instruction
5736 to the inserted move instructions.
5737 * reg-stack.c (compensate_edge): Set the location if the sequence is
5738 inserted on the edge.
5739 * rtl.h (set_insn_locations): Declare.
5740
5741 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
5742
5743 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
5744 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
5745 .machine string.
5746
5747 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
5748
5749 PR rtl-optimization/88233
5750 * common.opt (fsplit-wide-types-early): New option.
5751 * common/config/rs6000/rs6000-common.c
5752 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
5753 OPT_LEVELS_ALL.
5754 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
5755 * lower-subreg.c (pass_lower_subreg2::gate): Add test for
5756 flag_split_wide_types_early.
5757 (pass_data_lower_subreg3): New.
5758 (pass_lower_subreg3): New.
5759 (make_pass_lower_subreg3): New.
5760 * passes.def (pass_lower_subreg2): Move after the loop passes.
5761 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
5762 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
5763 the pass pipeline; its previous place is taken by ...
5764 (make_pass_lower_subreg3): ... this.
5765
5766 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
5767
5768 * config/s390/s390.c (s390_shift_truncation_mask): Define.
5769 (TARGET_SHIFT_TRUNCATION_MASK): Define.
5770
5771 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
5772
5773 * config/s390/constraints.md: Add new jsc constraint.
5774 * config/s390/predicates.md: New predicates.
5775 * config/s390/s390-protos.h (s390_valid_shift_count): New function.
5776 * config/s390/s390.c (s390_valid_shift_count): New function.
5777 (print_shift_count_operand): Use s390_valid_shift_count.
5778 (print_operand): Likewise.
5779 * config/s390/s390.md: Use new predicate.
5780 * config/s390/subst.md: Remove addr_style_op and masked_op substs.
5781 * config/s390/vector.md: Use new predicate.
5782
5783 2019-07-08 Andrew Waterman <andrew@sifive.com>
5784 Jim Wilson <jimw@sifive.com>
5785
5786 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
5787 bitsize instead of BITS_PER_WORD.
5788
5789 2019-07-08 Martin Liska <mliska@suse.cz>
5790
5791 * collect2.c (defined): Revert to before r254460.
5792 (scan_prog_file): Revert to before r254460.
5793
5794 2019-07-08 Richard Biener <rguenther@suse.de>
5795
5796 PR tree-optimization/83518
5797 * tree-ssa-sccvn.c: Include splay-tree.h.
5798 (struct pd_range, struct pd_data): New.
5799 (struct vn_walk_cb_data): Add data to track partial definitions.
5800 (vn_walk_cb_data::~vn_walk_cb_data): New.
5801 (vn_walk_cb_data::push_partial_def): New.
5802 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
5803 (vn_reference_lookup_2): When partial defs are registered give up.
5804 (vn_reference_lookup_3): Track partial defs for memset and
5805 constructor zeroing and for defs from constants.
5806
5807 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
5808
5809 * doc/install.texi (bootstrap-Og): Document.
5810
5811 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
5812
5813 * config/riscv/pic.md (*local_pic_load_s<mode>)
5814 (*local_pic_load_u<mode>): Explicitly specify the mode iterator
5815 referenced by <mode>, giving...
5816 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
5817 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
5818 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
5819 use <X:MODE> for the mode attribute.
5820
5821 2019-07-07 Jeff Law <law@redhat.com>
5822
5823 PR tree-optimization/91090
5824 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
5825 in handling of ranges to simplify switch statements.
5826
5827 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
5828
5829 * config/darwin.c (darwin_override_options): Make a final check on PIC
5830 options.
5831
5832 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
5833
5834 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
5835 on for kernel code.
5836
5837 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
5838
5839 PR target/91068
5840 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
5841 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
5842 instead of matching them to "l" output operands.
5843
5844 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
5845
5846 * config/mips/mips.c (mips_split_move): Zero-initialize addr
5847 and check whether addr.reg is nonnull before using it.
5848
5849 2019-07-06 Jakub Jelinek <jakub@redhat.com>
5850
5851 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
5852 ctx->for_simd_scan_phase simd copy the outer var to the privatized
5853 variable(s). For conditional lastprivate look through outer
5854 GIMPLE_OMP_SCAN context.
5855 (lower_omp_1): For conditional lastprivate look through outer
5856 GIMPLE_OMP_SCAN context.
5857
5858 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
5859 member to combined_into_simd_safelen1.
5860 (lower_rec_input_clauses, lower_omp_1): Adjust uses.
5861 (lower_lastprivate_clauses): Likewise. For conditional lastprivate
5862 clauses if ctx->combined_into_simd_safelen1 put statements after the
5863 predicate conditionalized block rather than into it.
5864
5865 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5866
5867 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
5868 operand 1.
5869 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
5870 Make the choice of <mode> explicit, giving...
5871 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
5872
5873 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5874
5875 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
5876 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
5877 of .md attributes.
5878 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
5879 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
5880 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
5881 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
5882 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
5883 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
5884 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
5885 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
5886 (*avx512f_scatterdi<mode>): Likewise.
5887 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
5888
5889 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5890
5891 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
5892 specify the mode iterator referenced by <mode>, giving...
5893 (*push1_h8300hs_<QHI:mode>): ...this.
5894
5895 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5896
5897 * config/gcn/gcn-valu.md
5898 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
5899 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
5900 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
5901 gen_vcond_mask_<VEC_1REG_MODE:mode>di.
5902 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
5903 but using the _exec comparison patterns.
5904 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
5905 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
5906 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
5907 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
5908 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
5909 but using the _exec comparison patterns.
5910
5911 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5912
5913 * config/arm/sync.md
5914 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
5915 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
5916 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
5917 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and
5918 <SIDI:cas_cmp_str>.
5919
5920 2019-07-06 Jakub Jelinek <jakub@redhat.com>
5921
5922 * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
5923 (maybe_lookup_ctx): Add forward declaration.
5924 (omp_find_scan): Likewise. Walk into body of simd if composited
5925 with worksharing loop.
5926 (scan_omp_simd_scan): New function.
5927 (scan_omp_1_stmt): Call it.
5928 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
5929 ctx->for_simd_scan_phase.
5930 (lower_rec_input_clauses): Do much less work for inscan reductions
5931 in ctx->for_simd_scan_phase is_simd regions.
5932 (lower_omp_scan): Set is_simd also on simd constructs composited
5933 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit
5934 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and
5935 emit their body after in simd constructs composited with worksharing
5936 loop.
5937 (lower_omp_for_scan): Handle worksharing loop composited with simd.
5938
5939 * omp-low.c (omp_find_scan): Make static.
5940 (lower_omp_for_scan): Fix order of merge arguments in input phase of
5941 the second loop, var2 represents the first partial sum and so needs
5942 to go before rprivb[ivar].
5943
5944 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
5945
5946 * config/rs6000/rs6000-logue.c: Remove unused code.
5947
5948 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
5949
5950 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
5951
5952 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
5953
5954 PR target/90712
5955 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
5956 check with a frame laid out check.
5957
5958 2019-07-05 Richard Biener <rguenther@suse.de>
5959
5960 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
5961 when comparing against a store with possibly the same value.
5962
5963 2019-07-05 Richard Biener <rguenther@suse.de>
5964
5965 PR tree-optimization/91091
5966 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
5967 (walk_non_aliased_vuses): Likewise.
5968 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
5969 (get_continuation_for_phi): New tbaa_p parameter and pass
5970 it down.
5971 (walk_non_aliased_vuses): Likewise.
5972 * ipa-prop.c (determine_known_aggregate_parts): Adjust.
5973 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
5974 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
5975 Likewise.
5976 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
5977 (adjust_offsets_for_equal_base_address): New function.
5978 (vn_reference_lookup_3): Use it to catch more base equivalences.
5979 Handle and pass down tbaa_p flag.
5980 (vn_reference_lookup_pieces): Adjust.
5981 (vn_reference_lookup): Remove alias-set altering, instead pass
5982 down false as tbaa_p.
5983
5984 2019-07-05 Richard Biener <rguenther@suse.de>
5985
5986 PR tree-optimization/91091
5987 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
5988 accesses can happen with -fno-strict-aliasing.
5989
5990 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
5991
5992 * tree-ssa-alias.c (alias_stats): Add
5993 nonoverlapping_component_refs_since_match_p_must_overlap.
5994 (dump_alias_stats): Print it.
5995 (nonoverlapping_component_refs_since_match_p): Add early exit.
5996 (nonoverlapping_component_refs_p): Do not account early exit.
5997
5998 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
5999
6000 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
6001 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
6002 (emit_eh_dispatch): Delete.
6003 (lower_catch): Emit the eh_dispatch manually and set the location of
6004 the first catch statement onto it.
6005 (lower_eh_filter): Emit the eh_dispatch manually and set location.
6006 (lower_eh_dispatch): Propagate location.
6007 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
6008 (eliminate_build): Likewise.
6009
6010 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
6011
6012 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
6013 phi nodes if possible.
6014 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
6015 location info on the newly created statement.
6016 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
6017 newly created increment if needed.
6018
6019 2019-07-04 Jakub Jelinek <jakub@redhat.com>
6020
6021 PR middle-end/78884
6022 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
6023 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
6024 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
6025 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
6026 ctx->add_safelen1 is set.
6027
6028 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
6029 GOMP_loop_start at the start of second worksharing loop in a scan.
6030 For nowait, don't emit GOMP_loop_end_nowait at the end of first
6031 worksharing loop in a scan even if there are conditional lastprivates,
6032 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
6033
6034 2019-07-04 Jan Hubicka <jh@suse.cz>
6035
6036 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
6037 Fix check for match in the ref walk.
6038
6039 2019-07-04 Martin Liska <mliska@suse.cz>
6040
6041 * tree-ssa-loop-niter.c
6042 (get_upper_bound_based_on_builtin_expr_with_prob): New function.
6043 (estimate_numbers_of_iterations):
6044 Support __builtin_expect_with_probability for analysis
6045 of # of loop iterations.
6046
6047 2019-07-04 Alexandre Oliva <oliva@adacore.com>
6048
6049 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
6050 * except.c: Likewise.
6051 * expr.c (expand_expr_real_1): Reject it.
6052 * gimplify.c (gimplify_expr): Gimplify it, within
6053 TRY_FINALLY_EXPR.
6054 * tree-dump.c (dequeue_and_dump): Dump it.
6055 * tree-pretty-print.c (dump_generic_node): Likewise.
6056 * tree.c (block_may_fallthru): Handle it.
6057 * tree.def (EH_ELSE_EXPR): Introduce it.
6058 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
6059 with GIMPLE_EH_ELSE as try/finally/else.
6060
6061 2019-07-04 Richard Biener <rguenther@suse.de>
6062
6063 PR ipa/91062
6064 * tree-pass.h (execute_all_ipa_transforms): Add a flag
6065 parameter whether to disable GC collection.
6066 * passes.c (execute_one_ipa_transform_pass): Likewise, and
6067 honor it.
6068 (execute_all_ipa_transforms): Likewise and pass it down.
6069 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
6070 collection from applying IPA transforms.
6071 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
6072 from applying IPA transforms.
6073
6074 2019-07-04 Richard Biener <rguenther@suse.de>
6075
6076 PR tree-optimization/90911
6077 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
6078 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
6079 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
6080 scalar_loop_scaling.
6081 (vect_transform_loop): Scale scalar loop profile if needed.
6082 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
6083 the loop copy from if-conversion adjust edge probabilities
6084 and scale the vectorized loop body profile, queue the scalar
6085 profile for updating after peeling.
6086
6087 2019-07-04 Jan Hubicka <jh@suse.cz>
6088
6089 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
6090 parameters; return early for must-alias.
6091 (indirect_ref_may_alias_decl_p): Likewise; when establishing
6092 outer types match, try nonoverlapping_component_refs
6093 if must-alias is not obvious.
6094 (indirect_refs_may_alias_p): Likewise.
6095 (refs_may_alias_p_2): Likewise.
6096
6097 2019-07-04 Richard Biener <rguenther@suse.de>
6098
6099 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
6100 argument.
6101 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
6102 globals into...
6103 (struct vn_walk_cb_data): New callback data struct.
6104 (vn_reference_lookup_2): Adjust.
6105 (vn_reference_lookup_3): Likewise.
6106 (vn_reference_lookup_pieces): Likewise.
6107 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
6108 (visit_reference_op_load): Adjust.
6109
6110 2019-07-04 Jakub Jelinek <jakub@redhat.com>
6111
6112 PR tree-optimization/91063
6113 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
6114 stmt from stmts sequence before calling vect_init_vector_1.
6115 Formatting fix.
6116
6117 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
6118
6119 PR target/88833
6120 * fwprop.c (reg_single_def_p): New function.
6121 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
6122 (forward_propagate_into): New parameter reg_prop_only
6123 with default value false.
6124 Propagate def's src into loop only if SET_SRC and SET_DEST
6125 of def_set have single definitions.
6126 Likewise if reg_prop_only is set to true.
6127 (fwprop): New param fwprop_addr_p.
6128 Integrate fwprop_addr into fwprop.
6129 (fwprop_addr): Remove.
6130 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
6131 to true.
6132 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
6133 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
6134 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
6135
6136 2019-07-04 Jakub Jelinek <jakub@redhat.com>
6137
6138 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
6139 in worksharing loop scans.
6140
6141 PR tree-optimization/91074
6142 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
6143 temporary.
6144
6145 PR rtl-optimization/90756
6146 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
6147 for VECTOR_TYPE_P.
6148
6149 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
6150
6151 * config/aarch64/aarch64.md: Remove redundant constraints from
6152 define_expand but keep some patterns untouched if they are
6153 specially selected by TARGET_SECONDARY_RELOAD hook.
6154 * config/aarch64/aarch64-sve.md: Likewise.
6155 * config/aarch64/atomics.md: Remove redundant constraints from
6156 define_expand.
6157 * config/aarch64/aarch64-simd.md: Likewise.
6158
6159 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
6160
6161 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
6162 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
6163 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
6164 clauses.
6165 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
6166 DARWIN_NOPIE_SPEC.
6167
6168 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
6169
6170 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
6171 (STARTFILE_SPEC): Split crt3 into a separate spec.
6172 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
6173 (DARWIN_CRT2_SPEC): New.
6174 (DARWIN_CRT3_SPEC): New.
6175 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
6176 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
6177 (DARWIN_CRT3_SPEC): New.
6178
6179 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
6180
6181 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
6182 Change the RTL attribute "length" from "4" to "*" to allow the
6183 length attribute to be adjusted automatically for prefixed load,
6184 store, and add immediate instructions.
6185 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
6186 Likewise.
6187 (extendsi<mode>2, EXTSI iterator): Likewise.
6188 (movsi_internal1): Likewise.
6189 (movsi_from_sf): Likewise.
6190 (movdi_from_sf_zero_ext): Likewise.
6191 (mov<mode>_internal): Likewise.
6192 (movcc_internal1, QHI iterator): Likewise.
6193 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
6194 (movsf_from_si): Likewise.
6195 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
6196 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
6197 (mov<mode>, FMOVE128 iterator): Likewise.
6198 (movdi_internal64): Likewise.
6199 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
6200 Likewise.
6201 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
6202 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
6203 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
6204 (vsx_splat_v4sf): Likewise.
6205
6206 2019-07-03 Mark Wielaard <mark@klomp.org>
6207
6208 PR debug/90981
6209 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
6210 DW_AT_addr_base if there is actually a .debug_addr section with
6211 addresses.
6212 (output_addr_table): Add DWARF5 table header generation here after
6213 checking there are actually any addresses from...
6214 (dwarf2out_finish): ...here.
6215
6216 2019-07-03 Richard Biener <rguenther@suse.de>
6217
6218 PR middle-end/91069
6219 * match.pd (vec_perm -> bit_insert): Fix element read from
6220 first vector.
6221
6222 2019-07-03 Martin Liska <mliska@suse.cz>
6223
6224 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
6225 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
6226 condition.
6227 * generic-match-head.c: Include dbgcnt.h.
6228 * gimple-match-head.c: Likewise.
6229
6230 2019-07-03 Martin Liska <mliska@suse.cz>
6231
6232 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
6233 (GCOV_COUNTER_V_TOPN): New.
6234 (GCOV_COUNTER_V_INDIR): Use _topn.
6235 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
6236 (GCOV_TOPN_VALUES): New.
6237 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
6238 (GCOV_TOPN_VALUES_COUNTERS): New.
6239 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
6240 * tree-profile.c:
6241 (gimple_init_gcov_profiler): Rename variables from one_value
6242 to topn_values.
6243 (gimple_gen_one_value_profiler): Remove.
6244 (gimple_gen_topn_values_profiler): New function.
6245 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
6246 names instead of SINGLE_VALUE.
6247 (stream_out_histogram_value): Likewise.
6248 (stream_in_histogram_value): Likewise.
6249 (get_most_common_single_value): Likewise.
6250 (gimple_divmod_fixed_value_transform): Likewise.
6251 (gimple_stringops_transform): Likewise.
6252 (gimple_divmod_values_to_profile): Likewise.
6253 (gimple_stringops_values_to_profile): Likewise.
6254 (gimple_find_values_to_profile): Likewise.
6255 * value-prof.h (enum hist_type): Rename to TOPN.
6256 (gimple_gen_one_value_profiler): Remove.
6257 (gimple_gen_topn_values_profiler): New.
6258
6259 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
6260
6261 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
6262 if it has the DW_AT_data_member_location attribute.
6263
6264 2019-07-03 Richard Biener <rguenther@suse.de>
6265
6266 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
6267 dumping.
6268
6269 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
6270
6271 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
6272 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
6273 (tlsdesc_small_sve_<mode>): Likewise.
6274
6275 2019-07-03 Martin Liska <mliska@suse.cz>
6276
6277 * Makefile.in: Define ZSTD_LIB.
6278 * common.opt: Adjust compression level
6279 to support also zstd levels.
6280 * config.in: Regenerate.
6281 * configure: Likewise.
6282 * configure.ac: Add --with-zstd and --with-zstd-include options
6283 and detect ZSTD.
6284 * doc/install.texi: Mention zstd dependency.
6285 * gcc.c: Print supported LTO compression algorithms.
6286 * lto-compress.c (lto_normalized_zstd_level): Likewise.
6287 (lto_compression_zstd): Likewise.
6288 (lto_uncompression_zstd): Likewise.
6289 (lto_end_compression): Dispatch in between zlib and zstd.
6290 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
6291 (lto_uncompression_zlib): Make it static.
6292 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
6293 * lto-section-in.c (lto_get_section_data): Pass info
6294 about used compression.
6295 * lto-streamer-out.c: By default use zstd when possible.
6296 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
6297 (TV_IPA_LTO_COMPRESS): Likewise for compression.
6298
6299 2019-07-03 Martin Liska <mliska@suse.cz>
6300
6301 * lto-section-in.c (lto_get_section_data): Add "lto" section.
6302 * lto-section-out.c (lto_destroy_simple_output_block): Never
6303 compress LTO_section_lto section.
6304 * lto-streamer-out.c (produce_asm): Do not set major_version
6305 and minor_version.
6306 (lto_output_toplevel_asms): Likewise.
6307 (produce_lto_section): New function.
6308 (lto_output): Call produce_lto_section.
6309 (lto_write_mode_table): Do not set major_version and
6310 minor_version.
6311 (produce_asm_for_decls): Likewise.
6312 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
6313 type.
6314 (struct lto_header): Remove.
6315 (struct lto_section): New struct.
6316 (struct lto_simple_header): Do not inherit from lto_header.
6317 (struct lto_file_decl_data): Add lto_section_header field.
6318
6319 2019-07-03 Martin Liska <mliska@suse.cz>
6320
6321 * lra-eliminations.c (eliminate_regs_in_insn): Remove
6322 dead assignemts.
6323 * reg-stack.c (check_asm_stack_operands): Likewise.
6324 * tree-ssa-structalias.c (create_function_info_for): Likewise.
6325 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
6326 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
6327 force_expand_binop.
6328
6329 2019-07-03 Martin Liska <mliska@suse.cz>
6330
6331 PR tree-optimization/90892
6332 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
6333 in string constants.
6334
6335 2019-07-03 Martin Liska <mliska@suse.cz>
6336
6337 PR middle-end/90899
6338 * multiple_target.c (create_dispatcher_calls): Add to comdat
6339 group only if set for ifunc.
6340
6341 2019-07-03 Martin Liska <mliska@suse.cz>
6342
6343 PR target/88056
6344 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6345 Define local_object_name in outer scope in order to handle
6346 use-after-scope issue.
6347
6348 2019-07-03 Martin Liska <mliska@suse.cz>
6349
6350 * common.opt: Add fprofile-note.
6351 * coverage.c (coverage_init): Append the option
6352 to bbg_file_name.
6353 * doc/invoke.texi: Document -fprofile-note.
6354
6355 2019-07-03 Jakub Jelinek <jakub@redhat.com>
6356
6357 PR tree-optimization/91033
6358 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
6359 vect_analyze_data_refs): Add bool * arguments.
6360 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
6361 if failure is due to scatter/gather, set *fatal to false if non-NULL.
6362 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
6363 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
6364 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
6365 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
6366 vect_analyze_data_refs caller.
6367
6368 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
6369 clause.
6370 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
6371 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
6372 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
6373 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
6374 OMP_CLAUSE__SCANTEMP_ entry.
6375 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
6376 * tree-pretty-print.c (dump_omp_clause): Likewise.
6377 * tree-nested.c (convert_nonlocal_omp_clauses,
6378 convert_local_omp_clauses): Likewise.
6379 * omp-general.h (struct omp_for_data): Add have_scantemp and
6380 have_nonctrl_scantemp members.
6381 * omp-general.c (omp_extract_for_data): Initialize them.
6382 * omp-low.c (struct omp_context): Add scan_exclusive member.
6383 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
6384 result again with GF_OMP_FOR_KIND_MASK. Initialize also
6385 ctx->scan_exclusive.
6386 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
6387 of !ctx->scan_inclusive.
6388 (lower_rec_input_clauses): Simplify gimplification of dtors using
6389 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
6390 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
6391 loops. Don't add barrier for reduction_omp_orig_ref if
6392 ctx->scan_??xclusive.
6393 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
6394 (lower_omp_scan): Use ctx->scan_exclusive instead
6395 of !ctx->scan_inclusive. Handle worksharing loops with inscan
6396 reductions. Use new_vard != new_var instead of repeated
6397 omp_is_reference calls.
6398 (omp_find_scan, lower_omp_for_scan): New functions.
6399 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
6400 inscan reductions.
6401 * omp-expand.c (expand_omp_scantemp_alloc): New function.
6402 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
6403 and fd->have_scantemp.
6404
6405 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
6406 on worksharing loop propagate it as shared clause to containing
6407 combined parallel.
6408
6409 * omp-expand.c (expand_omp_for_static_nochunk,
6410 expand_omp_for_static_chunk): For nowait worksharing loop with
6411 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
6412 at the end.
6413
6414 2019-07-02 qing zhao <qing.zhao@oracle.com>
6415
6416 PR preprocessor/90581
6417 * doc/cppopts.texi: Add document for -fmax-include-depth.
6418 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
6419
6420 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
6421
6422 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
6423 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
6424 (mmx_packssdw): Ditto.
6425 (mmx_punpckhbw): Ditto.
6426 (mmx_punpcklbw): Ditto.
6427 (mmx_punpckhwd): Ditto.
6428 (mmx_punpcklwd): Ditto.
6429 (mmx_punpckhdq): Ditto.
6430 (mmx_punpckldq): Ditto.
6431 (*vec_dupv4hi): Ditto.
6432 (*vec_dupv2si): Ditto.
6433 (mmx_pmovmskb): Ditto.
6434 * config/i386/sse.md (sse_cvtpi2ps): Use
6435 TARGET_SSE2 && SSE_REG_P in split condition.
6436 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
6437 TARGET_SSSE3 && SSE_REGNO_P in split condition.
6438 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
6439 (ssse3_pshufbv8qi3): Ditto.
6440 (ssse3_palignrdi): Ditto.
6441
6442 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
6443
6444 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
6445 with inlined save and restore.
6446
6447 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
6448
6449 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
6450 to be inserted on single successor edge of the entry block. Then call
6451 commit_edge_insertions instead of inserting the instructions manually.
6452 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
6453 RTL expansion and rebuild jump labels chain.
6454
6455 2019-07-02 Richard Biener <rguenther@suse.de>
6456
6457 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
6458 TI_CHREC_KNOWN.
6459 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
6460 Define here.
6461 * tree.c (build_common_tree_nodes): Initialize them.
6462 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
6463 Make declarations comments.
6464 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
6465 chrec_known): Remove definitions.
6466 (initialize_scalar_evolutions_analyzer): Remove.
6467 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
6468 * tree-streamer.c (preload_common_nodes): Do not preload
6469 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
6470
6471 2019-07-02 Jan Hubicka <jh@suse.cz>
6472
6473 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
6474 sanity check.
6475
6476 2019-07-02 Jan Hubicka <jh@suse.cz>
6477
6478 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
6479 to ..
6480 (nonoverlapping_component_refs_since_match_p): ... this one;
6481 handle also non-decl bases; return -1 if search gave up.
6482 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
6483 nonoverlapping_component_refs_of_decl_p_no_alias to
6484 nonoverlapping_component_refs_since_match_p_may_alias,
6485 nonoverlapping_component_refs_since_match_p_no_alias.
6486 (dump_alias_stats): Update dumping.
6487 (aliasing_matching_component_refs_p): Break out from ...;
6488 dispatch to nonoverlapping_component_refs_for_decl_p
6489 and nonoverlapping_component_refs_since_match_p.
6490 (aliasing_component_refs_p): ... here; call
6491 nonoverlapping_component_refs_p in scenarios where we can not
6492 precisely determine base match.
6493 (decl_refs_may_alias_p): Use
6494 nonoverlapping_component_refs_since_match_p.
6495 (indirect_ref_may_alias_decl_p): Do not call
6496 nonoverlapping_component_refs_p.
6497 (indirect_refs_may_alias_p): Likewise.
6498
6499 2019-07-02 Jan Hubicka <jh@suse.cz>
6500
6501 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
6502 to clobber of return value.
6503
6504 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6505
6506 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
6507 for is_neon_type instructions that have not already been categorized.
6508
6509 2019-07-02 Richard Biener <rguenther@suse.de>
6510
6511 PR tree-optimization/58483
6512 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
6513 for MEM_REF base hashing.
6514 (equal_mem_array_ref_p): Likewise for base comparison.
6515
6516 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6517
6518 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
6519 parameterized name.
6520 (signbit<mode>2): Use that name. Simplify.
6521
6522 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
6523
6524 PR middle-end/66726
6525 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
6526 Tune heuristic from PR71016 to allow MIN / MAX.
6527
6528 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6529
6530 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
6531 parameterized name.
6532 (abs<mode>2): Use that name. Simplify.
6533
6534 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6535
6536 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
6537 parameterized name.
6538 (neg<mode>2): Use that name. Simplify.
6539
6540 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6541
6542 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
6543 name.
6544 (abs<mode>2): Use that name. Simplify.
6545
6546 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6547
6548 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
6549 name.
6550 (neg<mode>2): Use that name. Simplify.
6551
6552 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
6553
6554 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
6555 ("enabled" attribute): Handle sse_noavx isa attribute.
6556 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
6557 Use TARGET_SSE && SSE_REGNO_P in split condition.
6558 (*vec_dupv2sf): Ditto.
6559
6560 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6561
6562 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
6563 name.
6564 (floatsi<mode>2): Use that name. Simplify.
6565
6566 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6567
6568 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
6569 parameterized name.
6570 (extenddf<mode>2_vsx): Make this a parameterized name.
6571 (extenddf<mode>2): Use those names. Simplify.
6572
6573 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6574
6575 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
6576 name.
6577 (eh_return): Use that name. Simplify.
6578
6579 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6580
6581 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
6582 (doloop_end): Use that name. Simplify.
6583
6584 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6585
6586 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
6587 parameterized name.
6588 (indirect_jump): Use that name. Simplify.
6589
6590 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6591
6592 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
6593 parameterized name.
6594 (abs<mode>2): Use that name. Simplify.
6595
6596 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6597
6598 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
6599 parameterized name.
6600 (fix_trunc<mode>si2): Use that name. Simplify.
6601
6602 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6603
6604 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
6605 (allocate_stack): Use that name. Simplify.
6606
6607 2019-07-01 Martin Sebor <msebor@redhat.com>
6608
6609 PR middle-end/90923
6610 * hash-map.h (hash_map::put): On insertion invoke element ctor.
6611 (hash_map::get_or_insert): Same. Reformat comment.
6612 * hash-set.h (hash_set::add): On insertion invoke element ctor.
6613 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
6614 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
6615 * hash-table.h (hash_table::operator=): Prevent copy assignment.
6616 (hash_table::hash_table (const hash_table&)): Use copy ctor
6617 instead of assignment to copy elements.
6618
6619 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
6620 John David Anglin <danglin@gcc.gnu.org>
6621
6622 PR target/90963
6623 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
6624 using saved frame pointer.
6625
6626 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
6627
6628 PR middle-end/64242
6629 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
6630 Add frame clobber and schedule blockage.
6631
6632 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
6633
6634 * doc/invoke.texi (Link Options): Further editorial changes to
6635 -flinker-output docs.
6636
6637 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6638
6639 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
6640 Load both operands of a PLUS into registers separately.
6641
6642 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
6643
6644 * config/s390/vector.md: Fix shift count operand printing.
6645
6646 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6647
6648 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
6649
6650 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6651
6652 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
6653 Use recog_data to test for an output operand.
6654
6655 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6656
6657 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
6658 exclude any others that are disparaged or that are bound to need
6659 a reload or spill.
6660 (ira_get_dup_out_num): Expand comment.
6661
6662 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6663
6664 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
6665 constraint string for each operand/alternative combo. Only handle
6666 '%' at the start of constraint strings, and look for it outside
6667 the main loop.
6668
6669 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6670
6671 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
6672 alternative_mask instead of HARD_REG_SET to represent a
6673 bitmask of alternatives.
6674 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
6675 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
6676
6677 2019-07-01 Martin Liska <mliska@suse.cz>
6678
6679 * edit-context.c (test_applying_fixits_unreadable_file): Do not
6680 use () for a constructor call.
6681 (test_applying_fixits_line_out_of_range): Likewise.
6682 * ggc-page.c (alloc_page): Use (void *) for %p printf format
6683 argument.
6684 (free_page): Likewise.
6685
6686 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
6687
6688 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
6689 parameter names to match usage (no functional change).
6690 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
6691
6692 2019-07-01 Richard Biener <rguenther@suse.de>
6693
6694 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
6695 pass parameter.
6696 (pass_fre::execute): Honor it.
6697 * passes.def: Adjust pass_fre invocations to allow iterating,
6698 add non-iterating pass_fre before late threading/dom.
6699
6700 2019-07-01 Richard Biener <rguenther@suse.de>
6701
6702 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
6703 TARGET_MEM_REF handling to also handle address-taken ones.
6704
6705 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
6706
6707 * doc/sourcebuild.texi (Effective-Target Keywords, Other
6708 hardware attributes): Document avx512vp2intersect.
6709
6710 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
6711
6712 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
6713 (abs<mode>2): New expander.
6714 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
6715 Use CODE_FOR_ssse3_absv8qi2.
6716 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
6717 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
6718
6719 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
6720
6721 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
6722 to sse, sse_noavx and avx. Update all uses.
6723
6724 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
6725
6726 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
6727 (*mmx_<plusminus_insn><mode>3): Ditto.
6728 (*mmx_mulv4hi3"): Ditto.
6729 (*mmx_smulv4hi3_highpart): Ditto.
6730 (*mmx_umulv4hi3_highpart): Ditto.
6731 (*mmx_pmaddwd): Ditto.
6732 (*sse2_umulv1siv1di3): Ditto.
6733 (*mmx_<code>v4hi3): Ditto.
6734 (*mmx_<code>v8qi3): Ditto.
6735 (mmx_ashr<mode>3): Ditto.
6736 ("mmx_<shift_insn><mode>3): Ditto.
6737 (*mmx_eq<mode>3): Ditto.
6738 (mmx_gt<mode>3): Ditto.
6739 (mmx_andnot<mode>3): Ditto.
6740 (*mmx_<code><mode>3): Ditto.
6741 (*mmx_pinsrw): Ditto.
6742 (*mmx_pextrw): Ditto.
6743 (mmx_pshufw_1): Ditto.
6744 (*mmx_uavgv8qi3): Ditto.
6745 (*mmx_uavgv4hi3): Ditto.
6746 ("mmx_psadbw): Ditto.
6747 * config/i386/sse.md (sse_cvtps2pi): Ditto.
6748 (sse_cvttps2pi): Ditto.
6749 (ssse3_pmaddubsw): Ditto.
6750 (*ssse3_pmulhrswv4hi3): Ditto.
6751 (ssse3_psign<mode>3): Ditto.
6752
6753 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
6754
6755 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
6756 adjustment for bit-fields to all aggregate types.
6757
6758 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
6759
6760 * config/rs6000/predicates.md (pcrel_address): Use
6761 SYMBOL_REF_LOCAL_P to determine if a label is local.
6762 (pcrel_external_address): New predicate.
6763 (non_prefixed_mem_operand): Delete, predicate not used.
6764 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
6765 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
6766 addressing.
6767 (SYMBOL_REF_PCREL_P): Likewise.
6768
6769 PR target/91009
6770 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
6771 alternative.
6772 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
6773 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
6774 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
6775
6776 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
6777
6778 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
6779 override on extra_headers.
6780
6781 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
6782
6783 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
6784 * config/darwin-driver.c (darwin_default_min_version): Remove newline
6785 from warning.
6786 (darwin_driver_init): Likewise.
6787
6788 2019-06-28 Jan Beulich <jbeulich@suse.com>
6789
6790 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
6791 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
6792 Eliminate redundant alternative.
6793
6794 2019-06-28 Jan Beulich <jbeulich@suse.com>
6795
6796 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
6797 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
6798 Use vector_operand.
6799
6800 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
6801
6802 * config/arc/arc.c (arc_rtx_costs): All short instructions are
6803 having a lower cost regardless of the speed option.
6804
6805 2019-06-28 Jan Beulich <jbeulich@suse.com>
6806
6807 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
6808 vector_operand plus, on both alternatives, "Bm" constraint.
6809
6810 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
6811
6812 * config/arm/arm.md: Remove redundant constraints from
6813 define_expand but leave reload_inm and reload_outm patterns
6814 untouched since they need special constraints to work.
6815 * config/arm/arm-fixed.md: Remove redundant constraints from
6816 define_expand.
6817 * config/arm/iwmmxt.md: Likewise.
6818 * config/arm/neon.md: Likewise.
6819 * config/arm/sync.md: Likewise.
6820 * config/arm/thumb1.md: Likewise.
6821 * config/arm/vec-common.md: Likewise.
6822
6823 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
6824
6825 * doc/install.texi: Document --disable-tm-clone-registry.
6826
6827 2019-06-27 Jakub Jelinek <jakub@redhat.com>
6828
6829 PR c++/91024
6830 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
6831 statements.
6832
6833 PR tree-optimization/91010
6834 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
6835 return true. Otherwise, don't call operand_equal_p if offset1 or
6836 offset2 is NULL and just return false.
6837
6838 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
6839
6840 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
6841 user-specified float mode choice for kernel mode code.
6842
6843 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
6844
6845 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
6846 spec.
6847
6848 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
6849
6850 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
6851 use longcall for 64b code.
6852
6853 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
6854
6855 * builtins.c (get_memory_rtx): Fix comment.
6856 * optabs.def (movmem_optab): Change to cpymem_optab.
6857 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
6858 (emit_block_move_hints): Change movmem to cpymem.
6859 * defaults.h: Change movmem to cpymem.
6860 * targhooks.c (get_move_ratio): Change movmem to cpymem.
6861 (default_use_by_pieces_infrastructure_p): Ditto.
6862 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
6863 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
6864 to cpymem.
6865 * config/aarch64/aarch64.h: Change movmem to cpymem.
6866 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
6867 * config/alpha/alpha.h: Change movmem to cpymem in comment.
6868 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
6869 movmem to cpymem.
6870 * config/arc/arc-protos.h: Change movmem to cpymem.
6871 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
6872 * config/arc/arc.h: Change movmem to cpymem in comment.
6873 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
6874 * config/arm/arm-protos.h: Change movmem to cpymem in names.
6875 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
6876 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
6877 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
6878 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
6879 * config/avr/avr-protos.h: Change movmem to cpymem.
6880 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
6881 avr_out_movmem): Change movmem to cpymem.
6882 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
6883 Change movmem to cpymem.
6884 * config/bfin/bfin-protos.h: Change movmem to cpymem.
6885 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
6886 Change movmem to cpymem.
6887 * config/bfin/bfin.h: Change movmem to cpymem in comment.
6888 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
6889 * config/c6x/c6x-protos.h: Change movmem to cpymem.
6890 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
6891 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
6892 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
6893 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
6894 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
6895 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
6896 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
6897 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
6898 expand_small_cpymem_or_setmem,
6899 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
6900 expand_set_or_cpymem_constant_prologue,
6901 ix86_expand_set_or_cpymem): Change movmem to cpymem.
6902 * config/i386/i386-protos.h: Change movmem to cpymem.
6903 * config/i386/i386.h: Change movmem to cpymem in comment.
6904 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
6905 (setmem<mode>): Change expansion function name.
6906 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
6907 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
6908 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
6909 * config/m32c/m32c-protos.h: Change movmem to cpymem.
6910 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
6911 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
6912 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
6913 to cpymem.
6914 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
6915 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
6916 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
6917 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
6918 Change movmem to cpymem.
6919 * config/mips/mips.h: Change movmem to cpymem.
6920 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
6921 * config/nds32/nds32-memory-manipulation.c
6922 (nds32_expand_movmemsi_loop_unknown_size,
6923 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
6924 nds32_expand_movmemsi_unroll,
6925 nds32_expand_movmemsi): Change movmem to cpymem.
6926 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
6927 * config/nds32/nds32-protos.h: Change movmem to cpymem.
6928 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
6929 (pa_adjust_insn_length): Change call to compute_movmem_length.
6930 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
6931 movmemdi, movmemdi_prereload,
6932 movmemdi_postreload): Change movmem to cpymem.
6933 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
6934 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
6935 * config/riscv/riscv.c: Change movmem to cpymem in comment.
6936 * config/riscv/riscv.h: Change movmem to cpymem.
6937 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
6938 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
6939 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
6940 movmem to cpymem.
6941 * config/s390/s390-protos.h: Change movmem to cpymem.
6942 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
6943 s390_expand_insv): Change movmem to cpymem.
6944 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
6945 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
6946 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
6947 * config/sparc/sparc.h: Change movmem to cpymem in comment.
6948 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
6949 for nonexistent function.
6950 * config/vax/vax.h: Change movmem to cpymem in comment.
6951 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
6952 * config/visium/visium.h: Change movmem to cpymem in comment.
6953 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
6954 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
6955 * doc/md.texi: Change movmem to cpymem and update description to match.
6956 * doc/rtl.texi: Change movmem to cpymem.
6957 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
6958 * doc/tm.texi: Regenerate.
6959
6960 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
6961
6962 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
6963 -fvariable-expansion-in-unroller by default.
6964 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
6965 default for Power.
6966
6967 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
6968
6969 Revert
6970 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
6971 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
6972
6973 * config.gcc(rs6000-*-*): Define target_gtfiles.
6974
6975 2019-06-27 Jan Hubicka <jh@suse.cz>
6976
6977 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
6978 (add_type_duplicate): When odr hash is not allocated, to nothing.
6979 (odr_based_tbaa_p): New function.
6980 (set_type_canonical_for_odr_type): New function.
6981 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
6982 set_type_canonical_for_odr_type): New.
6983 * tree.c (gimple_canonical_types_compatible_p): ODR types with
6984 ODR based TBAA are not equivalent to non-ODR types.
6985
6986 2019-06-27 Martin Liska <mliska@suse.cz>
6987
6988 PR tree-optimization/90974
6989 PR rtl-optimization/90975
6990 PR rtl-optimization/90976
6991 PR target/91016
6992 PR tree-optimization/91017
6993 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
6994 unused tmp.
6995 * lra.c (lra_set_insn_recog_data): Remove a leftover from
6996 initial commit of IRA.
6997 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
6998 of op0 and op1.
6999 * tree-vect-loop.c (vect_create_epilog_for_reduction):
7000 Remove unused mode1.
7001 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
7002 to new_stmt_info.
7003
7004 2019-06-27 Jakub Jelinek <jakub@redhat.com>
7005
7006 PR target/90991
7007 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
7008 instead of register_operand for operands[1], add m to its constraints
7009 if operands[2] uses "C" constraint. Ensure in condition that if
7010 operands[2] is not 0, then operands[1] is not a MEM. For last two
7011 alternatives, use unaligned loads instead of aligned if operands[1] is
7012 misaligned_operand.
7013
7014 2019-06-27 Martin Liska <mliska@suse.cz>
7015
7016 * asan.c (asan_emit_allocas_unpoison): Remove obviously
7017 dead assignments.
7018 * bt-load.c (move_btr_def): Likewise.
7019 * builtins.c (expand_builtin_apply_args_1): Likewise.
7020 (expand_builtin_apply): Likewise.
7021 * cfgexpand.c (expand_asm_stmt): Likewise.
7022 (construct_init_block): Likewise.
7023 * cfghooks.c (verify_flow_info): Likewise.
7024 * cfgloopmanip.c (remove_path): Likewise.
7025 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
7026 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
7027 * combine.c (simplify_if_then_else): Likewise.
7028 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
7029 (choose_basereg): Likewise.
7030 (ix86_expand_prologue): Likewise.
7031 (ix86_preferred_output_reload_class): Likewise.
7032 * cselib.c (cselib_record_sets): Likewise.
7033 * df-scan.c (df_scan_alloc): Likewise.
7034 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
7035 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
7036 * emit-rtl.c (try_split): Likewise.
7037 * graphite-scop-detection.c (assign_parameter_index_in_region):
7038 Likewise.
7039 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
7040 * ira-color.c (setup_profitable_hard_regs): Likewise.
7041 * ira.c (rtx_moveable_p): Likewise.
7042 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
7043 * read-rtl.c (read_subst_mapping): Likewise.
7044 * regrename.c (scan_rtx): Likewise.
7045 * reorg.c (fill_slots_from_thread): Likewise.
7046 * tree-inline.c (tree_function_versioning): Likewise.
7047 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
7048 * tree-ssa-sink.c (statement_sink_location): Likewise.
7049 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
7050 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
7051 (vect_create_epilog_for_reduction): Likewise.
7052 * tree.c (build_nonstandard_integer_type): Likewise.
7053
7054 2019-06-27 Richard Biener <rguenther@suse.de>
7055
7056 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
7057
7058 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
7059
7060 PR tree-optimization/89772
7061 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
7062 out-of-bound accesses checking.
7063
7064 2019-06-27 Martin Liska <mliska@suse.cz>
7065
7066 PR tree-optimization/91014
7067 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
7068 when LHS is NULL_TREE.
7069
7070 2019-06-27 Martin Liska <mliska@suse.cz>
7071
7072 * symbol-summary.h (traverse): Pass
7073 argument a to the call of callback.
7074 (gt_ggc_mx): Mark arguments as unused.
7075 (gt_pch_nx): Likewise.
7076
7077 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
7078
7079 PR target/62147
7080 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
7081 finiteness.
7082
7083 2019-06-26 Jeff Law <law@redhat.com>
7084
7085 PR tree-optimization/90883
7086 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
7087 (delete_dead_or_redundant_assignment): Likewise.
7088
7089 PR tree-optimization/90883
7090 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
7091 * tree-ssa-dse.c: Update various comments to distinguish between
7092 dead and redundant stores.
7093 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
7094 (dse_optimize_redundant_stores): New function.
7095 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
7096 Distinguish between dead and redundant calls in dump output. All
7097 callers updated.
7098 (delete_dead_or_redundant_assignment): Similarly for assignments.
7099 (dse_optimize_stmt): Handle _CHK variants. For statements which
7100 store 0 into multiple memory locations, try to prove a subsequent
7101 store is redundant.
7102
7103 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
7104
7105 PR target/89021
7106 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
7107 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
7108
7109 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
7110
7111 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
7112 (branch_islands): New extern.
7113 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
7114 * config/rs6000/rs6000.c: .. here.
7115
7116 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
7117
7118 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
7119 (powerpc*-*-*) ... to here.
7120
7121 2019-06-26 Jeff Law <law@redhat.com>
7122
7123 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
7124 memcpy, memmove and memset builtins.
7125 (maybe_trim_memstar_call): Likewise.
7126
7127 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
7128
7129 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
7130
7131 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
7132
7133 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
7134
7135 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
7136
7137 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
7138 declaration.
7139 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
7140 "static".
7141 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
7142 declaration.
7143
7144 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
7145
7146 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
7147
7148 2019-06-26 Richard Biener <rguenther@suse.de>
7149
7150 PR ipa/90982
7151 * tree-inline.c (remap_ssa_name): Copy SSA range info.
7152
7153 2019-06-26 Richard Biener <rguenther@suse.de>
7154
7155 * lto-streamer.h (lto_bitmap_alloc): Remove.
7156 (lto_bitmap_free): Likewise.
7157 * lto-streamer.c (lto_bitmap_alloc): Remove.
7158 (lto_bitmap_free): Likewise.
7159 (lto_obstack): Likewise.
7160 (lto_obstack_initialized): Likewise.
7161 * lto-streamer-out.c (lto_output): Use own obstack for local
7162 bitmap, free it consistently.
7163
7164 2019-06-26 Jakub Jelinek <jakub@redhat.com>
7165
7166 PR target/90991
7167 * config/i386/sse.md
7168 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
7169 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
7170 insns if operands[2] is misaligned_operand.
7171
7172 2019-06-26 Li Jia He <helijia@linux.ibm.com>
7173
7174 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
7175 TARGET_POWERPC64.
7176 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
7177 to GPR.
7178
7179 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
7180
7181 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
7182
7183 2019-06-26 Martin Liska <mliska@suse.cz>
7184
7185 PR tree-optimization/90973
7186 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
7187 epilogue_cost_vec instead of prologue_cost_vec for
7188 a epilogue cost.
7189
7190 2019-06-26 Martin Liska <mliska@suse.cz>
7191
7192 * bb-reorder.c (connect_better_edge_p): Add missing else
7193 statement in the middle of if-else statements.
7194
7195 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
7196 H.J. Lu <hongjiu.lu@intel.com>
7197 Olga Makhotina <olga.makhotina@intel.com>
7198
7199 * common/config/i386/i386-common.c
7200 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
7201 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
7202 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
7203 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
7204 (ix86_handle_option): Handle -mavx512vp2intersect.
7205 * config/i386/avx512vp2intersectintrin.h: New.
7206 * config/i386/avx512vp2intersectvlintrin.h: New.
7207 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
7208 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7209 AVX512VP2INTERSECT.
7210 * config/i386/i386-builtin-types.def: Add new types.
7211 * config/i386/i386-builtin.def: Add new builtins.
7212 * config/i386/i386-builtins.c: (enum processor_features): Add
7213 F_AVX512VP2INTERSECT.
7214 (static const _isa_names_table isa_names_table): Ditto.
7215 * config/i386/i386-c.c (ix86_target_macros_internal): Define
7216 __AVX512VP2INTERSECT__.
7217 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
7218 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
7219 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
7220 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
7221 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
7222 * config/i386/i386-options.c (ix86_target_string): Add
7223 -mavx512vp2intersect.
7224 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
7225 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
7226 P2HImode and P2QImode.
7227 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
7228 number for P2QImode and P2HImode.
7229 (ix86_regmode_natural_size): New function.
7230 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
7231 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
7232 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
7233 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
7234 * config/i386/i386.opt: Add -mavx512vp2intersect.
7235 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
7236 avx512vp2intersectvlintrin.h.
7237 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
7238 (define_mode_iterator VI48_AVX512VP2VL): New.
7239 (avx512vp2intersect_2intersect<mode>,
7240 avx512vp2intersect_2intersectv16si): New define_insn patterns.
7241 * config.gcc: Add avx512vp2intersectvlintrin.h and
7242 avx512vp2intersectintrin.h to extra_headers.
7243 * doc/invoke.texi: Document -mavx512vp2intersect.
7244
7245 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
7246
7247 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
7248
7249 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
7250
7251 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
7252 savres_routine_syms, savres_routine_name, morestack_ref,
7253 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
7254 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
7255 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
7256 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
7257 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
7258 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
7259 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
7260 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
7261 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
7262 get_stack_clash_protection_probe_interval,
7263 get_stack_clash_protection_guard_size,
7264 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
7265 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
7266 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
7267 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
7268 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
7269 gen_frame_mem_offset, rs6000_savres_routine_name,
7270 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
7271 ptr_regno_for_savres, rs6000_emit_savres_rtx,
7272 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
7273 rs6000_global_entry_point_prologue_needed_p,
7274 rs6000_get_separate_components, rs6000_components_for_bb,
7275 rs6000_disqualify_components, rs6000_emit_prologue_components,
7276 rs6000_emit_epilogue_components, rs6000_set_handled_components,
7277 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
7278 rs6000_output_savres_externs, rs6000_output_function_prologue,
7279 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
7280 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
7281 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
7282 rs6000_output_function_epilogue, gen_add3_const,
7283 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
7284 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
7285 to rs6000-logue.c.
7286 (machine_function): Moved to rs6000.h.
7287 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
7288 rs6000-internal.h.
7289 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
7290 savres_routine_syms, savres_routine_name, morestack_ref,
7291 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
7292 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
7293 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
7294 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
7295 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
7296 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
7297 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
7298 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
7299 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
7300 get_stack_clash_protection_probe_interval,
7301 get_stack_clash_protection_guard_size,
7302 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
7303 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
7304 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
7305 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
7306 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
7307 gen_frame_mem_offset, rs6000_savres_routine_name,
7308 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
7309 ptr_regno_for_savres, rs6000_emit_savres_rtx,
7310 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
7311 rs6000_global_entry_point_prologue_needed_p,
7312 rs6000_get_separate_components, rs6000_components_for_bb,
7313 rs6000_disqualify_components, rs6000_emit_prologue_components,
7314 rs6000_emit_epilogue_components, rs6000_set_handled_components,
7315 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
7316 rs6000_output_savres_externs, rs6000_output_function_prologue,
7317 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
7318 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
7319 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
7320 rs6000_output_function_epilogue, gen_add3_const,
7321 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
7322 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
7323 to here from rs6000.c.
7324 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
7325 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
7326 quad_address_offset_p) Moved to here from rs6000.c.
7327 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
7328 * config/config.gcc: Add new source file rs6000-logue.c to garbage
7329 collector.
7330
7331 2019-06-25 Martin Liska <mliska@suse.cz>
7332
7333 * hash-table.c (hashtab_chk_error): Move here from ...
7334 * hash-table.h (hashtab_chk_error): ... here.
7335
7336 2019-06-25 Martin Liska <mliska@suse.cz>
7337
7338 PR tree-optimization/90978
7339 * df-scan.c (df_update_entry_block_defs): Remove dead else
7340 branch.
7341 (df_update_exit_block_uses): Likewise.
7342
7343 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
7344 Andrew Stubbs <ams@codesourcery.com>
7345
7346 * config.gcc (thread_file): Set to gcn for AMD GCN.
7347 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
7348 (TARGET_EMUTLS_VAR_INIT): New hook.
7349
7350 2019-06-25 Martin Jambor <mjambor@suse.cz>
7351
7352 PR ipa/90939
7353 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
7354
7355 2019-06-25 Richard Biener <rguenther@suse.de>
7356
7357 PR tree-optimization/90930
7358 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
7359 into parallel form in the last pass instance.
7360
7361 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
7362
7363 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
7364 (arc_legitimize_pic_address): Simplify and cleanup the function.
7365 (SYMBOLIC_CONST): Remove.
7366 (prepare_pic_move): Likewise.
7367 (prepare_move_operands): Handle complex mov cases here.
7368 (arc_legitimize_address_0): Remove call to
7369 arc_legitimize_pic_address.
7370 (arc_legitimize_address): Remove call to
7371 arc_legitimize_tls_address.
7372 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
7373 (movhi_insn): Likewise.
7374
7375 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7376
7377 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
7378 PTRDIFF_TYPE.
7379 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
7380 format of "__intN" types for UINTMAX_TYPE.
7381 * stor-layout.c (initialize_sizetypes): Accept "__intN__"
7382 format of "__intN" types for SIZETYPE.
7383 * tree.c (build_common_tree_nodes): Accept "__intN__"
7384 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
7385 * doc/invoke.texi: Document that __intN__ disables pedantic
7386 warnings.
7387
7388 2019-06-25 Jan Hubicka <jh@suse.cz>
7389
7390 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
7391 base2_alias_set is non-zero before doing TBAA based disambiguation.
7392
7393 2019-06-25 Martin Liska <mliska@suse.cz>
7394
7395 PR tree-optimization/90973
7396 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
7397 of prologue and epilogue.
7398
7399 2019-06-24 Jan Hubicka <jh@suse.cz>
7400
7401 * ipa-utils.h (type_with_linkage_p): Verify that type is
7402 CXX_ODR_P.
7403 (odr_type_p): Remove extra return.
7404 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
7405 hash STRING_FLAG only for arrays and integers.
7406 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
7407 Update analogously.
7408 * tree-streamer-out.c (pack_ts_type_common_value_fields):
7409 Likewise.
7410 * print-tree.c (print_node): Print cxx-odr-p
7411 and string-flag.
7412 * tree.c (need_assembler_name_p): Also check that type
7413 is CXX_ODR_TYPE_P
7414 (verify_type_variant): Update verification of SRING_FLAG;
7415 also check CXX_ODR_P.
7416 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
7417 (TYPE_STRING_FLAG): Use it.
7418 (TYPE_CXX_ODR_P): New macro.
7419 * dwarf2out.c (gen_array_type_die): First check that type
7420 is an array and then test string flag.
7421
7422 2019-06-24 Richard Biener <rguenther@suse.de>
7423
7424 PR tree-optimization/90972
7425 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
7426 in common code, dealing with STRING_CST properly.
7427
7428 2019-06-24 Richard Biener <rguenther@suse.de>
7429
7430 PR tree-optimization/90930
7431 PR tree-optimization/90316
7432 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
7433 decrement of limit.
7434
7435 2019-06-24 Martin Sebor <msebor@redhat.com>
7436
7437 * tree-pretty-print.h: Remove unnecessary punctuation characters
7438 from a diagnostic.
7439 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
7440
7441 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
7442
7443 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
7444 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
7445 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
7446
7447 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
7448
7449 * config/rs6000/darwin.h: Handle GCC target pragma.
7450
7451 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
7452
7453 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
7454
7455 2019-06-22 Jeff Law <law@redhat.com>
7456
7457 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7458
7459 2019-06-22 Jan Hubicka <jh@suse.cz>
7460
7461 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
7462 give up on bitfields; continue searching for different refs
7463 appearing later.
7464
7465 2019-06-21 Jakub Jelinek <jakub@redhat.com>
7466
7467 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
7468 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
7469 containing the offset as possible simd lane access. Look through
7470 widening conversion. Move the
7471 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
7472
7473 2019-06-21 Richard Biener <rguenther@suse.de>
7474
7475 PR tree-optimization/90930
7476 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
7477 flag on new stmts to avoid re-processing them.
7478
7479 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
7480
7481 PR c++/90875 - added -Wswitch-outside-range option
7482 * doc/invoke.texi (Wswitch-outside-range): Document.
7483
7484 2019-06-21 Jeff Law <law@redhat.com>
7485
7486 PR tree-optimization/90949
7487 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
7488 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
7489
7490 2019-06-21 Richard Biener <rguenther@suse.de>
7491
7492 PR debug/90914
7493 * dwarf2out.c (prune_unused_types_walk): Always consider
7494 function-local extern declarations as used.
7495
7496 2019-06-21 Richard Biener <rguenther@suse.de>
7497
7498 PR tree-optimization/90913
7499 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
7500 the scalar variant of if-conversion versioning.
7501
7502 2019-06-21 Jakub Jelinek <jakub@redhat.com>
7503
7504 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
7505 create another "omp scan inscan exclusive" array if
7506 !ctx->scan_inclusive.
7507 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
7508 (lower_omp_scan): Likewise.
7509 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
7510 2-bit bitfield for simd_lane_access_p member.
7511 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
7512 aux == (void *)-4 as simd lane access.
7513 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
7514 comment with permutations to show the canonical permutation order.
7515 (vectorizable_scan_store): Handle exclusive scan.
7516 (vectorizable_store): Call vectorizable_scan_store even for
7517 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
7518
7519 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
7520 "omp simd array" arrays with one byte elements.
7521
7522 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
7523
7524 * config/alpha/alpha.md (@unaligned_store<mode>):
7525 Rename from unaligned_store<mode>.
7526 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
7527 * config/alpha/sync.md (@load_locked_<mode>): Rename
7528 from load_locked_<mode>.
7529 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
7530 (@atomic_compare_and_swap<mode>_1): Rename
7531 from atomic_compare_and_swap<mode>_1.
7532 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
7533 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
7534 Use gen_reload_in_aligned and gen_unaligned_store.
7535 (emit_load_locked): Remove.
7536 (emit_store_conditional): Ditto.
7537 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
7538 (alpha_split_compare_and_swap): Ditto.
7539 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
7540 (alpha_split_compare_and_swap_12): Use gen_load_locked
7541 and gen_store_conditional.
7542 (alpha_split_atomic_exchange): Ditto.
7543 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
7544 (alpha_split_atomic_exchange_12): Use gen_load_locked
7545 and gen_store_conditional.
7546
7547 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
7548
7549 * config/aarch64/aarch64-errata.h: New file.
7550 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
7551 (CA53_ERR_843419_SPEC): Delete.
7552 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
7553 * config/aarch64/aarch64-linux.h: Likewise.
7554 * config/aarch64/aarch64-netbsd.h: Likewise.
7555 * config/aarch64/aarch64-freebsd.h: Likewise.
7556
7557 2019-06-20 Marek Polacek <polacek@redhat.com>
7558
7559 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
7560
7561 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
7562
7563 * config/rs6000/rs6000.md (isa attribute): Add support for
7564 for a future processor.
7565
7566 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
7567
7568 PR target/54855
7569 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
7570 standard scalar operation pattern for V2DF.
7571 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
7572 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
7573 (*ieee_<ieee_maxmin><mode>3): Likewise.
7574 (vec_setv2df_0): Likewise.
7575
7576 2019-06-20 Jan Hubicka <jh@suse.cz>
7577
7578 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
7579 parameter; it has no use in gimple memory model.
7580 (indirect_ref_may_alias_decl_p): Update.
7581
7582 2019-06-20 Martin Liska <mliska@suse.cz>
7583
7584 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
7585 to 10.
7586
7587 2019-06-20 Jakub Jelinek <jakub@redhat.com>
7588
7589 * tree-vect-stmts.c (enum scan_store_kind): New type.
7590 (scan_store_can_perm_p): Change last argument from int * to
7591 vec<enum scan_store_kind> *, record precisely which permutations
7592 need whole vector left shift or that plus VEC_COND_EXPR.
7593 (vectorizable_scan_store): Adjust caller, use whole vector left shift
7594 and additional VEC_COND_EXPR only for those iterations that need it.
7595
7596 2019-06-20 Alexandre Oliva <oliva@adacore.com>
7597
7598 * config.gcc: Fix ARM --with-fpu checking and error message.
7599
7600 2019-06-19 Marek Polacek <polacek@redhat.com>
7601
7602 PR c++/60364 - noreturn after first decl not diagnosed.
7603 * attribs.c (get_attribute_namespace): No longer static.
7604 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
7605 attributes.
7606 (attr_noreturn_exclusions): Make it extern.
7607 * attribs.h (get_attribute_namespace): Declare.
7608 * tree-inline.c (function_attribute_inlinable_p): Use
7609 get_attribute_name.
7610
7611 2019-06-19 Martin Sebor <msebor@redhat.com>
7612
7613 PR tree-optimization/90626
7614 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
7615
7616 PR tree-optimization/90626
7617 * tree-ssa-strlen.c (strxcmp_unequal): New function.
7618 (handle_builtin_string_cmp): Call it.
7619
7620 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
7621
7622 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
7623 and DARWIN_NOPIE_SPEC.
7624 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
7625 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
7626 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
7627 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
7628 (DARWIN_EXPORT_DYNAMIC): Delete.
7629 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
7630 and pie options processing to darwin.h.
7631 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
7632
7633 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
7634
7635 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
7636 in computing the number of options to be moved.
7637
7638 2019-06-19 Maya Rashish <coypu@sdf.org>
7639
7640 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
7641 (CLEAR_INSN_CACHE) Use it.
7642
7643 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
7644
7645 * config/i386/i386.md (cmpstrnsi): Remove dead code.
7646
7647 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
7648
7649 PR middle-end/84521
7650 * builtins.c (expand_builtin_setjmp_setup): Save
7651 hard_frame_pointer_rtx.
7652 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
7653 restore fp.
7654 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
7655 non-local goto.
7656 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
7657 elimination code.
7658 (remove_reg_equal_offset_note): Remove unused function.
7659 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
7660 code.
7661 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7662 (arc_builtin_setjmp_frame_value): Remove function.
7663 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7664 (avr_builtin_setjmp_frame_value): Remove function.
7665 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7666 (ix86_builtin_setjmp_frame_value): Remove function.
7667 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
7668 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7669 (sparc_builtin_setjmp_frame_value): Remove function.
7670 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7671 (vax_builtin_setjmp_frame_value): Remove function.
7672 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
7673 pointer if has_nonlocal_label.
7674
7675 2019-06-19 Jakub Jelinek <jakub@redhat.com>
7676
7677 * doc/md.texi: Document vec_shl_<mode> pattern.
7678 * optabs.def (vec_shl_optab): New optab.
7679 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
7680 argument, if == vec_shl_optab, check for left whole vector shift
7681 pattern rather than right shift.
7682 (expand_vec_perm_const): Add vec_shl_optab support.
7683 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
7684 in the comment.
7685 * tree-vect-generic.c (lower_vec_perm): Support permutations which
7686 can be handled by vec_shl_optab.
7687 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
7688 (check_scan_store): Use it.
7689 (vectorizable_scan_store): If target can't do normal permutations,
7690 try to use whole vector left shifts and if needed a VEC_COND_EXPR
7691 after it.
7692 * config/i386/sse.md (vec_shl_<mode>): New expander.
7693
7694 * omp-low.c (lower_rec_input_clauses): Handle references properly
7695 in inscan clauses.
7696 (lower_omp_scan): Likewise.
7697
7698 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
7699
7700 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
7701 mem_mode is BLKmode.
7702
7703 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
7704
7705 PR target/90922
7706 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
7707 pointer adjustment for the case of no callee-saved registers and
7708 stack frame bigger than 128 bytes.
7709
7710 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
7711
7712 PR middle-end/90862
7713 * omp-low.c (check_omp_nesting_restrictions): Handle
7714 GF_OMP_TARGET_KIND_OACC_DECLARE.
7715
7716 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
7717
7718 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
7719 (@add<mode>3_carry): Rename from add<mode>3_carry.
7720 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
7721 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
7722 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
7723 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
7724 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
7725 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
7726 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
7727 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
7728 (cmpstrnsi): Use gen_cmp_1.
7729 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
7730 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
7731 (@umonitor_<mode>): Rename from umonitor_<mode>.
7732 * config/i386/i386-expand.c (ix86_expand_copysign):
7733 Use gen_copysign3_const and gen_copysign3_var.
7734 (ix86_expand_xorsign): Use gen_xorsign3_1.
7735 (ix86_expand_branch): Use gen_sub3_carry_ccc,
7736 gen_sub3_carry_ccgz and gen_cmp1.
7737 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
7738 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
7739 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
7740 (ix86_split_lshr): Ditto.
7741 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
7742
7743 2019-06-18 Jason Merrill <jason@redhat.com>
7744
7745 * tree.c (build_constructor): Add MEM_STAT_DECL.
7746
7747 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7748
7749 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
7750 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
7751 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
7752 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
7753 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
7754 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
7755 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
7756 Use CC_NZC instead of CC.
7757 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
7758 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
7759 (aarch64_print_operand): Handle E_CC_NZCmode.
7760 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
7761 of gen_set_clobber_cc.
7762
7763 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7764
7765 * config/aarch64/aarch64-sve.md: Tabify file.
7766
7767 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7768
7769 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
7770 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
7771 * config/aarch64/aarch64-sve.md: Use it.
7772
7773 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7774
7775 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
7776 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
7777 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
7778 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
7779 (aarch64_expand_sve_vec_cmp_int): Use it.
7780 (aarch64_expand_sve_vec_cmp_float): Likewise.
7781 * config/aarch64/aarch64-sve.md: Likewise throughout.
7782
7783 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7784 Kugan Vivekanandarajah <kuganv@linaro.org>
7785
7786 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
7787 (*cond_<optab><mode>_z): Fold into...
7788 (*cond_<optab><mode>_any): ...here. Also handle cases in which
7789 operand 4 can be tied to operand 0 (either inherently or via RA).
7790
7791 2019-06-18 Richard Biener <rguenther@suse.de>
7792
7793 PR debug/90900
7794 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
7795 as if optimized away.
7796
7797 2019-06-18 Tom de Vries <tdevries@suse.de>
7798
7799 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
7800 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
7801 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
7802 Rename to ...
7803 (define_insn "@set_softstack_<mode>"): ... this.
7804 (define_insn "omp_simt_enter_<mode>"): Rename to ...
7805 (define_insn "@omp_simt_enter_<mode>"): ... this.
7806 (define_insn "omp_simt_exit_<mode>"): Rename to ...
7807 (define_insn "@omp_simt_exit_<mode>"): ... this.
7808
7809 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7810
7811 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
7812 vf parameter. Restore the previous iv step of nscalars_step,
7813 but give it iv_type rather than compare_type. Tweak code order
7814 to match the comments.
7815 (vect_set_loop_condition_masked): Update accordingly.
7816 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
7817 for iv_precision. Tweak comment formatting.
7818
7819 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
7820
7821 * config/darwin.c: Strip trailing whitespace.
7822
7823 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
7824
7825 * config/darwin.c (darwin_emit_unwind_label): New default to false.
7826 (darwin_override_options): Set darwin_emit_unwind_label as needed.
7827
7828 2019-06-18 Martin Jambor <mjambor@suse.cz>
7829
7830 PR ipa/90889
7831 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
7832 caller does not have flag_ipa_cp set.
7833
7834 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
7835
7836 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
7837 from "*fold_left_plus_<mode>", updated operands order.
7838 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
7839 * internal-fn.c (mask_fold_left_direct): New define.
7840 (expand_mask_fold_left_optab_fn): Likewise.
7841 (direct_mask_fold_left_optab_supported_p): Likewise.
7842 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
7843 * optabs.def (mask_fold_left_plus_optab): New optab.
7844 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
7845 masked internal_fn for a reduction ifn.
7846 (vectorize_fold_left_reduction): Add support for masking reductions.
7847
7848 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
7849
7850 PR middle-end/80791
7851 * target.def (predict_doloop_p): New hook.
7852 * targhooks.h (default_predict_doloop_p): New declaration.
7853 * targhooks.c (default_predict_doloop_p): New function.
7854 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
7855 * doc/tm.texi: Regenerate.
7856 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
7857 (TARGET_PREDICT_DOLOOP_P): New macro.
7858 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
7859
7860 2019-06-17 Jakub Jelinek <jakub@redhat.com>
7861
7862 * omp-low.c (struct omp_context): Add scan_inclusive field.
7863 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
7864 if inclusive scan.
7865 (struct omplow_simd_context): Add lastlane member.
7866 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
7867 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
7868 1 or 2 argument.
7869 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
7870 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
7871 (lower_omp_scan): New function.
7872 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
7873 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
7874 check 3rd argument if present rather than 2nd.
7875 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
7876 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
7877 2-bit bitfield.
7878 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
7879 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
7880 than 2nd.
7881 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
7882 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
7883 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
7884 init.
7885 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
7886 IFN_GOMP_SIMD_LANE argument.
7887 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
7888 encoded ->aux value.
7889 * tree-vect-stmts.c: Include attribs.h.
7890 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
7891 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
7892 functions.
7893 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
7894 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
7895
7896 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
7897
7898 PR target/62055
7899 * config/i386/i386.md (*nabstf2_1): New insn pattern.
7900 (*nabs<mode>2_1): Ditto.
7901 (nabs sse-reg splitter): New splitter.
7902 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
7903
7904 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
7905
7906 PR bootstrap/90873.
7907 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7908 TMR index check.
7909
7910 2019-06-17 Tom de Vries <tdevries@suse.de>
7911
7912 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
7913 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
7914 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
7915 ...
7916 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
7917 match_operand 0.
7918 (define_insn "omp_simt_enter_insn"): Rename to ...
7919 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
7920 match_operand 0, 1 and 2, as well as the unspec_volatile result.
7921 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
7922 gen_omp_simt_enter_si.
7923 (define_expand "omp_simt_exit"): New.
7924 (define_insn "omp_simt_exit"): Rename to ...
7925 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
7926 match_operand 0.
7927
7928 2019-06-17 Matthew Green <mrg@eterna.com.au>
7929 Maya Rashish <coypu@sdf.org>
7930
7931 * config.gcc (aarch64*-*-netbsd*): New target.
7932 * config/aarch64/aarch64-netbsd.h: New file.
7933 * config/aarch64/t-aarch64-netbsd: Likewise.
7934
7935 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
7936
7937 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
7938 the access path from base to first VIEW_CONVERT_EXPR or
7939 BIT_FIELD_REF.
7940
7941 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
7942
7943 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
7944 access path on BIT_FIELD_REFs.
7945
7946 2019-06-17 Martin Liska <mliska@suse.cz>
7947
7948 PR ipa/90874
7949 * ipa-utils.h (odr_type_p): Remove dead code.
7950
7951 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7952
7953 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
7954 alternative Solaris 11.4 format.
7955 * configure: Regenerate.
7956
7957 2019-06-17 Tom de Vries <tdevries@suse.de>
7958
7959 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
7960 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
7961 match_operand 0.
7962 (define_insn "call_value_insn"): Rename to ...
7963 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
7964 match_operand 0.
7965 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
7966 DI.
7967
7968 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
7969
7970 PR middle-end/64242
7971 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
7972 frame clobbers and schedule block.
7973 (builtin_longjmp): Likewise.
7974
7975 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7976
7977 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
7978 describe how to perform MSPABI compliant 64-bit shift.
7979 * config/msp430/msp430.md (ashldi3): New define_expand.
7980 (ashrdi3): New define_expand.
7981 (lshrdi3): New define_expand.
7982
7983 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7984
7985 * doc/sourcebuild.texi: Document new effective target keyword
7986 longlong64.
7987
7988 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
7989
7990 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
7991 indirect_refs_may_alias_p): Revert accidental commits.
7992
7993 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
7994 at the end of structures.
7995
7996 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
7997
7998 * config/darwin.c (machopic_indirect_call_target): Use renamed
7999 darwin_picsymbol_stubs to decide on output.
8000 (darwin_override_options): Handle darwin_picsymbol_stubs.
8001 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
8002 (LD64_VERSION): Revise default.
8003 * config/darwin.opt: (mpic-symbol-stubs): New option.
8004 (darwin_picsymbol_stubs): New variable.
8005 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
8006 rename to TARGET_MACHO_PICSYM_STUBS.
8007 * config/i386/i386.c (output_pic_addr_const): Likewise.
8008 * config/i386/i386.h Likewise.
8009 * config/rs6000/darwin.h: Likewise.
8010 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
8011 darwin_picsymbol_stubs.
8012
8013 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
8014
8015 * config/darwin.opt (prebind, noprebind, seglinkedit,
8016 noseglinkedit): Add RejectNegative.
8017
8018 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
8019
8020 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
8021 in my previous patch.
8022
8023 2019-06-16 Tom de Vries <tdevries@suse.de>
8024
8025 PR tree-optimization/89376
8026 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
8027
8028 2019-06-15 Maya Rashish <coypu@sdf.org>
8029
8030 * doc/invoke.texi (Spec Files): Update location of the
8031 Fortran spec file.
8032
8033 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
8034
8035 * doc/extend.texi (Common Function Attributes): Clarify
8036 no_sanitize. Fix grammar.
8037
8038 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
8039
8040 * tree-ssa-alias.c (alias_stats): Add
8041 nonoverlapping_component_refs_p_may_alias,
8042 nonoverlapping_component_refs_p_no_alias,
8043 nonoverlapping_component_refs_of_decl_p_may_alias,
8044 nonoverlapping_component_refs_of_decl_p_no_alias.
8045 (dump_alias_stats): Dump them.
8046 (nonoverlapping_component_refs_of_decl_p): Add stats.
8047 (nonoverlapping_component_refs_p): Add stats; do not stop on first
8048 ARRAY_REF.
8049
8050 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
8051
8052 * config/i386/i386.md (and<mode>3): Generate zero-extends for
8053 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
8054 only.
8055 (*anddi3_doubleword): Split before reload. Merge with
8056 anddi->zext pre-reload splitter.
8057 (*andndi3_doubleword): Split before reload.
8058 (*<code>di3_doubleword): Ditto.
8059 (*one_cmpldi2_doubleword): Ditto.
8060
8061 2019-06-15 Jakub Jelinek <jakub@redhat.com>
8062
8063 PR middle-end/90779
8064 * gimplify.c: Include omp-offload.h and context.h.
8065 (gimplify_bind_expr): Add "omp declare target" attributes
8066 to static block scope variables inside of target region or target
8067 functions.
8068
8069 2019-06-15 Tom de Vries <tdevries@suse.de>
8070
8071 PR tree-optimization/90009
8072 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
8073 Return NULL if bb contains IFN_UNIQUE.
8074
8075 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
8076
8077 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
8078 (un): New define_mode_attr.
8079 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
8080 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
8081 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
8082 merge into ...
8083 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
8084
8085 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
8086
8087 * config/darwin.opt: Add RejectNegative where needed, reorder
8088 and add minimal functional descriptions.
8089
8090 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
8091
8092 PR rtl-optimization/90765
8093 * calls.c (update_stack_alignment_for_call): New function.
8094 (expand_call): Call update_stack_alignment_for_call when
8095 outgoing parameter is passed in the stack.
8096 (emit_library_call_value_1): Likewise.
8097 * function.c (locate_and_pad_parm): Don't update
8098 stack_alignment_needed and preferred_stack_boundary.
8099
8100 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
8101
8102 PR target/90877
8103 * config/i386/i386-features.c
8104 (dimode_scalar_chain::compute_convert_gain): Replace
8105 mmxsse_to_integer with sse_to_integer.
8106 * config/i386/i386.c (ix86_register_move_cost): Verify that
8107 moves between MMX and non-MMX units require secondary memory.
8108 Correct costs of moves between SSE and integer units.
8109 * config/i386/i386.h (processor_costs): Rename cost of moving
8110 SSE register to integer to sse_to_integer. Rename cost of
8111
8112 2019-06-14 Matt Thomas <matt@3am-software.com>
8113 Matthew Green <mrg@eterna.com.au>
8114 Nick Hudson <skrll@netbsd.org>
8115 Maya Rashish <coypu@sdf.org>
8116 Richard Earnshaw <rearnsha@arm.com>
8117
8118 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
8119 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
8120 * config/arm/netbsd-eabi.h: New file.
8121 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
8122 redefining.
8123 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
8124 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
8125 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
8126 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
8127
8128 2019-06-14 Richard Biener <rguenther@suse.de>
8129
8130 * tree-loop-distribution.c (classify_partition): Return
8131 whether a reduction appeared in all partitions and do not
8132 stop builtin detection because of this.
8133 (distribute_loop): Sort a non-builtin partition last if
8134 there's a reduction in all partitions and make sure the
8135 partition prevailing as last is not a builtin.
8136
8137 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
8138
8139 PR ipa/90401
8140 * ipa-prop.c (add_to_agg_contents_list): New function.
8141 (clobber_by_agg_contents_list_p): Likewise.
8142 (extract_mem_content): Likewise.
8143 (get_place_in_agg_contents_list): Delete.
8144 (determine_known_aggregate_parts): Renamed from
8145 determine_locally_known_aggregate_parts. New parameter
8146 aa_walk_budget_p.
8147
8148 2019-06-13 Martin Sebor <msebor@redhat.com>
8149
8150 PR tree-optimization/90662
8151 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
8152 to the same type.
8153
8154 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
8155
8156 PR bootstrap/90873
8157 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
8158 dbase is not TARGET_MEM_REF.
8159
8160 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
8161
8162 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
8163 Update all uses.
8164 (and<mode>3): Use gen_extend_insn instead of indirect functions.
8165 Do not generate DImode extends for 32bit targets.
8166 (and->zext post-reload splitter): Use gen_extend_insn
8167 instead of indirect functions.
8168 (anddi->zext pre-reload splitter): New.
8169 (*zext<mode>_doubleword_and): Remove.
8170 (*zext<mode>_doubleword): Ditto.
8171 (*zextsi_doubleword): Dittto.
8172
8173 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
8174
8175 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
8176 Use gen_sub3_insn instead of indirect function.
8177 (ix86_expand_ashl_const): Use gen_add2_insn instead of
8178 indirect function.
8179 (ix86_adjust_counter): Ditto.
8180
8181 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
8182 Lijia He <helijia@linux.ibm.com>
8183
8184 PR tree-optimization/77820
8185 * tree-ssa-threadedge.c
8186 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
8187 function.
8188 (thread_across_edge): Add call to
8189 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
8190
8191 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
8192
8193 * config/darwin-driver.c (validate_macosx_version_min): New.
8194 (darwin_default_min_version): Cleanup and validate supplied version.
8195 (darwin_driver_init): Likewise and push cleaned version into opts.
8196
8197 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
8198
8199 PR tree-optimization/90869
8200 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
8201 converts in MEM_REF referencing decl rather than view converts
8202 from decl type to MEM_REF type.
8203
8204 2019-06-13 Richard Biener <rguenther@suse.de>
8205
8206 PR tree-optimization/90856
8207 * tree-sra.c (build_ref_for_model): Only use
8208 build_reconstructed_reference when address-spaces are the same.
8209
8210 2019-06-13 Jakub Jelinek <jakub@redhat.com>
8211
8212 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
8213 wrap ei variable name in the declaration in ()s.
8214 (nvptx_single): Actually use mode_label variable. Formatting fix.
8215
8216 2019-06-13 Richard Biener <rguenther@suse.de>
8217
8218 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
8219 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
8220 also return the condition stmt.
8221 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
8222 loop we can version and version that, reusing the loop version
8223 created by if-conversion instead of versioning again.
8224
8225 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
8226
8227 * gimple-loop-versioning.cc (prune_loop_conditions): Use
8228 may_contain_p.
8229 * tree-vrp (value_range_base::may_contain_p): Call into
8230 value_inside_range.
8231 (value_inside_range): Make private inside value_range_base class.
8232 Take min/max from *this.
8233 (range_includes_p): Remove.
8234 * tree-vrp.h (value_range_base): Add value_inside_range.
8235 (range_includes_p): Remove.
8236 (range_includes_zero_p): Call may_contain_p.
8237 * vr-values.c (compare_range_with_value): Same.
8238
8239 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
8240
8241 * doc/extend.texi (ARC Function Attributes): Update info.
8242
8243 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
8244
8245 PR tree-optimization/89713
8246 * doc/invoke.texi (-ffinite-loops): Document new option.
8247 * common.opt (-ffinite-loops): New option.
8248 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
8249 IFN_GOACC_LOOP calls as necessary.
8250 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
8251 is finite.
8252 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
8253 IFN_GOACC_LOOP call is not used.
8254 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
8255
8256 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
8257
8258 PR target/88838
8259 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
8260 compare_type is not with Pmode size, we will create an IV with
8261 Pmode size with truncated use (i.e. converted to the correct type).
8262 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
8263 (vect_iv_limit_for_full_masking): New. Factored out of
8264 vect_set_loop_condition_masked.
8265 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
8266 (vect_iv_limit_for_full_masking): Declare.
8267
8268 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
8269
8270 PR target/88834
8271 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
8272 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
8273 (get_alias_ptr_type_for_ptr_address): Likewise.
8274 (add_iv_candidate_for_use): Add scaled index candidate if useful.
8275 * tree-ssa-address.c (preferred_mem_scale_factor): New.
8276 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
8277 allow_reg_index_p.
8278
8279 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
8280
8281 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
8282
8283 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
8284
8285 * common/config/pru/pru-common.c: New file.
8286 * config.gcc: Add PRU target.
8287 * config/pru/alu-zext.md: New file.
8288 * config/pru/constraints.md: New file.
8289 * config/pru/predicates.md: New file.
8290 * config/pru/pru-opts.h: New file.
8291 * config/pru/pru-passes.c: New file.
8292 * config/pru/pru-pragma.c: New file.
8293 * config/pru/pru-protos.h: New file.
8294 * config/pru/pru.c: New file.
8295 * config/pru/pru.h: New file.
8296 * config/pru/pru.md: New file.
8297 * config/pru/pru.opt: New file.
8298 * config/pru/t-pru: New file.
8299 * doc/extend.texi: Document PRU pragmas.
8300 * doc/invoke.texi: Document PRU-specific options.
8301 * doc/md.texi: Document PRU asm constraints.
8302
8303 2019-06-12 Martin Sebor <msebor@redhat.com>
8304
8305 PR middle-end/90676
8306 * tree-pretty-print.c (dump_mem_ref): New function. Include
8307 MEM_REF type in output when different size than operand.
8308 (dump_generic_node): Move code to dump_mem_ref and call it.
8309
8310 2019-06-12 Martin Sebor <msebor@redhat.com>
8311
8312 PR tree-optimization/90662
8313 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
8314 to arrays.
8315
8316 2019-06-12 Tom de Vries <tdevries@suse.de>
8317
8318 PR tree-optimization/90009
8319 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
8320
8321 2019-06-12 Martin Liska <mliska@suse.cz>
8322
8323 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
8324 the created map.
8325 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
8326 * mem-stats.h (mem_alloc_description::mem_alloc_description):
8327 Do not sanitize created maps.
8328
8329 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
8330
8331 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
8332 value_range::singleton_p.
8333 * tree-vrp.c (value_range_constant_singleton): Remove.
8334 * tree-vrp.h (value_range_constant_singleton): Remove.
8335 * vr-values.c (vr_values::singleton): Use
8336 value_range::singleton_p.
8337
8338 2019-06-12 Jakub Jelinek <jakub@redhat.com>
8339
8340 PR target/90811
8341 * cfgexpand.c (align_local_variable): Add really_expand argument,
8342 don't SET_DECL_ALIGN if it is false.
8343 (add_stack_var): Add really_expand argument, pass it through to
8344 align_local_variable.
8345 (expand_one_stack_var_1): Pass true as really_expand to
8346 align_local_variable.
8347 (expand_one_ssa_partition): Pass true as really_expand to
8348 add_stack_var.
8349 (expand_one_var): Pass really_expand through to add_stack_var.
8350
8351 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
8352
8353 * config/arm/iterators.md (VABAL): New int iterator.
8354 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
8355 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
8356 UNSPEC_VABAL_U values.
8357
8358 2019-06-12 Martin Liska <mliska@suse.cz>
8359
8360 * value-prof.c (stream_out_histogram_value): Only first value
8361 can't be negative.
8362
8363 2019-06-12 Jakub Jelinek <jakub@redhat.com>
8364
8365 PR c/90760
8366 * symtab.c (symtab_node::set_section): Allow being called on aliases
8367 as long as they aren't analyzed yet.
8368
8369 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
8370
8371 * config/mips/mips.c (mips_final_postscan_insn): Modify call
8372 to `mips_set_text_contents_type' to indicate whether a
8373 non-debug insn follows.
8374
8375 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
8376
8377 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
8378 enabling -mpcrel by default.
8379 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
8380 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
8381 that the test against -mcpu=future is done first. Then test if
8382 -mprefixed-addr is on for -mpcrel.
8383 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
8384
8385 2019-06-11 Jakub Jelinek <jakub@redhat.com>
8386
8387 PR target/90811
8388 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
8389 instead of and.u%d.
8390
8391 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
8392
8393 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
8394
8395 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
8396
8397 PR c++/90449 - add -Winaccessible-base option.
8398 * doc/invoke.texi (Winaccessible-base): Document.
8399
8400 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
8401
8402 PR tree-optimization/62041
8403 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
8404
8405 2019-06-11 Jason Merrill <jason@redhat.com>
8406
8407 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
8408 * tree.c (get_tree_code_name): Likewise.
8409 * print-tree.c (print_node): Only briefly print a node with an
8410 invalid code.
8411
8412 2019-06-11 Jakub Jelinek <jakub@redhat.com>
8413
8414 PR bootstrap/90819
8415 * trans-mem.c (tm_memopt_compute_available): Add assertion
8416 that blocks is not empty. Formatting fix.
8417
8418 2019-06-11 Martin Liska <mliska@suse.cz>
8419
8420 PR c++/87847
8421 * hash-table.h: Extend create_gcc, add one parameter
8422 that is passed into hash_table::hash_table.
8423
8424 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
8425
8426 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
8427 New prototype.
8428 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
8429 Emit clobber also for non-sse operations.
8430 (ix86_split_fp_absneg_operator): New function.
8431 * config/i386/i386.md (SSEMODEF): New mode iterator.
8432 (ssevecmodef): New mode attribute.
8433 (<code>tf2): Use absneg code iterator.
8434 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
8435 Add three-operand AVX alternatives.
8436 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
8437 Use absneg code iterator and X87MODEF mode iterator.
8438 (absneg fp_reg non-sse splitter): Call absneg code iterator
8439 and X87MODEF mode iterator.
8440 (absneg general_reg non-sse splitter): Use absneg code iterator
8441 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
8442 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
8443 code iterator. Add three-operand AVX alternative.
8444 (absneg sse_reg splitter): Use absneg code iterator
8445 and SSEMODEF mode iterator. Handle AVX operands.
8446 (absneg fp_reg splitter): Use absneg code iterator
8447 and MODEF mode iterator.
8448 (absneg general_reg splitter): Merge splitters using MODEF mode
8449 iterator. Use absneg code iterator. Call
8450 ix86_split_fp_absneg_operator.
8451 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
8452 Do not enable for non-sse modes before reload.
8453 (CSGNMODE): Remove.
8454 (CSGNVMODE): Ditto.
8455 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
8456 ssevecmodef mode attribute instaed of CSGNVMODE.
8457 (copysign<mode>3_const): Ditto.
8458 (copysign<mode>3_var): Ditto.
8459 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
8460 Use absneg code iterator. Simplify code using std::swap.
8461 * config/i386/predicates.md (absneg_operator): Remove.
8462
8463 2019-06-10 Martin Sebor <msebor@redhat.com>
8464
8465 * gimple-fold.c (get_range_strlen): Update comment that didn't
8466 make it into r267503 or related commits.
8467
8468 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
8469
8470 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
8471 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
8472
8473 2019-06-10 Jakub Jelinek <jakub@redhat.com>
8474
8475 * tree.def (OMP_SCAN): New tree code.
8476 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
8477 OMP_CLAUSE_EXCLUSIVE.
8478 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
8479 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
8480 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
8481 OMP_CLAUSE_{IN,EX}CLUSIVE.
8482 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
8483 * tree-nested.c (convert_nonlocal_reference_stmt,
8484 convert_local_reference_stmt, convert_gimple_call): Handle
8485 GIMPLE_OMP_SCAN.
8486 * tree-pretty-print.c (dump_omp_clause): Handle
8487 OMP_CLAUSE_{IN,EX}CLUSIVE.
8488 (dump_generic_node): Handle OMP_SCAN.
8489 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
8490 * gimple.h (gomp_scan): New type.
8491 (is_a_helper <gomp_scan *>::test,
8492 is_a_helper <const gomp_scan *>::test): New templates.
8493 (gimple_build_omp_scan): Declare.
8494 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
8495 gimple_omp_scan_set_clauses): New inline functions.
8496 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
8497 * gimple.c (gimple_build_omp_scan): New function.
8498 (gimple_copy): Handle GIMPLE_OMP_SCAN.
8499 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
8500 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
8501 GIMPLE_OMP_TASKGROUP.
8502 (dump_gimple_omp_scan): New function.
8503 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
8504 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
8505 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
8506 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
8507 (is_gimple_stmt): Handle OMP_SCAN.
8508 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
8509 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
8510 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
8511 mentioned in nested #pragma omp scan. Handle
8512 OMP_CLAUSE_{IN,EX}CLUSIVE.
8513 (gimplify_expr): Handle OMP_SCAN.
8514 * omp-low.c (check_omp_nesting_restrictions): For parent context,
8515 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
8516 simd constructs.
8517 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
8518 GIMPLE_OMP_SCAN.
8519
8520 2019-06-10 Martin Liska <mliska@suse.cz>
8521
8522 * ipa-cp.c (ignore_edge_p): New function.
8523 (build_toporder_info): Use it.
8524 * ipa-inline.c (ignore_edge_p): New function.
8525 (inline_small_functions): Use it.
8526 * ipa-pure-const.c (ignore_edge_for_nothrow):
8527 Verify opt_for_fn for caller and callee.
8528 (ignore_edge_for_pure_const): Likewise.
8529 * ipa-reference.c (ignore_edge_p): Extend to check
8530 for opt_for_fn.
8531 * ipa-utils.c (searchc): Refactor.
8532 * ipa-utils.h: Fix coding style.
8533
8534 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
8535
8536 * config/arc/arc.c (arc_rtx_costs): Update costs.
8537
8538 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
8539
8540 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
8541 (arc_split_ior): Likewise.
8542 (arc_check_mov_const): Likewise.
8543 (arc_split_mov_const): Likewise.
8544 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
8545 (arc_rtx_costs): Replace check Crr with Cax constraint.
8546 (prepare_move_operands): Cleanup, remove unused code.
8547 (arc_split_ior): New function.
8548 (arc_check_ior_const): Likewise.
8549 (arc_split_mov_const): Likewise.
8550 (arc_check_mov_const): Likewise.
8551 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
8552 in define_insn_and_split pattern.
8553 (iorsi3): Likewise.
8554 (mulsi3_v2): Add new matching variant.
8555 (andsi3_i): Cleanup pattern.
8556 (rotrsi3_cnt1): Update pattern.
8557 (rotrsi3_cnt8): New pattern.
8558 (ashlsi2_cnt8): Likewise.
8559 (ashlsi2_cnt16): Likewise.
8560 * config/arc/constraints.md (C0p): Update constraint.
8561 (Crr): Remove it.
8562 (C0x): New pattern.
8563 (Cax): New pattern.
8564
8565 2019-06-10 Martin Liska <mliska@suse.cz>
8566
8567 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
8568 Update coding style.
8569 (sem_item_optimizer::dump_cong_classes):
8570 Print how many items are in a non-singular class. Improve
8571 coding style.
8572
8573 2019-06-10 Martin Liska <mliska@suse.cz>
8574
8575 * value-prof.c (dump_histogram_value): Change dump format.
8576 (gimple_mod_subtract_transform): Remove legacy comment.
8577
8578 2019-06-10 Martin Liska <mliska@suse.cz>
8579
8580 * value-prof.c (dump_histogram_value): Print histogram values
8581 only if present.
8582
8583 2019-06-10 Martin Liska <mliska@suse.cz>
8584
8585 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
8586 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
8587 * ipa-profile.c (ipa_profile_generate_summary):
8588 Use get_most_common_single_value.
8589 * tree-profile.c (gimple_init_gcov_profiler):
8590 Instrument with __gcov_one_value_profiler_v2
8591 and __gcov_indirect_call_profiler_v4.
8592 * value-prof.c (dump_histogram_value):
8593 Print all values for HIST_TYPE_SINGLE_VALUE.
8594 (stream_out_histogram_value): Update assert for
8595 N values.
8596 (stream_in_histogram_value): Set number of
8597 counters for HIST_TYPE_SINGLE_VALUE.
8598 (get_most_common_single_value): New.
8599 (gimple_divmod_fixed_value_transform):
8600 Use get_most_common_single_value.
8601 (gimple_ic_transform): Likewise.
8602 (gimple_stringops_transform): Likewise.
8603 (gimple_find_values_to_profile): Set number
8604 of counters for HIST_TYPE_SINGLE_VALUE.
8605 * value-prof.h (get_most_common_single_value): New.
8606
8607 2019-06-10 Martin Liska <mliska@suse.cz>
8608
8609 * hash-map.h: Pass default value to hash_table ctor.
8610 * hash-table.h: Add default value to call of a ctor.
8611
8612 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
8613
8614 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
8615 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
8616
8617 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
8618
8619 PR target/90751
8620 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
8621 Call pa_output_function_label.
8622 (TARGET_ASM_FUNCTION_PROLOGUE): define.
8623 * config/pa/pa-protos.h (pa_output_function_label): Declare.
8624 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
8625 to declaration.
8626 (pa_linux_output_function_prologue): Declare.
8627 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
8628 (pa_output_function_label): New.
8629 (pa_output_function_prologue): Revise to use pa_output_function_label.
8630 (pa_linux_output_function_prologue): New.
8631 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
8632
8633 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
8634
8635 * tree-vrp.h (value_range_base::intersect): New.
8636 (value_range::intersect_helper): Move from here...
8637 (value_range_base::intersect_helper): ...to here.
8638 * tree-vrp.c (value_range::intersect_helper): Rename to...
8639 (value_range_base::intersect_helper): ...this, and rewrite to
8640 return a value instead of modifying THIS in place.
8641 Also, move equivalence handling...
8642 (value_range::intersect): ...here, while calling intersect_helper.
8643 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
8644 calling intersect.
8645 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
8646 Same.
8647 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
8648
8649 2019-06-07 Jakub Jelinek <jakub@redhat.com>
8650
8651 * Makefile.in (genprogerr): Add condmd.
8652 (genprog): Remove it here.
8653
8654 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
8655
8656 * doc/invoke.texi (AMD GCN Options): Add gfx906.
8657
8658 2019-06-07 Richard Biener <rguenther@suse.de>
8659
8660 PR debug/90574
8661 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
8662 that appear after user labels.
8663
8664 2019-06-07 Martin Liska <mliska@suse.cz>
8665
8666 * cselib.c (cselib_init): Disable hash table
8667 sanitization.
8668 * hash-set.h: Pass new default argument to m_table.
8669 * hash-table.c: Add global variable with hash table
8670 sanitization limit.
8671 * hash-table.h (Allocator>::hash_table): Add new argument
8672 to ctor.
8673 (hashtab_chk_error): New.
8674 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
8675 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
8676 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
8677
8678 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
8679
8680 * common.opt (flto-odr-type-merging): Ignore.
8681 * invoke.texi (-flto-odr-type-merging): Remove.
8682 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
8683 (can_be_vtable_hashed_p): Remove.
8684 (hash_odr_vtable): Remove.
8685 (odr_vtable_hasher::hash): Remove.
8686 (types_same_for_odr): Remove.
8687 (types_odr_comparable): Remove.
8688 (odr_vtable_hasher::equal): Remove.
8689 (odr_vtable_hash_type, odr_vtable_hash): Remove.
8690 (add_type_duplicate): Do not synchronize vtable and name hashtables.
8691 (get_odr_type): Do not use vtable hash.
8692 (dump_odr_type): Remove commented out code.
8693 (build_type_inheritance_graph): Do not allocate vtable hash.
8694 (rebuild_type_inheritance_graph): Do not delete vtable hash.
8695 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
8696 (odr_type_p): Likewise.
8697 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
8698 test.
8699
8700 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
8701
8702 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
8703 immediately after same_types_for_tbaa_p returns -1 and continue
8704 looking for possible exact match; if matching types are arrays
8705 watch for partial overlaps.
8706 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
8707 (indirect_refs_may_alias_p): Do type based disambiguation first;
8708 update comment.
8709
8710 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
8711
8712 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
8713
8714 2019-06-07 Martin Liska <mliska@suse.cz>
8715
8716 * doc/invoke.texi: Remove param.
8717 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
8718 Remove.
8719 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
8720 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
8721 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
8722 * profile.c (instrument_values): Remove
8723 HIST_TYPE_INDIR_CALL_TOPN.
8724 * tree-profile.c (init_ic_make_global_vars):
8725 Always build __gcov_indirect_call only.
8726 (gimple_init_gcov_profiler): Remove usage
8727 of PARAM_INDIR_CALL_TOPN_PROFILE.
8728 (gimple_gen_ic_profiler): Likewise.
8729 * value-prof.c (dump_histogram_value): Likewise.
8730 (stream_in_histogram_value): Likewise.
8731 (gimple_indirect_call_to_profile): Likewise.
8732 (gimple_find_values_to_profile): Likewise.
8733 * value-prof.h (enum hist_type): Likewise.
8734
8735 2019-06-07 Martin Liska <mliska@suse.cz>
8736
8737 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
8738 function.
8739
8740 2019-06-07 Martin Liska <mliska@suse.cz>
8741
8742 PR tree-optimization/78902
8743 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
8744 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
8745 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
8746 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
8747 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
8748 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
8749 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
8750 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
8751 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
8752 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
8753 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
8754 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
8755 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
8756 New.
8757 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
8758 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
8759 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
8760 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
8761 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
8762 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
8763 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
8764 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
8765 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
8766 warn_unused_result attribute.
8767 (BUILT_IN_STRDUP): Likewise.
8768 (BUILT_IN_STRNDUP): Likewise.
8769 (BUILT_IN_ALLOCA): Likewise.
8770 (BUILT_IN_CALLOC): Likewise.
8771 (BUILT_IN_MALLOC): Likewise.
8772 (BUILT_IN_REALLOC): Likewise.
8773
8774 2019-06-06 Jim Wilson <jimw@sifive.com>
8775
8776 PR target/89955
8777 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
8778 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
8779 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
8780
8781 2019-06-06 Martin Sebor <msebor@redhat.com>
8782
8783 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
8784 (handle_builtin_malloc): Remove trailing spaces.
8785 (handle_builtin_memset): Same.
8786 (handle_builtin_memcmp): Same.
8787 (compute_string_length): Same.
8788 (determine_min_objsize): Same.
8789 (handle_builtin_string_cmp): Same.
8790 (handle_char_store): Same. Break up excessively long line.
8791
8792 2019-06-06 Martin Jambor <mjambor@suse.cz>
8793
8794 * tree-sra.c (build_reconstructed_reference): Drop the alignment
8795 check.
8796
8797 2019-06-06 Martin Jambor <mjambor@suse.cz>
8798
8799 * tree-sra.c (struct access): New field grp_same_access_path.
8800 (dump_access): Dump it.
8801 (build_reconstructed_reference): New function.
8802 (build_ref_for_model): Use it if possible.
8803 (path_comparable_for_same_access): New function.
8804 (same_access_path_p): Likewise.
8805 (sort_and_splice_var_accesses): Set the new flag.
8806 (analyze_access_subtree): Likewise.
8807 (propagate_subaccesses_across_link): Propagate zero value of the new
8808 flag down the access tree.
8809
8810 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
8811
8812 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
8813 * config/gcn/gcn.opt (gpu_type): Add gfx906.
8814 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
8815 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
8816 Add gfx906.
8817
8818 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8819
8820 PR tree-optimization/90332
8821 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
8822 Handle VALS containing two vectors.
8823 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
8824 to...
8825 (@aarch64_combinez<mode>): ... This.
8826 (*aarch64_combinez_be<mode>): Rename to...
8827 (@aarch64_combinez_be<mode>): ... This.
8828 (vec_init<mode><Vhalf>): New define_expand.
8829 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
8830
8831 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8832
8833 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
8834 library functions only when not optimizing for size.
8835 (ashlsi3): Likewise.
8836 (ashrhi3): Likewise.
8837 (ashrsi3): Likewise.
8838 (lshrhi3): Likewise.
8839 (lshrsi3): Likewise.
8840
8841 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
8842
8843 PR rtl-optimization/88751
8844 * ira.c (ira): Use the number of the actually referenced registers
8845 when calculating the threshold.
8846
8847 2019-06-06 Jakub Jelinek <jakub@redhat.com>
8848
8849 * configure: Regenerate.
8850
8851 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8852
8853 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
8854 register if it is in memory, so the shift can be emulated with a rotate
8855 instruction.
8856 (ashrhi3): Likewise.
8857 (lshrhi3): Likewise.
8858
8859 2019-06-06 Martin Liska <mliska@suse.cz>
8860
8861 PR tree-optimization/87954
8862 * match.pd: Simplify mult where both arguments are 0 or 1.
8863
8864 2019-06-06 Richard Biener <rguenther@suse.de>
8865
8866 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
8867 put equivalences on UNDEFINED ranges.
8868 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
8869 Make sure to drop defs of stmts added during simplification
8870 to VARYING.
8871
8872 2019-06-06 Richard Biener <rguenther@suse.de>
8873
8874 * tree-ssa-structalias.c: Include tree-cfg.h.
8875 (make_heapvar): Do not make heap vars artificial.
8876 (find_func_aliases_for_builtin_call): Handle stack allocation
8877 functions.
8878 (find_func_aliases): Delay processing of simple enough returns
8879 in non-IPA mode.
8880 (set_uids_in_ptset): Adjust.
8881 (find_what_var_points_to): Likewise.
8882 (solve_constraints): Do not dump points-to sets here.
8883 (compute_points_to_sets): Post-process return statements,
8884 amending the escaped solution. Dump points-to sets afterwards.
8885 (ipa_pta_execute): Dump points-to sets.
8886
8887 2019-06-06 Martin Liska <mliska@suse.cz>
8888
8889 PR web/87933
8890 * doc/install.texi: Fix HTML headers and
8891 titles for 'Installing GCC' pages.
8892
8893 2019-06-06 Martin Liska <mliska@suse.cz>
8894
8895 * ipa-icf-gimple.h (dump_message_1): Remove.
8896 (dump_message): Likewise.
8897 (return_false_with_message_1): Print also file.
8898 (return_false_with_msg): Likewise.
8899 (return_with_result): Likewise.
8900 (return_with_debug): Likewise.
8901 * ipa-icf.c (sem_function::equals_private): Remove call
8902 to dump_message.
8903
8904 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
8905
8906 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
8907 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
8908 memory operand for it.
8909 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
8910
8911 2019-06-05 Martin Sebor <msebor@redhat.com>
8912
8913 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
8914 Adjust quoting and hyphenation.
8915 * convert.c (convert_to_real_1): Same.
8916 * gcc.c (driver_wrong_lang_callback): Same.
8917 (driver::handle_unrecognized_options): Same.
8918 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
8919 * opts-common.c (cmdline_handle_error): Same.
8920 (read_cmdline_option): Same.
8921 * opts-global.c (complain_wrong_lang): Same.
8922 (print_ignored_options): Same.
8923 (handle_common_deferred_options): Same.
8924 * pretty-print.h: Same.
8925 * print-rtl.c (debug_bb_n_slim): Same.
8926 * sched-rgn.c (make_pass_sched_fusion): Same.
8927 * tree-cfg.c (verify_gimple_assign_unary): Same.
8928 (verify_gimple_label): Same.
8929 * tree-ssa-operands.c (verify_ssa_operands): Same.
8930 * varasm.c (do_assemble_alias): Same.
8931 (assemble_alias): Same.
8932
8933 2019-06-05 Richard Henderson <rth@twiddle.net>
8934
8935 * config/alpha/alpha.c (direct_return): Move down after
8936 struct machine_function definition; use saved frame_size;
8937 return bool.
8938 (struct machine_function): Add sa_mask, sa_size, frame_size.
8939 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
8940 (alpha_compute_frame_layout): ... new function.
8941 (TARGET_COMPUTE_FRAME_LAYOUT): New.
8942 (alpha_initial_elimination_offset): Use saved sa_size.
8943 (alpha_vms_initial_elimination_offset): Likewise.
8944 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
8945 (alpha_expand_prologue): Use saved frame data. Merge integer
8946 and fp register save loops.
8947 (alpha_expand_epilogue): Likewise.
8948 (alpha_start_function): Use saved frame data.
8949 * config/alpha/alpha-protos.h (direct_return): Update.
8950 (alpha_sa_size): Remove.
8951
8952 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
8953
8954 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
8955 multiplication by a power-of-two value.
8956 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
8957 and turn the modulo operation into a masking operation.
8958
8959 2019-06-05 Jakub Jelinek <jakub@redhat.com>
8960
8961 PR debug/90733
8962 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
8963 with VOIDmode inner operands.
8964
8965 2019-06-05 Richard Biener <rguenther@suse.de>
8966
8967 PR middle-end/90726
8968 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8969 turn an expression graph into a tree.
8970
8971 2019-06-05 Jakub Jelinek <jakub@redhat.com>
8972
8973 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
8974 member.
8975 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
8976 treat it like explicit monotonic schedule modifier.
8977 (expand_omp_for): Initialize has_lastprivate_conditional.
8978 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
8979 schedule modifier.
8980
8981 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
8982 references, lookup in in hash map MEM_REF operand instead of the
8983 MEM_REF itself.
8984 (lower_omp_1): When looking for lastprivate conditional assignments,
8985 handle MEM_REFs with REFERENCE_TYPE operands.
8986
8987 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
8988 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
8989 and references a VLA. Handle references to non-VLAs if is_simd
8990 all privatization clauses like reductions.
8991 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
8992 If omp_is_reference, use always omp simd arrays and set
8993 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
8994 fails, emit reference initialization.
8995
8996 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
8997
8998 PR target/89803
8999 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
9000 _mm_mask_fpclass_sd_mask): New intrinsics.
9001 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
9002 * config/i386/i386-builtin.def
9003 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
9004 New builtins.
9005 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
9006 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
9007 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
9008 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
9009 case QI_FTYPE_V2SF_INT): Ditto.
9010 * config/i386/sse.md
9011 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
9012 Extended to insnstructions with mask operands.
9013
9014 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9015
9016 * config/rs6000/constraints.md (define_register_constraint "wp"):
9017 Delete.
9018 (define_register_constraint "wq"): Delete.
9019 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9020 (rs6000_init_hard_regno_mode_ok): Adjust.
9021 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9022 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
9023 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
9024 (define_mode_attr VSa): Delete.
9025 (define_mode_attr VSisa): New.
9026 (rest of file): Adjust.
9027 * doc/md.texi (Machine Constraints): Adjust.
9028
9029 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9030
9031 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
9032 (define_attr "enabled"): Handle those new isa values.
9033
9034 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9035
9036 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
9037 (define_mode_attr VSr5): Delete.
9038 (define_mode_attr VStype_sqrt): Delete.
9039 (define_mode_iterator VSX_SPDP): Delete.
9040 (define_mode_attr VS_spdp_res): Delete.
9041 (define_mode_attr VS_spdp_insn): Delete.
9042 (define_mode_attr VS_spdp_type): Delete.
9043 (*vsx_sqrt<mode>2): Adjust.
9044 (vsx_<VS_spdp_insn>): Delete, split to...
9045 (vsx_xscvdpsp): ... this. New. And...
9046 (vsx_xvcvspdp): ... this. New. And...
9047 (vsx_xvcvdpsp): ... this. New.
9048
9049 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9050
9051 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
9052 and V2DF.
9053 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
9054 (rest of file): Adjust.
9055
9056 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9057
9058 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
9059 (vsx_extract_<mode>_var): Ditto.
9060
9061 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9062
9063 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
9064 with just "wa".
9065
9066 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9067
9068 * config/rs6000/constraints.md (define_register_constraint "ww"):
9069 Delete.
9070 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9071 (rs6000_init_hard_regno_mode_ok): Adjust.
9072 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9073 RS6000_CONSTRAINT_ww.
9074 * config/rs6000/rs6000.md: Adjust.
9075 * config/rs6000/vsx.md: Adjust.
9076 * doc/md.texi (Machine Constraints): Adjust.
9077
9078 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9079
9080 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
9081 (define_mode_attr sd): New.
9082 (define_mode_attr s): New.
9083 (define_mode_attr Ftrad): Delete.
9084 (define_mode_attr Fvsx): Delete.
9085 (define_mode_attr Fs): Delete.
9086 (rest of file): Use the new mode attributes.
9087 * config.rs6000/vsx.md: Use the new mode attributes.
9088
9089 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9090
9091 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
9092 with just "wa".
9093
9094 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9095
9096 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
9097 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
9098 used with VSX_B, VSX_D, or VSX_F, with just "wa".
9099
9100 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
9101
9102 PR target/78263
9103 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
9104 C++ with strict ANSI requirements.
9105
9106 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
9107
9108 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
9109 computations when step is 1.
9110
9111 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9112
9113 * config/rs6000/constraints.md (define_register_constraint "wf"):
9114 Delete.
9115 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9116 (rs6000_init_hard_regno_mode_ok): Adjust.
9117 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9118 RS6000_CONSTRAINT_wf.
9119 * config/rs6000/rs6000.md: Adjust.
9120 * config/rs6000/vsx.md: Adjust.
9121 * doc/md.texi (Machine Constraints): Adjust.
9122
9123 2019-06-04 Andrew Pinski <apinski@marvell.com>
9124
9125 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
9126 Fix ILP32 value.
9127
9128 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9129
9130 * config/rs6000/constraints.md (define_register_constraint "wd"):
9131 Delete.
9132 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9133 (rs6000_init_hard_regno_mode_ok): Adjust.
9134 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9135 RS6000_CONSTRAINT_wd.
9136 * config/rs6000/rs6000.md: Adjust.
9137 * config/rs6000/vsx.md: Adjust.
9138 * doc/md.texi (Machine Constraints): Adjust.
9139
9140 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9141
9142 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
9143 (rest of file): Adjust.
9144
9145 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9146
9147 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
9148 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
9149 (vsx_splat_<mode>_reg): Adjust.
9150
9151 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9152
9153 * config/rs6000/constraints.md (define_register_constraint "ws"):
9154 Delete.
9155 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9156 (rs6000_init_hard_regno_mode_ok): Adjust.
9157 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9158 RS6000_CONSTRAINT_ws.
9159 * config/rs6000/rs6000.md: Adjust.
9160 * config/rs6000/vsx.md: Adjust.
9161 * doc/md.texi (Machine Constraints): Adjust.
9162
9163 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9164
9165 * config/rs6000/constraints.md (define_register_constraint "wv"):
9166 Delete.
9167 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9168 (rs6000_init_hard_regno_mode_ok): Adjust.
9169 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9170 RS6000_CONSTRAINT_wv.
9171 * config/rs6000/rs6000.md: Adjust.
9172 * config/rs6000/vsx.md: Adjust.
9173 * doc/md.texi (Machine Constraints): Adjust.
9174
9175 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
9176
9177 * config/rs6000/constraints.md (define_register_constraint "wi"):
9178 Delete.
9179 (define_register_constraint "wt"): Delete.
9180 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9181 (rs6000_init_hard_regno_mode_ok): Adjust.
9182 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9183 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
9184 * config/rs6000/rs6000.md: Adjust.
9185 * config/rs6000/vsx.md: Adjust.
9186 * doc/md.texi (Machine Constraints): Adjust.
9187
9188 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
9189
9190 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
9191 const.
9192 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
9193 default_elf_asm_output_external.
9194
9195 2019-06-04 Martin Liska <mliska@suse.cz>
9196
9197 * ipa-icf.c (INCLUDE_LIST): Remove.
9198 (sem_item_optimizer::execute): Remove call to init_wpa.
9199 * ipa-icf.h (init_wpa): Remove.
9200
9201 2019-06-04 Jakub Jelinek <jakub@redhat.com>
9202
9203 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
9204 conditional on combined for simd.
9205 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
9206 member.
9207 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
9208 constructs, don't remove lastprivate_conditional_map, but instead set
9209 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
9210 to parent construct temporaries.
9211 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
9212 like !ctx->lastprivate_conditional_map.
9213 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
9214 use up->outer context instead of up.
9215 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
9216 gimple_omp_for_combined_p.
9217 (expand_omp_for_static_nochunk): Likewise.
9218 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
9219 probably moved over into expand_omp_for_generic rather than being copied
9220 there.
9221
9222 2019-06-04 Martin Liska <mliska@suse.cz>
9223
9224 * value-prof.c (dump_histogram_value): Fix typo.
9225 (gimple_mod_subtract_transform): Likewise.
9226
9227 2019-06-04 Richard Biener <rguenther@suse.de>
9228
9229 PR middle-end/90726
9230 * tree-chrec.c (chrec_contains_symbols): Add to visited.
9231 (tree_contains_chrecs): Likewise.
9232 (chrec_contains_symbols_defined_in_loop): Move here and avoid
9233 exponential behaivor from ...
9234 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9235 ... here.
9236 (expression_expensive_p): Avoid exponential behavior and compute
9237 expanded size, rejecting any expansion.
9238 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
9239 (idx_contains_abnormal_ssa_name_p): Likewise.
9240 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
9241 (contains_abnormal_ssa_name_p): Simplify and use
9242 walk_tree_without_duplicates.
9243
9244 2019-06-04 Richard Biener <rguenther@suse.de>
9245
9246 PR tree-optimization/90738
9247 Revert
9248 2019-06-03 Richard Biener <rguenther@suse.de>
9249
9250 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
9251 full reference tree and record in ref->ref.
9252 (vn_reference_lookup_3): Pass in original ref to
9253 ao_ref_init_from_vn_reference.
9254 (vn_reference_lookup): Likewise.
9255 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
9256 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9257 Handle non-decl bases in the original reference.
9258
9259 2019-06-04 Martin Liska <mliska@suse.cz>
9260
9261 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
9262 number of references.
9263 (sem_item_optimizer::do_congruence_step):
9264 (sem_item_optimizer::worklist_push): Dump how references
9265 a class has.
9266 (sem_item_optimizer::worklist_pop): Use heap.
9267 (sem_item_optimizer::process_cong_reduction): Likewise.
9268 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
9269
9270 2019-06-04 Martin Liska <mliska@suse.cz>
9271
9272 * ipa-icf.h (struct sem_usage_pair_hash): New.
9273 (sem_usage_pair_hash::hash): Likewise.
9274 (sem_usage_pair_hash::equal): Likewise.
9275 (struct sem_usage_hash): Likewise.
9276 * ipa-icf.c (sem_item::sem_item): Initialize
9277 referenced_by_count.
9278 (sem_item::add_reference): Register a reference
9279 in ref_map and not in target->usages.
9280 (sem_item::setup): Remove initialization of
9281 dead vectors.
9282 (sem_item::~sem_item): Remove usage of dead vectors.
9283 (sem_item::dump): Remove dump of references.
9284 (sem_item_optimizer::sem_item_optimizer): Initialize
9285 m_references.
9286 (sem_item_optimizer::read_section): Remove useless
9287 dump.
9288 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
9289 (sem_item_optimizer::build_graph): Pass m_references
9290 to ::add_reference.
9291 (sem_item_optimizer::verify_classes): Remove usage of dead
9292 vectors.
9293 (sem_item_optimizer::traverse_congruence_split): Return true
9294 when a class is split.
9295 (sem_item_optimizer::do_congruence_step_for_index): Use
9296 hash_map for look up of (sem_item *, index). That brings
9297 significant speed up.
9298 (sem_item_optimizer::do_congruence_step): Return true
9299 when a split is done.
9300 (congruence_class::is_class_used): Use referenced_by_count.
9301
9302 2019-06-04 Alan Modra <amodra@gmail.com>
9303
9304 PR target/90689
9305 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
9306 error.
9307
9308 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
9309
9310 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
9311 * config/rs6000/rs6000.c (direct_move_p): Adjust.
9312 (rs6000_secondary_reload_simple_move): Adjust.
9313 (rs6000_opt_masks): Neuter the "mfpgpr" option.
9314 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
9315 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
9316 comment.
9317 (power6x): Adjust.
9318 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
9319 (floatunssi<mode>2_lfiwzx): Adjust.
9320 (fix_trunc<mode>si2_stfiwx): Adjust.
9321 (fixuns_trunc<mode>si2_stfiwx): Adjust.
9322 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
9323 (mfpgpr): Mark as deprecated.
9324 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
9325 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
9326 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
9327
9328 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
9329
9330 * config/rs6000/constraints.md (define_register_constraint "wg"):
9331 Delete.
9332 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9333 RS6000_CONSTRAINT_wg.
9334 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9335 (rs6000_init_hard_regno_mode_ok): Adjust.
9336 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
9337 Delete "wg" alternatives.
9338 * doc/md.texi (Machine Constraints): Adjust.
9339
9340 2019-06-03 Alan Modra <amodra@gmail.com>
9341
9342 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
9343 (get_uncond_jump_length): Assert length less than INT_MAX and
9344 non-negative.
9345
9346 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
9347
9348 PR middle-end/64242
9349 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
9350 block.
9351 (expand_builtin_nonlocal_goto): Likewise.
9352
9353 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
9354
9355 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
9356 (aarch64_asm_output_external): Declare.
9357 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
9358 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
9359 (aarch64_asm_output_alias): New.
9360 (aarch64_asm_output_external): New.
9361 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
9362 (ASM_OUTPUT_EXTERNAL): Define.
9363
9364 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
9365 * tree-vrp.h (value_range_base::nonzero_p): New.
9366 (value_range_base::set_nonnull): Rename to...
9367 (value_range_base::set_nonzero): ...this.
9368 (value_range_base::set_null): Rename to...
9369 (value_range_base::set_zero): ...this.
9370 (value_range::set_nonnull): Remove.
9371 (value_range::set_null): Remove.
9372 * tree-vrp.c (range_is_null): Remove.
9373 (range_is_nonnull): Remove.
9374 (extract_range_from_binary_expr): Use value_range_base::*zero_p
9375 instead of range_is_*null.
9376 (extract_range_from_unary_expr): Same.
9377 (value_range_base::set_nonnull): Rename to...
9378 (value_range_base::set_nonzero): ...this.
9379 (value_range::set_nonnull): Remove.
9380 (value_range_base::set_null): Rename to...
9381 (value_range_base::set_zero): ...this.
9382 (value_range::set_null): Remove.
9383 (extract_range_from_binary_expr): Rename set_*null uses to
9384 set_*zero.
9385 (extract_range_from_unary_expr): Same.
9386 (union_helper): Same.
9387 * vr-values.c (get_value_range): Use set_*zero instead of
9388 set_*null.
9389 (vr_values::extract_range_from_binary_expr): Same.
9390 (vr_values::extract_range_basic): Same.
9391
9392 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
9393
9394 PR driver/90684
9395 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
9396
9397 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9398
9399 * config/aarch64/iterators.md (MAX_OPP): New code attr.
9400 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
9401 Rename to...
9402 (aarch64_<su>abd<mode>_3): ... This.
9403 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
9404
9405 2019-06-03 Richard Biener <rguenther@suse.de>
9406
9407 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
9408 full reference tree and record in ref->ref.
9409 (vn_reference_lookup_3): Pass in original ref to
9410 ao_ref_init_from_vn_reference.
9411 (vn_reference_lookup): Likewise.
9412 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
9413 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9414 Handle non-decl bases in the original reference.
9415
9416 2019-06-03 Martin Liska <mliska@suse.cz>
9417
9418 * doc/generic.texi: Remove Java Trees.
9419
9420 2019-06-03 Martin Liska <mliska@suse.cz>
9421
9422 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
9423 returns 0 when operands are equal.
9424
9425 2019-06-03 Richard Biener <rguenther@suse.de>
9426
9427 PR tree-optimization/90716
9428 * tree-loop-distribution.c (destroy_loop): Process blocks in
9429 correct order.
9430
9431 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9432
9433 PR target/88837
9434 * vector-builder.h (vector_builder::count_dups): New method.
9435 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
9436 Declare prototype.
9437 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
9438 (vec_init<mode><Vel>): New pattern.
9439 * config/aarch64/aarch64.c (emit_insr): New function.
9440 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
9441 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
9442 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
9443 (aarch64_sve_expand_vector_init): Define two overloaded functions.
9444
9445 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
9446
9447 PR tree-optimization/90681
9448 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
9449 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
9450 special case for SLP, but fail on non-groupped loads.
9451
9452 2019-06-03 Martin Liska <mliska@suse.cz>
9453
9454 * cfg.c (debug): Use TDF_DETAILS for debug and
9455 print edge info only once.
9456
9457 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
9458
9459 PR fortran/90539
9460 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
9461
9462 2019-06-01 Martin Sebor <msebor@redhat.com>
9463
9464 PR middle-end/90694
9465 * tree-pretty-print.c (dump_generic_node): Add parentheses.
9466
9467 2019-05-31 Jan Hubicka <jh@suse.cz>
9468
9469 * alias.c: Include ipa-utils.h.
9470 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
9471 * ipa-devirt.c (prevailing_odr_type): New.
9472 * ipa-utils.h (previaling_odr_type): Declare.
9473
9474 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
9475 Hongtao Liu <hongtao.liu@intel.com>
9476
9477 PR target/89355
9478 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
9479 NOTE_INSN_DELETED_LABEL check.
9480
9481 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
9482 Robert Suchanek <robert.suchanek@mips.com>
9483
9484 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
9485 and 3rd operands of the fmadd/fmsub/maddv builtin.
9486
9487 2019-05-31 Jakub Jelinek <jakub@redhat.com>
9488
9489 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
9490 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
9491 on OMP_SIMD if not nested inside of worksharing loop that also has
9492 lastprivate conditional clause for the same decl.
9493 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
9494 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
9495 on simd.
9496 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
9497 on simd construct.
9498 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
9499 on simd construct.
9500 (lower_lastprivate_clauses): Likewise.
9501 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
9502 calling lower_rec_input_clauses.
9503 (lower_omp_for): Likewise.
9504 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
9505 clause on simd construct.
9506 * omp-expand.c (expand_omp_simd): Initialize cond_var if
9507 OMP_CLAUSE__CONDTEMP_ clause is present.
9508
9509 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
9510 ivar and lvar.
9511
9512 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
9513
9514 PR c/43673
9515 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
9516 TEX_D32, TEX_D64 or TEX_D128.
9517
9518 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
9519
9520 * match.pd (~(vec?cst1:cst2)): New transformation.
9521
9522 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
9523
9524 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
9525 ((size_t)(A /[ex] B) CMP C): New transformation.
9526
9527 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
9528
9529 * doc/md.texi: Document define_insn_and_rewrite.
9530 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
9531 * gensupport.c (queue_elem): Update comment.
9532 (replace_operands_with_dups): New function.
9533 (gen_rewrite_sequence): Likewise.
9534 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
9535 * read-rtl.c (apply_subst_iterator): Likewise.
9536 (add_condition_to_rtx, named_rtx_p): Likewise.
9537 (rtx_reader::read_rtx_operand): Likewise.
9538 * config/aarch64/aarch64-sve.md
9539 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
9540 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
9541 define_insn_and_rewrite.
9542 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
9543 Remove separate define_split.
9544
9545 2019-05-31 Jan Hubicka <jh@suse.cz>
9546
9547 * tree-ssa-alias.c (type_has_components_p): New function.
9548 (aliasing_component_refs_p): Use it.
9549
9550 2019-05-31 Martin Liska <mliska@suse.cz>
9551
9552 * gdbhooks.py: Add const_tree to TreePrinter.
9553
9554 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
9555
9556 PR debug/86964
9557 * common.opt (feliminate-unused-debug-symbols): Enable by default.
9558 * doc/invoke.texi (Debugging Options): Document new default of
9559 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
9560
9561 2019-05-31 Jakub Jelinek <jakub@redhat.com>
9562
9563 PR tree-optimization/90671
9564 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
9565 template_block used to be empty on the first call, don't use
9566 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
9567 seq with bb_seq and set it with set_bb_seq.
9568
9569 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
9570
9571 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
9572
9573 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
9574 Michael Meissner <meissner@linux.ibm.com>
9575
9576 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
9577 (prefixed_mem_operand): Likewise.
9578 (non_prefixed_mem_operand): Likewise.
9579 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
9580 prototype.
9581 * config/rs6000/rs6000.c (print_operand_address): Handle
9582 PC-relative addresses.
9583 (mode_supports_prefixed_address_p): New function.
9584 (rs6000_prefixed_address): New function.
9585 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
9586 (SYMBOL_REF_PCREL_P): Likewise.
9587
9588 2019-05-30 Jakub Jelinek <jakub@redhat.com>
9589
9590 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
9591 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
9592 (gimplify_omp_for): If worksharing loop with lastprivate conditional
9593 is nested inside of parallel region, add _condtemp_ clause to both.
9594 * tree-nested.c (convert_nonlocal_omp_clauses,
9595 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
9596 assertion failure.
9597 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
9598 member.
9599 * omp-general.c (omp_extract_for_data): Compute it.
9600 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
9601 (lower_rec_input_clauses): Likewise.
9602 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
9603 clause is already present, just add one further one after it.
9604 (lower_lastprivate_clauses): Handle cond_ptr with array type.
9605 (lower_send_shared_vars): Clear _condtemp_ vars.
9606 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
9607 or section or taskgroup.
9608 * omp-expand.c (determine_parallel_type): Disallow combining only if
9609 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
9610 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
9611 (expand_omp_for_generic, expand_omp_for_static_nochunk,
9612 expand_omp_for_static_chunk, expand_omp_for): Use
9613 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
9614 determine if a special set of API routines are needed and if condtemp
9615 needs to be initialized, while always initialize cond_var if
9616 fd->lastprivate_conditional is non-zero.
9617
9618 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
9619 Michael Meissner <meissner@linux.ibm.com>
9620
9621 * config/rs6000/constraints.md (eI): New constraint.
9622 * config/rs6000/predicates.md (cint34_operand): New predicate.
9623 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
9624 (SIGNED_34BIT_OFFSET_P): Likewise.
9625 * doc/md.texi (eI): Document constraint.
9626
9627 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
9628
9629 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
9630
9631 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
9632 Michael Meissner <meissner@linux.ibm.com>
9633
9634 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
9635 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
9636 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
9637 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
9638 (OTHER_FUTURE_MASKS): Likewise.
9639 (POWERPC_MASKS): Likewise.
9640 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
9641 specified without -mprefixed-addr or -mcpu=future. Error if
9642 -mprefixed-addr is specified without -mcpu=future.
9643 (rs6000_opt_masks): Add entry for prefixed-addr.
9644 * rs6000.opt (mprefixed-addr): New option.
9645
9646 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
9647
9648 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
9649 cfun->is_thunk check.
9650
9651 2019-05-30 Jakub Jelinek <jakub@redhat.com>
9652
9653 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
9654 to length.
9655
9656 2019-05-30 Martin Liska <mliska@suse.cz>
9657
9658 * gdbinit.in: Fix 'ptc' command. Add trt
9659 that prints TREE_TYPE($).
9660
9661 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
9662 Alan Modra <amodra@gmail.com>
9663
9664 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
9665 calls here...
9666 (rs6000_indirect_call_template_1): ...and here.
9667 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
9668 plt16_ha, plt16_lo, mtctr indirect calls. Use
9669 rs6000_pltseq_enum.
9670 (rs6000_decl_ok_for_sibcall): New function.
9671 (rs6000_function_ok_for_sibcall): Refactor.
9672 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
9673 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
9674 when pcrel. Reorganize.
9675 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
9676 * rs6000.h (rs6000_pltseq_enum): New enum.
9677 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
9678 (*pltseq_tocsave): Use rs6000_pltseq_enum.
9679 (*pltseq_plt16_ha): Likewise.
9680 (*pltseq_plt16_lo): Likewise.
9681 (*pltseq_mtctr): Likewise.
9682 (*pltseq_plt_pcrel): New insn.
9683 (*call_local_aix): Handle @notoc calls.
9684 (*call_value_local_aix): Likewise.
9685 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
9686 (*call_value_nonlocal_aix): Likewise.
9687 (*call_indirect_pcrel): New insn.
9688 (*call_value_indirect_pcrel): Likewise.
9689
9690 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
9691
9692 * config/i386/sse.md (*save_multiple<mode>): Rename from
9693 save_multiple<mode>.
9694 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
9695 (*restore_multiple_and_return<mode>): Rename from
9696 restore_multiple_and_return<mode>.
9697 (*restore_multiple_leave_return<mode>): Rename from
9698 restore_multiple_leave_return<mode>.
9699
9700 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
9701
9702 * config.gcc (rx-*-linux*): New target.
9703 * config/rx/elf.opt: New file.
9704 * config/rx/linux.h: Likewise.
9705 * config/rx/t-linux: Likewise.
9706 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
9707 make it zero.
9708 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
9709 (ASM_APP_OFF): Likewise.
9710 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
9711 moved elsewhere.
9712
9713 2019-05-29 Jan Hubicka <jh@suse.cz>
9714
9715 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
9716 variants are pointer equivalent.
9717
9718 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
9719
9720 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
9721 * config/aarch64/aarch64-sve2.md: New file.
9722 (<u>avg<mode>3_floor): New pattern.
9723 (<u>avg<mode>3_ceil): Likewise.
9724 (*<sur>h<addsub><mode>): Likewise.
9725 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
9726 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
9727
9728 2019-05-29 Jakub Jelinek <jakub@redhat.com>
9729
9730 PR bootstrap/90543
9731 * optc-save-gen.awk: In cl_optimization_print, use correct condition
9732 for var_opt_string printing. In cl_optimization_print_diff, print
9733 (null) instead of invoking undefined behavior if one of the
9734 var_opt_string pointers is NULL and use && instead of first || in the
9735 guarding condition. For var_target_other options, handle const char *
9736 target variables similarly to const char * optimize node variables.
9737
9738 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
9739
9740 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
9741 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
9742 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
9743 Add autib1716 and pacib1716 initialisation.
9744 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
9745 for autib1716 and pacib1716.
9746 * config/aarch64/aarch64-protos.h (aarch64_key_type,
9747 aarch64_post_cfi_startproc): Define.
9748 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
9749 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
9750 aarch64_handle_pac_ret_protection): Set default sign key to A.
9751 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
9752 aarch64_expand_prologue): Add check for b-key.
9753 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
9754 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
9755 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
9756 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
9757 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
9758 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
9759 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
9760 * config/aarch64/aarch64.md (do_return): Add check for b-key.
9761 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
9762 pauth_hint_num_a with pauth_hint_num.
9763 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
9764 pauth_hint_num_a with pauth_hint_num.
9765 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
9766 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
9767 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
9768 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
9769 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
9770 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
9771 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
9772 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
9773 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
9774 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
9775 UNSPEC_AUTIA1716 respectively.
9776 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
9777 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
9778 UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
9779 * doc/invoke.texi (-mbranch-protection): Add b-key type.
9780 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
9781 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
9782
9783 2019-05-29 Jakub Jelinek <jakub@redhat.com>
9784
9785 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
9786 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
9787 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
9788 explicit clause on combined parallel into implicit shared clause.
9789 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
9790 and firstprivate if the decl has one too from combined parallel to
9791 the worksharing construct.
9792
9793 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
9794 Michael Meissner <meissner@linux.ibm.com>
9795
9796 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
9797
9798 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
9799
9800 * rtl.h (LABEL_REF_P): New #define.
9801
9802 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
9803
9804 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
9805
9806 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
9807
9808 * internal-fn.c: Marked mask_load_direct as vectorizable.
9809 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
9810 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
9811 combined even if masks different with allow_slp_p param.
9812 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
9813 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
9814 dissolve SLP-only vectorizable groups when SLP has been discarded.
9815 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
9816 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
9817 masks.
9818 (vect_build_slp_tree_1): Fixed comment typo.
9819 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
9820 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
9821 loads for SLP only.
9822 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
9823 vectorizable.
9824 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
9825
9826 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9827
9828 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
9829 Remove obsolete use_thunk reference.
9830 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
9831 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
9832 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
9833 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
9834 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
9835 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
9836 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
9837 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
9838 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
9839
9840 2019-05-28 Nathan Sidwell <nathan@acm.org>
9841
9842 * tree.h (IDENTIFIER_ANON_P): New.
9843 (anon_aggrname_format, anon_aggname_p): Don't declare.
9844 (make_anon_name): Declare.
9845 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
9846 (hash_tree): Likewise.
9847 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
9848 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
9849 (anon_cnt, make_anon_name): New.
9850
9851 2019-05-28 Martin Liska <mliska@suse.cz>
9852
9853 PR other/90315
9854 * opts-global.c (decode_options): Print help for all
9855 help_option_arguments.
9856 * opts.c (print_help): Add new argument.
9857 (common_handle_option): Remember all values into
9858 help_option_arguments.
9859 * opts.h (print_help): Add new argument.
9860
9861 2019-05-28 Martin Liska <mliska@suse.cz>
9862
9863 PR ipa/90555
9864 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
9865 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
9866 (func_checker::compare_bb): Call compare_loops.
9867
9868 2019-05-27 Jakub Jelinek <jakub@redhat.com>
9869
9870 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
9871 on sections construct.
9872 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
9873 construct.
9874 (lower_omp_sections): Handle lastprivate conditional.
9875 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
9876 lastprivate_conditional_map.
9877 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
9878
9879 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
9880 critical, taskgroup and section regions when looking for a region
9881 with non-NULL lastprivate_conditional_map.
9882
9883 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
9884
9885 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
9886 (*ix86_gen_sub3): Ditto.
9887 (*ix86_gen_sub3_carry): Ditto.
9888 (*ix86_gen_one_cmpl2): Ditto.
9889 (*ix86_gen_andsp): Ditto.
9890 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
9891 (gen_and2_insn): New static function.
9892 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
9893 Use gen_add3_insn instead of ix86_gen_add3.
9894 (ix86_expand_split_stack_prologue): Use gen_add2_insn
9895 instead of ix86_gen_add3.
9896 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
9897 Use gen_sub3_insn instead of ix86_gen_sub3.
9898 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
9899 instead of ix86_gen_add3.
9900 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
9901 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
9902 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
9903 * config/i386/i386-options.c (ix86_option_override_internal):
9904 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9905 ix86_gen_one_cmpl2 and ix86_gen_andsp.
9906
9907 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
9908
9909 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
9910 and DW_OP_GNU_const_index opcodes.
9911
9912 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
9913
9914 * config/i386/i386.h (STACK_SIZE_MODE): Define.
9915
9916 2019-05-27 Richard Biener <rguenther@suse.de>
9917
9918 PR tree-optimization/90637
9919 * tree-ssa-sink.c (statement_sink_location): Honor the
9920 computed sink location for single-uses.
9921
9922 2019-05-27 Richard Biener <rguenther@suse.de>
9923
9924 PR middle-end/90610
9925 * match.pd (vec_perm): Avoid clobbering op0 when not generating
9926 a bit-insert.
9927
9928 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
9929
9930 * config/i386/i386.md (@sub<mode>3_carry): Rename
9931 from sub<mode>3_carry.
9932 (@leave_<mode>): New expander.
9933 (*leave): Rename from leave.
9934 (*leave_rex64): Rename from leave_rex64.
9935 (@monitorx_<mode>): Rename from monitorx_<mode>.
9936 (@clzero_<mode>): Rename from clzero_<mode>.
9937 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
9938 from sse3_monitor_<mode>.
9939 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
9940 (*ix86_gen_leave): Ditto.
9941 (*ix86_gen_monitor): Ditto.
9942 (*ix86_gen_monitorx): Ditto.
9943 (*ix86_gen_clzero): Ditto.
9944 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
9945 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
9946 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
9947 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
9948 Use gen_sse3_monitor instead of ix86_gen_monitor.
9949 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
9950 instead of ix86_gen_monitorx.
9951 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
9952 instead of ix86_gen_clzero.
9953 * config/i386/i386-options.c (ix86_option_override_internal):
9954 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
9955 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
9956
9957 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
9958
9959 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
9960 Rename from tls_global_dynamic_64_<mode>.
9961 (@tls_local_dynamic_base_64_<mode>): Rename from
9962 tls_local_dynamic_base_64_<mode>.
9963 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
9964 Remove indirect function.
9965 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
9966 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
9967 instead of ix86_gen_tls_global_dynamic_64.
9968 Use gen_tls_local_dynamic_base_64 instead of
9969 ix86_gen_tls_local_dynamic_base_64.
9970 * config/i386/i386-options.c (ix86_option_override_internal):
9971 Do not initialize ix86_gen_tls_global_dynamic_64 and
9972 ix86_gen_tls_local_dynamic_base_64.
9973
9974 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
9975
9976 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
9977 Rename from pro_epilogue_adjust_stack_<mode>_add.
9978 (@pro_epilogue_adjust_stack_sub_<mode>)
9979 Rename from pro_epilogue_adjust_stack_<mode>_sub.
9980 (@allocate_stack_worker_probe_<mode>):
9981 Rename from allocate_stack_worker_probe_<mode>.
9982 (allocate_stack): Use gen_allocate_stack_worker_probe.
9983 (probe_stack): Use gen_probe_stack_1.
9984 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
9985 (@adjust_stack_and_probe_<mode>): Rename from
9986 adjust_stack_and_probe<mode>.
9987 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
9988 (stack_protect_set): Use gen_stack_protect_set_1.
9989 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
9990 (stack_protect_test): Use gen_stack_protect_test_1.
9991 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
9992 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
9993 Remove indirect function.
9994 (*ix86_gen_adjust_stack_and_probe): Ditto.
9995 (*ix86_gen_probe_stack_range): Ditto.
9996 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
9997 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
9998 (ix86_adjust_stack_and_probe_stack_clash): Use
9999 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
10000 (ix86_adjust_stack_and_probe): Ditto.
10001 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
10002 of ix86_gen_probe_stack_range.
10003 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
10004 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
10005 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
10006 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
10007 CODE_FOR_stack_protect_test_{si,di}.
10008 * config/i386/i386-options.c (ix86_option_override_internal):
10009 Do not initialize ix86_gen_allocate_stack_worker,
10010 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
10011
10012 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
10013
10014 * doc/invoke.texi (Link Options): Many editorial changes around
10015 -flinker-output.
10016
10017 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10018
10019 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
10020 pre-Solaris 11 referene and most Studio compiler details.
10021
10022 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
10023
10024 PR target/90530
10025 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
10026 DImode to SImode in floating-point registers on 64-bit target.
10027 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
10028 register_operand in xmpyu patterns.
10029
10030 2019-05-24 Jakub Jelinek <jakub@redhat.com>
10031
10032 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
10033 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
10034 OMP_CLAUSE__REDUCTEMP_.
10035 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
10036 OMP_CLAUSE__CONDTEMP_.
10037 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
10038 * tree-pretty-print.c (dump_omp_clause): Likewise.
10039 * tree-nested.c (convert_nonlocal_omp_clauses,
10040 convert_local_omp_clauses): Likewise.
10041 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
10042 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
10043 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
10044 on OMP_FOR.
10045 (gimplify_omp_for): Warn and disable conditional modifier from
10046 lastprivate on loop iterators.
10047 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
10048 member.
10049 * omp-general.c (omp_extract_for_data): Initialize it.
10050 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
10051 member.
10052 (delete_omp_context): Delete it.
10053 (lower_lastprivate_conditional_clauses): New function.
10054 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
10055 handle lastprivate conditional clauses.
10056 (lower_reduction_clauses): Add CLIST argument, emit it into
10057 the critical section if any.
10058 (lower_omp_sections): Adjust lower_lastprivate_clauses and
10059 lower_reduction_clauses callers.
10060 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
10061 to lower_lastprivate_clauses.
10062 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
10063 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
10064 clist into a critical section if not emitted there already by
10065 lower_reduction_clauses.
10066 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
10067 callers.
10068 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
10069 conditional variables.
10070 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
10071 clause is present.
10072 (expand_omp_for_generic, expand_omp_for_static_nochunk,
10073 expand_omp_for_static_chunk): Handle lastprivate conditional.
10074 (expand_omp_for): Handle fd.lastprivate_conditional like
10075 fd.have_reductemp.
10076
10077 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
10078
10079 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
10080 kernel does not exit cleanly.
10081 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
10082
10083 2019-05-24 Jason Merrill <jason@redhat.com>
10084
10085 Revert:
10086 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
10087
10088 2019-05-24 Richard Biener <rguenther@suse.de>
10089
10090 PR testsuite/90607
10091 * tree-loop-distribution.c (struct partition): Add location
10092 member.
10093 (partition_alloc): Initialize all fields.
10094 (generate_memset_builtin): Use the location recorded in the
10095 partition for the generated call.
10096 (generate_memcpy_builtin): Likewise.
10097 (classify_partition): Record the location of a single store
10098 as location for the partition.
10099
10100 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
10101
10102 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
10103 for lo-part.
10104
10105 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
10106
10107 PR target/90588
10108 * common/config/aarch64/aarch64-common.c
10109 (aarch64_rewrite_selected_cpu): Change local temporary variable
10110 type from unsigned long to uint64_t.
10111 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
10112 aarch64_get_extension_string_for_isa_flags): Change declaration to
10113 match new definition by replacing unsigned long with uint64_t.
10114
10115 2019-05-24 Jakub Jelinek <jakub@redhat.com>
10116
10117 PR target/90568
10118 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
10119 gen_attr_type just once instead of 4-7 times. Formatting fixes.
10120 Handle stack_protect_test_<mode> codegen similarly to corresponding
10121 sub instruction.
10122
10123 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
10124
10125 * config/i386/darwin.h: Reject -mfentry*.
10126 * doc/sourcebuild.texi: Document mfentry target support.
10127
10128 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
10129
10130 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
10131 Rename to rs6000_global_entry_point_prologue_needed_p. Return
10132 false for PC-relative functions.
10133 (rs6000_output_function_prologue): Change called function name to
10134 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
10135 name,1" for PC-relative functions.
10136 (rs6000_elf_declare_function_name): Change called function name to
10137 rs6000_global_entry_point_prologue_needed_p.
10138
10139 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
10140
10141 PR target/90552
10142 * config/i386/i386.c (gen_rtx_cost):
10143 Use ix86_tune_cost instead of ix86_cost.
10144
10145 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
10146 Michael Meissner <meissner@linux.ibm.com>
10147 Segher Boessenkool <segher@kernel.crashing.org>
10148
10149 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
10150 OPTION_MASK_PCREL.
10151 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
10152 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
10153 (rs6000_fndecl_pcrel_p): Likewise.
10154 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
10155 error if -mpcrel is requested without -mcpu=future.
10156 (rs6000_opt_masks): Add entry for pcrel.
10157 (rs6000_fndecl_pcrel_p): New function.
10158 (rs6000_pcrel_p): Likewise.
10159 * config/rs6000/rs6000.opt (mpcrel): New option.
10160 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
10161
10162 2019-05-23 Jan Hubicka <jh@suse.cz>
10163 Martin Liska <mliska@suse.cz>
10164
10165 PR tree-optimization/90576
10166 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
10167 poly_int_tree_p.
10168 (aliasing_component_refs_p): Fix three way size compare conditional;
10169 give up earlier in case we can not decide on equivalence.
10170
10171 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
10172 Michael Meissner <meissner@linux.ibm.com>
10173 Segher Boessenkool <segher@kernel.crashing.org>
10174
10175 * config.gcc: Add future cpu.
10176 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
10177 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
10178 #define.
10179 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
10180 (RS6000_CPU): New instantiation for future cpu.
10181 * config/rs6000/rs6000-opts.h (enum processor_type): Add
10182 PROCESSOR_FUTURE.
10183 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
10184 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
10185 * config/rs6000/rs6000-tables.opt: Regenerate.
10186 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
10187 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
10188 (rs6000_machine_from_flags): Handle future cpu.
10189 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
10190 PROCESSOR_POWER9 for now.
10191 (rs6000_adjust_cost): Likewise.
10192 (rs6000_issue_rate): Likewise.
10193 (rs6000_register_move_cost): Likewise.
10194 (rs6000_opt_masks): Add entry for future.
10195 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
10196 (MASK_FUTURE): New #define.
10197 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
10198 * config/rs6000/rs6000.opt (mfuture): New target option.
10199 * doc/invoke.texi (mcpu): Add future cpu.
10200
10201 2019-05-23 Martin Liska <mliska@suse.cz>
10202
10203 PR c++/90587
10204 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
10205 operation points to a temporary (pointed via tree_to_wide_ref)
10206 that is out of scope after the &.
10207
10208 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
10209
10210 PR c++/90592
10211 * doc/extend.texi (Function Names): Add missing word.
10212
10213 2019-05-23 Richard Biener <rguenther@suse.de>
10214
10215 PR tree-optimization/88440
10216 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
10217 at -O[2s]+.
10218 * tree-loop-distribution.c (generate_memset_builtin): Fold the
10219 generated call.
10220 (generate_memcpy_builtin): Likewise.
10221 (distribute_loop): Pass in whether to only distribute patterns.
10222 (prepare_perfect_loop_nest): Also allow size optimization.
10223 (pass_loop_distribution::execute): When optimizing a loop
10224 nest for size allow pattern replacement.
10225
10226 2019-05-23 Jakub Jelinek <jakub@redhat.com>
10227
10228 PR target/90568
10229 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
10230 of xor.
10231
10232 2019-05-23 Martin Liska <mliska@suse.cz>
10233
10234 PR sanitizer/90570
10235 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
10236 expression similarly to gimplify_decl_expr.
10237
10238 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10239
10240 * cse.c (cse_dump_path): s/dump_file/f.
10241
10242 2019-05-22 David Malcolm <dmalcolm@redhat.com>
10243
10244 PR c++/90462
10245 * diagnostic-format-json.cc: Include "selftest.h".
10246 (json_from_expanded_location): Only add "file" key for non-NULL
10247 file strings.
10248 (json_from_location_range): Don't add "start" and "finish"
10249 children if they are UNKNOWN_LOCATION.
10250 (selftest::test_unknown_location): New selftest.
10251 (selftest::test_bad_endpoints): New selftest.
10252 (selftest::diagnostic_format_json_cc_tests): New function.
10253 * json.cc (json::object::get): New function.
10254 (selftest::test_object_get): New selftest.
10255 (selftest::json_cc_tests): Call it.
10256 * json.h (json::object::get): New decl.
10257 * selftest-run-tests.c (selftest::run_tests): Call
10258 selftest::diagnostic_format_json_cc_tests.
10259 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
10260 decl.
10261
10262 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
10263 Andrew Stubbs <amd@codesourcery.com>
10264
10265 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
10266 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
10267 (kernel): Rename to...
10268 (main_kernel): ... this.
10269 (load_image): Load _init_array and _fini_array kernels.
10270 (run): Add argument for kernel to run.
10271 (main): Run init_array_kernel before main_kernel, and
10272 fini_array_kernel after.
10273 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
10274 amdgpu_hsa_kernel attribute on functions.
10275 (gcn_disable_constructors): Delete.
10276 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
10277 * config/gcn/crt0.c (size_t): Define.
10278 (_init_array, _fini_array): New.
10279 (__preinit_array_start, __preinit_array_end,
10280 __init_array_start, __init_array_end,
10281 __fini_array_start, __fini_array_end): Declare weak references.
10282
10283 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
10284
10285 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
10286
10287 2019-05-22 Jason Merrill <jason@redhat.com>
10288
10289 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
10290
10291 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
10292
10293 PR target/88483
10294 * config/i386/i386-options.c (ix86_init_machine_status): Set
10295 stack_frame_required to true.
10296 * config/i386/i386.c (ix86_get_frame_size): New function.
10297 (ix86_frame_pointer_required): Replace get_frame_size with
10298 ix86_get_frame_size.
10299 (ix86_compute_frame_layout): Likewise.
10300 (ix86_find_max_used_stack_alignment): Changed to void. Set
10301 stack_frame_required.
10302 (ix86_finalize_stack_frame_flags): Always call
10303 ix86_find_max_used_stack_alignment. Replace get_frame_size with
10304 ix86_get_frame_size.
10305 * config/i386/i386.h (machine_function): Add stack_frame_required.
10306
10307 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
10308
10309 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
10310
10311 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
10312
10313 * common/config/aarch64/aarch64-common.c
10314 (struct aarch64_option_extension, struct processor_name_to_arch,
10315 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
10316 aarch64_contains_opt,
10317 aarch64_get_extension_string_for_isa_flags): Change type of
10318 variables storing flags to uint64_t.
10319 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
10320 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
10321 * config/aarch64/aarch64.c (struct processor,
10322 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
10323 aarch64_validate_march, aarch64_override_options,
10324 aarch64_option_print, aarch64_handle_attr_isa_flags,
10325 aarch64_declare_function_name, aarch64_start_file): Make flag
10326 variables uint64_t.
10327 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
10328 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
10329 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
10330 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
10331 * config/aarch64/driver-aarch64.c
10332 (struct aarch64_arch_extension, struct aarch64_core_data,
10333 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
10334 flag variables uint64_t.
10335 * doc/invoke.texi: Add documentation for new arguments.
10336
10337 2019-05-22 Richard Biener <rguenther@suse.de>
10338
10339 * alias.c (ao_ref_from_mem): Move stack-slot sharing
10340 rewrite ...
10341 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
10342
10343 2019-05-22 Martin Liska <mliska@suse.cz>
10344
10345 PR lto/90500
10346 * doc/extend.texi: Document the change.
10347
10348 2019-05-22 Richard Biener <rguenther@suse.de>
10349
10350 PR tree-optimization/90450
10351 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
10352 (mem_ref_hasher::equal): Check it.
10353 (mem_ref_alloc): Initialize it.
10354 (gather_mem_refs_stmt): Set it.
10355
10356 2019-05-22 Richard Biener <rguenther@suse.de>
10357
10358 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
10359 Add ABS_EXPR.
10360 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
10361 as ABSU_EXPR.
10362
10363 2019-05-22 Alan Modra <amodra@gmail.com>
10364
10365 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
10366 (ASM_CPU_SPEC): Conditionally add -many.
10367 * config/rs6000/rs6000.c (rs6000_machine): New static var.
10368 (rs6000_machine_from_flags, emit_asm_machine): New functions..
10369 (rs6000_file_start): ..extracted from here, and modified to
10370 test all ISA bits.
10371 (rs6000_output_function_prologue): Emit .machine as necessary.
10372
10373 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
10374
10375 PR middle-end/90553
10376 * ira-lives.c (process_bb_node_lives): Consider defs
10377 for a call insn to be die before the call, not after.
10378
10379 * function.c (assign_parm_setup_block): Raise alignment of
10380 stacked parameter only for STRICT_ALIGNMENT targets.
10381
10382 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10383
10384 * config/rs6000/constraints.md (define_register_constraint "wz"):
10385 Delete.
10386 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10387 RS6000_CONSTRAINT_wz.
10388 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10389 (rs6000_init_hard_regno_mode_ok): Adjust.
10390 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
10391 * doc/md.texi (Machine Constraints): Adjust.
10392
10393 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10394
10395 * config/rs6000/constraints.md (define_register_constraint "wl"):
10396 Delete.
10397 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10398 RS6000_CONSTRAINT_wl.
10399 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10400 (rs6000_init_hard_regno_mode_ok): Adjust.
10401 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
10402 * doc/md.texi (Machine Constraints): Adjust.
10403
10404 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10405
10406 * config/rs6000/constraints.md (define_register_constraint "wm"):
10407 Delete.
10408 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10409 RS6000_CONSTRAINT_wm.
10410 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10411 (rs6000_init_hard_regno_mode_ok): Adjust.
10412 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
10413 * doc/md.texi (Machine Constraints): Adjust.
10414
10415 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10416
10417 * config/rs6000/constraints.md (define_register_constraint "wk"):
10418 Delete.
10419 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10420 RS6000_CONSTRAINT_wk.
10421 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10422 (rs6000_init_hard_regno_mode_ok): Adjust.
10423 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
10424 * doc/md.texi (Machine Constraints): Adjust.
10425
10426 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10427
10428 * config/rs6000/constraints.md (define_register_constraint "wj"):
10429 Delete.
10430 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10431 RS6000_CONSTRAINT_wj.
10432 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10433 (rs6000_init_hard_regno_mode_ok): Adjust.
10434 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
10435 (VS_64dm): Delete.
10436 * config/rs6000/vsx.md: Ditto.
10437 * doc/md.texi (Machine Constraints): Adjust.
10438
10439 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10440
10441 * config/rs6000/constraints.md (define_register_constraint "wh"):
10442 Delete.
10443 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10444 RS6000_CONSTRAINT_wh.
10445 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10446 (rs6000_init_hard_regno_mode_ok): Adjust.
10447 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
10448 * doc/md.texi (Machine Constraints): Adjust.
10449
10450 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
10451
10452 PR target/90547
10453 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
10454 Avoid calling gen_lowpart with CONST operand.
10455
10456 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
10457
10458 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
10459 field template_last_to_copy.
10460 (ssa_create_duplicates): Set it, and use it. Attempt to
10461 preserve more debug stmts.
10462
10463 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
10464
10465 * config/i386/sse.md (VF1_AVX2): New mode iterator.
10466 (signbit<mode>2): New expander
10467
10468 2019-05-21 James Clarke <jrtc27@jrtc27.com>
10469
10470 PR bootstrap/87338
10471 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
10472 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
10473
10474 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
10475
10476 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
10477 %ebx and %ecx bafore calling cpuid with leaf 1 or
10478 non-constant leaf argument.
10479
10480 2019-05-21 Alan Modra <amodra@gmail.com>
10481
10482 PR target/90545
10483 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
10484 power9 direct move cost.
10485
10486 2019-05-21 Richard Biener <rguenther@suse.de>
10487
10488 PR middle-end/90510
10489 * fold-const.c (fold_read_from_vector): New function.
10490 * fold-const.h (fold_read_from_vector): Declare.
10491 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
10492 single-element insert permutations. Canonicalize selector
10493 further and fix issue with last commit.
10494
10495 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
10496
10497 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
10498 parameter with default value false to declaration.
10499 (split_edges_for_insertion): New inline function. Wrapper for
10500 split_critical_edges with for_edge_insertion_p = true.
10501 * tree-cfg.c (split_critical_edges): Don't split non-critical
10502 edges if for_edge_insertion_p is false. Fix whitespace.
10503 * tree-ssa-pre.c (pass_pre::execute): Call
10504 split_edges_for_insertion instead of split_critical_edges.
10505 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
10506 * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
10507 (pass_data_sink_code): Update function name in the comment.
10508
10509 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
10510
10511 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
10512 around is_value_included_in that knows how to handle BIT_AND_EXPR.
10513 (is_pred_expr_subset_of): Use the new function. Handle more cases where
10514 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
10515 positives.
10516
10517 2019-05-21 Martin Liska <mliska@suse.cz>
10518
10519 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
10520 an extra newline.
10521 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
10522 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
10523 vec_lvsr.
10524 * config/rs6000/rs6000.c (rs6000_option_override_internal):
10525 Quote a C type.
10526 (rs6000_function_arg): Likewise.
10527 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
10528 (rs6000_expand_ternop_builtin): Use interval syntax.
10529 (get_element_number): Likewise.
10530 (altivec_expand_builtin): Likewise.
10531 (rs6000_get_function_versions_dispatcher): Quote target_clones.
10532
10533 2019-05-20 Jakub Jelinek <jakub@redhat.com>
10534
10535 PR c++/59813
10536 PR target/90418
10537 * function.h (struct function): Add calls_eh_return member.
10538 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
10539 gimplifying __builtin_eh_return call.
10540 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
10541 to cfun.
10542 (expand_call_inline): Or in src_cfun->calls_eh_return into
10543 dst_cfun->calls_eh_return.
10544 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
10545 cfun->calls_eh_return.
10546 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
10547 * lto-streamer-out.c (output_struct_function_base): Write
10548 calls_eh_return.
10549
10550 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
10551
10552 PR rtl-optimization/43147
10553 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
10554 IX86_BUILTIN_SHUFPD.
10555
10556 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
10557
10558 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
10559 (refs_may_alias_p_1): ... here; update stats.
10560 (refs_may_alias_p): Do not update stats here.
10561
10562 2019-05-20 Richard Biener <rguenther@suse.de>
10563
10564 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
10565 doesn't produce pointers.
10566 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
10567 the first operand points to.
10568
10569 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
10570
10571 * tree-ssa-alias.c (compare_sizes): New function.
10572 (sompare_type_sizes): New function
10573 (aliasing_component_refs_p): Use it.
10574 (indirect_ref_may_alias_decl_p): Likewise.
10575
10576 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10577
10578 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
10579
10580 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10581
10582 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
10583 (LIBLSAN_EARLY_SPEC): Likewise.
10584 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
10585
10586 2019-05-20 Martin Liska <mliska@suse.cz>
10587
10588 * config/i386/i386.c (ix86_libc_has_fast_function):
10589 Add ATTRIBUTE_UNUSED for the argument.
10590
10591 2019-05-20 Richard Biener <rguenther@suse.de>
10592
10593 * gimple-match-head.c: Include vec-perm-indices.h.
10594 * generic-match-head.c: Likewise.
10595 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
10596 is included.
10597 * fold-const.c (fold_vec_perm): Export.
10598 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
10599 (match.pd): ...here.
10600
10601 2019-05-20 Jakub Jelinek <jakub@redhat.com>
10602
10603 * cfgloop.h (struct loop): Add simdlen member.
10604 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
10605 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
10606 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
10607 as new argument to autovectorize_vector_sizes target hook. If
10608 loop->simdlen, pick up vector size where the vectorization factor
10609 is equal to loop->simd, and if there is none, fall back to the first
10610 successful one.
10611 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
10612 caller.
10613 * omp-low.c (omp_clause_aligned_alignment): Likewise.
10614 * omp-general.c (omp_max_vf): Likewise.
10615 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
10616 * tree-vect-slp.c (vect_slp_bb): Likewise.
10617 * target.def (autovectorize_vector_sizes): Add ALL argument and
10618 document it.
10619 * doc/tm.texi: Adjust documentation.
10620 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
10621 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
10622 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
10623 bool argument.
10624 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
10625 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
10626 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
10627 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
10628 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
10629 preferred vector size is not 512-bit or 256-bit, just put those
10630 unpreferred ones last.
10631
10632 2019-05-20 Martin Liska <mliska@suse.cz>
10633
10634 * targhooks.c (default_libc_has_fast_function): New function.
10635 * targhooks.h (default_libc_has_fast_function): Likewise.
10636
10637 2019-05-20 Martin Liska <mliska@suse.cz>
10638
10639 PR middle-end/90263
10640 * builtins.c (expand_builtin_memory_copy_args): When having a
10641 target with fast mempcpy implementation do now use memcpy.
10642 * config/i386/i386.c (ix86_libc_has_fast_function): New.
10643 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
10644 * doc/tm.texi: Likewise.
10645 * doc/tm.texi.in: Likewise.
10646 * target.def:
10647 * expr.c (emit_block_move_hints): Add 2 new arguments.
10648 * expr.h (emit_block_move_hints): Bail out when libcall
10649 to memcpy would be used.
10650
10651 2019-05-20 Martin Liska <mliska@suse.cz>
10652
10653 * profile-count.c: Add vertical spacing in order
10654 to separate functions.
10655 * profile-count.h: Likewise.
10656
10657 2019-05-20 Martin Liska <mliska@suse.cz>
10658
10659 * profile-count.h: Do not use full qualified
10660 names if possible.
10661 * profile-count.c (profile_count::to_frequency): Likewise.
10662
10663 2019-05-20 Martin Liska <mliska@suse.cz>
10664
10665 * profile-count.h (enum profile_quality): Use capital letters
10666 for enum value names. Use the adjusted names.
10667 * profile-count.c: Use the adjusted names.
10668
10669 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10670
10671 * config/rs6000/constraints.md (define_register_constraint "wH"):
10672 Delete.
10673 (define_register_constraint "wI"): Delete.
10674 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10675 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
10676 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10677 (rs6000_init_hard_regno_mode_ok): Adjust.
10678 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
10679 resp. "d", or with "wa" as appropriate, all with "p8v".
10680 * config/rs6000/vsx.md: Ditto.
10681 * doc/md.texi (Machine Constraints): Adjust.
10682
10683 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10684
10685 * config/rs6000/constraints.md (define_register_constraint "wy"):
10686 Delete.
10687 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10688 RS6000_CONSTRAINT_wy.
10689 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10690 (rs6000_init_hard_regno_mode_ok): Adjust.
10691 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
10692 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
10693 (define_mode_attr Fisa): New.
10694 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
10695 * doc/md.texi (Machine Constraints): Adjust.
10696
10697 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10698
10699 * config/rs6000/constraints.md (define_register_constraint "wu"):
10700 Delete.
10701 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10702 RS6000_CONSTRAINT_wu.
10703 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10704 (rs6000_init_hard_regno_mode_ok): Adjust.
10705 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
10706 both with "p8v".
10707 (define_mode_attr Fa): Delete.
10708 * config/rs6000/vsx.md: Ditto.
10709 * doc/md.texi (Machine Constraints): Adjust.
10710
10711 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10712
10713 * config/rs6000/constraints.md (define_register_constraint "wJ"):
10714 Delete.
10715 (define_register_constraint "wK"): Delete.
10716 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10717 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
10718 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10719 (rs6000_init_hard_regno_mode_ok): Adjust.
10720 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
10721 Replace "wK" constraint by "wH" with "p9v".
10722 * config/rs6000/vsx.md: Ditto.
10723 * doc/md.texi (Machine Constraints): Adjust.
10724
10725 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10726
10727 * config/rs6000/constraints.md (define_register_constraint "wb"):
10728 Delete.
10729 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10730 RS6000_CONSTRAINT_wb.
10731 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10732 (rs6000_init_hard_regno_mode_ok): Adjust.
10733 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
10734 * config/rs6000/vsx.md: Ditto.
10735 * doc/md.texi (Machine Constraints): Adjust.
10736
10737 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10738
10739 * config/rs6000/constraints.md (define_register_constraint "wo"):
10740 Delete.
10741 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10742 RS6000_CONSTRAINT_wo.
10743 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10744 (rs6000_init_hard_regno_mode_ok): Adjust.
10745 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
10746 * config/rs6000/altivec.md: Ditto.
10747 * doc/md.texi (Machine Constraints): Adjust.
10748
10749 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
10750
10751 * config/darwin-c.c (darwin_register_objc_includes): Do not
10752 prepend the sysroot when building gnu-runtime header search
10753 paths.
10754
10755 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
10756
10757 * config/darwin.c (darwin_file_end): Use switch_to_section ()
10758 instead of direct output of the asm.
10759
10760 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
10761
10762 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
10763 argument to be type bool (was int before).
10764 (rs6000_emit_epilogue): Simplify some code. Declare some variables
10765 at first use. Use type bool for some variables. Fix a theoretical
10766 eh_return bug for svr4.
10767
10768 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
10769
10770 * config/rs6000/rs6000.md (isa): New attribute.
10771 (enabled): New attribute.
10772
10773 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
10774
10775 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
10776 assemble_start_function and assemble_end_function.
10777
10778 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
10779
10780 PR middle-end/89433
10781 * omp-general.c (oacc_verify_routine_clauses): Change formal
10782 parameters. Add checking if already marked with an OpenACC
10783 'routine' directive. Adjust all users.
10784
10785 PR middle-end/89433
10786 * omp-general.c (oacc_build_routine_dims): Move some of its
10787 processing into...
10788 (oacc_verify_routine_clauses): ... this new function.
10789 * omp-general.h (oacc_verify_routine_clauses): New prototype.
10790
10791 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
10792
10793 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
10794 formating of picbase labels to match other ports.
10795
10796 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
10797
10798 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
10799 in the generated code.
10800
10801 2019-05-16 Martin Sebor <msebor@redhat.com>
10802
10803 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
10804 identifiers, keywords, operators, and types in diagnostics. Correct
10805 quoting, spelling, and sentence capitalization issues.
10806 (expand_builtin_atomic_is_lock_free): Same.
10807 (fold_builtin_next_arg): Same.
10808 * cfgexpand.c (expand_one_var): Same.
10809 (tree_conflicts_with_clobbers_p): Same.
10810 (expand_asm_stmt): Same.
10811 (verify_loop_structure): Same.
10812 * cgraphunit.c (process_function_and_variable_attributes): Same.
10813 * collect-utils.c (collect_execute): Same.
10814 * collect2.c (maybe_run_lto_and_relink): Same.
10815 (is_lto_object_file): Same.
10816 (scan_prog_file): Same.
10817 * convert.c (convert_to_real_1): Same.
10818 * dwarf2out.c (dwarf2out_begin_prologue): Same.
10819 * except.c (verify_eh_tree): Same.
10820 * gcc.c (execute): Same.
10821 (eval_spec_function): Same.
10822 (run_attempt): Same.
10823 (driver::set_up_specs): Same.
10824 (compare_debug_auxbase_opt_spec_function): Same.
10825 * gcov-tool.c (unlink_gcda_file): Same.
10826 (do_merge): Same.
10827 (do_rewrite): Same.
10828 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
10829 * gimplify.c (gimplify_asm_expr): Same.
10830 (gimplify_adjust_omp_clauses): Same.
10831 * hsa-gen.c (gen_hsa_addr_insns): Same.
10832 (gen_hsa_insns_for_load): Same.
10833 (gen_hsa_cmp_insn_from_gimple): Same.
10834 (gen_hsa_insns_for_operation_assignment): Same.
10835 (gen_get_level): Same.
10836 (gen_hsa_alloca): Same.
10837 (omp_simple_builtin::generate): Same.
10838 (gen_hsa_atomic_for_builtin): Same.
10839 (gen_hsa_insns_for_call): Same.
10840 * input.c (dump_location_info): Same.
10841 * ipa-devirt.c (compare_virtual_tables): Same.
10842 * ira.c (ira_setup_eliminable_regset): Same.
10843 * lra-assigns.c (lra_assign): Same.
10844 * lra-constraints.c (lra_constraints): Same.
10845 * lto-streamer-in.c (lto_input_mode_table): Same.
10846 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
10847 (merge_and_complain): Same.
10848 (compile_offload_image): Same.
10849 (compile_images_for_offload_targets): Same.
10850 (debug_objcopy): Same.
10851 (run_gcc): Same.
10852 (main): Same.
10853 * opts.c (print_specific_help): Same.
10854 (parse_no_sanitize_attribute): Same.
10855 (print_help): Same.
10856 (handle_param): Same.
10857 * plugin.c (add_new_plugin): Same.
10858 (parse_plugin_arg_opt): Same.
10859 (try_init_one_plugin): Same.
10860 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
10861 operators, and types in diagnostics. Correct quoting and spelling
10862 issues.
10863 * read-rtl-function.c (parse_edge_flag_token): Same.
10864 (function_reader::parse_enum_value): Same.
10865 * reg-stack.c (check_asm_stack_operands): Same.
10866 * regcprop.c (validate_value_data): Same.
10867 * sched-rgn.c (make_pass_sched_fusion): Same.
10868 * stmt.c (check_unique_operand_names): Same.
10869 * targhooks.c (default_target_option_pragma_parse): Same.
10870 * tlink.c (recompile_files): Same.
10871 * toplev.c (process_options): Same.
10872 (do_compile): Same.
10873 * trans-mem.c (diagnose_tm_1): Same.
10874 (ipa_tm_scan_irr_block): Same.
10875 (ipa_tm_diagnose_transaction): Same.
10876 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
10877 format a tree code name in a diagnostic.
10878 (verify_types_in_gimple_min_lval): Same.
10879 (verify_types_in_gimple_reference): Same.
10880 (verify_gimple_call): Same.
10881 (verify_gimple_assign_unary): Same.
10882 (verify_gimple_assign_binary): Same.
10883 (verify_gimple_assign_ternary): Same.
10884 (verify_gimple_assign_single): Same.
10885 (verify_gimple_switch): Same.
10886 (verify_gimple_label): Same.
10887 (verify_gimple_phi): Same.
10888 (verify_gimple_in_seq): Same.
10889 (verify_eh_throw_stmt_node): Same.
10890 (collect_subblocks): Same.
10891 (gimple_verify_flow_info): Same.
10892 (do_warn_unused_result): Same.
10893 * tree-inline.c (expand_call_inline): Same.
10894 * tree-into-ssa.c (update_ssa): Same.
10895 * tree.c (tree_int_cst_elt_check_failed): Same.
10896 (tree_vec_elt_check_failed): Same.
10897 (omp_clause_operand_check_failed): Same.
10898 (verify_type_variant): Same.
10899 (verify_type): Same.
10900 * value-prof.c (verify_histograms): Same.
10901 * varasm.c (assemble_start_function): Same.
10902
10903 2019-05-16 Martin Sebor <msebor@redhat.com>
10904
10905 * config/i386/i386-expand.c (get_element_number): Quote keywords
10906 and other internal names in diagnostics. Adjust other diagnostic
10907 formatting issues noted by -Wformat-diag.
10908 * config/i386/i386-features.c
10909 (ix86_mangle_function_version_assembler_name): Same.
10910 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
10911 * config/i386/i386.c (ix86_function_type_abi): Same.
10912 (ix86_function_ms_hook_prologue): Same.
10913 (classify_argument): Same.
10914 (ix86_expand_prologue): Same.
10915 (ix86_md_asm_adjust): Same.
10916 (ix86_memmodel_check): Same.
10917
10918 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
10919
10920 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
10921 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
10922 and fpxx modes.
10923
10924 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
10925
10926 PR target/90497
10927 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
10928 intrinsics without SSE/SSE2/SSSE3.
10929 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
10930 check.
10931 (*mmx_uavgv8qi3): Likewise.
10932
10933 2019-05-17 Richard Biener <rguenther@suse.de>
10934
10935 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
10936 VEC_PERM_EXPR as __VEC_PERM with -gimple.
10937
10938 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
10939
10940 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
10941 vec_sldw insn pattern.
10942
10943 2019-05-17 Richard Biener <rguenther@suse.de>
10944
10945 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
10946
10947 2019-05-17 Martin Liska <mliska@suse.cz>
10948
10949 PR driver/90496
10950 * toplev.c (output_stack_usage): With LTO and sanitizer it
10951 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
10952 has no file location.
10953
10954 2019-05-16 Jakub Jelinek <jakub@redhat.com>
10955
10956 PR c++/90484
10957 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
10958 sz0 is equal to sz1, instead return false in that case.
10959
10960 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
10961 has non-constant expression, force sctx.lane and use two
10962 argument IFN_GOMP_SIMD_LANE instead of single argument.
10963 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
10964 two argument IFN_GOMP_SIMD_LANE without lhs.
10965 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
10966 member.
10967 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
10968 Define.
10969 (LOOP_REQUIRES_VERSIONING): Or in
10970 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
10971 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
10972 simd_if_cond.
10973 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
10974 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
10975 from simd if clause if needed.
10976
10977 2019-05-16 Richard Biener <rguenther@suse.de>
10978
10979 * tree-affine.c (expr_to_aff_combination): New function split
10980 out from...
10981 (tree_to_aff_combination): ... here.
10982 (aff_combination_expand): Avoid building a GENERIC tree.
10983
10984 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
10985
10986 * cgraphunit.c (cgraph_node::expand_thunk): Remove
10987 assemble_start_function and assemble_end_function calls.
10988 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
10989 assemble_start_function and assemble_end_function.
10990 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
10991 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
10992 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
10993 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
10994 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
10995 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
10996 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
10997 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
10998 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
10999 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
11000 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
11001 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
11002 Likewise.
11003 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
11004 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
11005 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
11006 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
11007 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
11008 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
11009 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
11010 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
11011 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
11012 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
11013 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
11014 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
11015 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
11016 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
11017 Likewise.
11018 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
11019 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
11020 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
11021
11022 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
11023
11024 * tree-ssa-alias.c (alias_stats): Add
11025 aliasing_component_refs_p_may_alias and
11026 aliasing_component_refs_p_no_alias.
11027 (dump_alias_stats): Print aliasing_component_refs_p stats.
11028 (aliasing_component_refs_p): Update stats.
11029
11030 2019-05-16 Martin Liska <mliska@suse.cz>
11031
11032 PR lto/90500
11033 * multiple_target.c (expand_target_clones): Do not allow
11034 target_clones being used with a symbol that is an alias.
11035
11036 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
11037
11038 PR tree-optimization/90394
11039 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
11040 positives rather than ICE for cases where (code2 == NE_EXPR
11041 && code1 == BIT_AND_EXPR).
11042
11043 2019-05-16 Jakub Jelinek <jakub@redhat.com>
11044
11045 PR fortran/90329
11046 * tree-core.h (struct tree_decl_common): Document
11047 decl_nonshareable_flag for PARM_DECLs.
11048 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
11049 * calls.c (expand_call): Don't try tail call if caller
11050 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
11051 passed on the stack and callee needs to pass any arguments on the
11052 stack.
11053 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
11054 else if instead of series of mutually exclusive ifs. Handle
11055 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
11056 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
11057
11058 * lto-streamer.h (LTO_major_version): Bump to 9.
11059
11060 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
11061
11062 PR tree-optimization/90106
11063 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
11064 new parameter as new internal function call, also move it to new
11065 basic block.
11066 (use_internal_fn): Pass internal function call to
11067 shrink_wrap_one_built_in_call_with_conds.
11068
11069 2019-05-15 Jakub Jelinek <jakub@redhat.com>
11070
11071 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
11072 max_vf to 1.
11073 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
11074 safelen_int and set loop->dont_vectorize.
11075
11076 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11077
11078 PR target/89021
11079 * config/i386/i386-builtin.def: Enable MMX intrinsics with
11080 SSE/SSE2/SSSE3.
11081 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
11082 Likewise.
11083 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
11084 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
11085 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
11086 is defined.
11087
11088 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11089
11090 PR target/89021
11091 * config/i386/mmx.md (*vec_dupv2sf): Changed to
11092 define_insn_and_split to support SSE emulation.
11093 (*vec_extractv2sf_0): Likewise.
11094 (*vec_extractv2sf_1): Likewise.
11095 (*vec_extractv2si_0): Likewise.
11096 (*vec_extractv2si_1): Likewise.
11097 (*vec_extractv2si_zext_mem): Likewise.
11098 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
11099 (vec_extractv2sf_1 splitter): Likewise.
11100 (vec_extractv2sfsf): Likewise.
11101 (vec_setv2si): Likewise.
11102 (vec_extractv2si_1 splitter): Likewise.
11103 (vec_extractv2sisi): Likewise.
11104 (vec_setv4hi): Likewise.
11105 (vec_extractv4hihi): Likewise.
11106 (vec_setv8qi): Likewise.
11107 (vec_extractv8qiqi): Likewise.
11108 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
11109 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
11110 (vec_extractv2sisi): Likewise.
11111 (vec_extractv4hihi): Likewise.
11112 (vec_extractv8qiqi): Likewise.
11113 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
11114 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
11115 (vec_initv2sisi): Likewise.
11116 (vec_initv4hihi): Likewise.
11117 (vec_initv8qiqi): Likewise.
11118 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
11119 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
11120 (vec_setv4hi): Likewise.
11121 (vec_setv8qi): Likewise.
11122
11123 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11124
11125 PR target/89021
11126 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
11127 TARGET_MMX_WITH_SSE.
11128 (MMXMODE:*mov<mode>_internal): Likewise.
11129 (MMXMODE:movmisalign<mode>): Likewise.
11130
11131 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
11132
11133 PR target/89021
11134 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
11135 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
11136 (sse2_cvtpd2pi): Ditto.
11137 (sse2_cvttpd2pi): Ditto.
11138 (*vec_concatv2sf_sse4_1): Ditto.
11139 (*vec_concatv2sf_sse): Ditto.
11140 (*vec_concatv2si_sse4_1): Ditto.
11141 (*vec_concatv2si): Ditto.
11142 (*vec_concatv4si_0): Ditto.
11143 (*vec_concatv2di_0): Ditto.
11144
11145 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11146
11147 PR target/89021
11148 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
11149
11150 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11151
11152 PR target/89021
11153 * config/i386/sse.md (ssse3_palignrdi): Changed to
11154 define_insn_and_split to support SSE emulation.
11155
11156 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11157
11158 PR target/89021
11159 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
11160
11161 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11162
11163 PR target/89021
11164 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
11165 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
11166 SSE emulation.
11167
11168 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11169
11170 PR target/89021
11171 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
11172 or TARGET_MMX_WITH_SSE.
11173 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
11174
11175 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11176
11177 PR target/89021
11178 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
11179
11180 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11181
11182 PR target/89021
11183 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
11184 Changed to define_insn_and_split to support SSE emulation.
11185
11186 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11187
11188 PR target/89021
11189 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
11190 Changed to define_insn_and_split to support SSE emulation.
11191
11192 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11193
11194 PR target/89021
11195 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
11196 (*mmx_<emms>): This.
11197 (mmx_<emms>): New expander.
11198
11199 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11200
11201 PR target/89021
11202 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
11203 support.
11204 (*sse2_umulv1siv1di3): Add SSE2 emulation.
11205
11206 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11207
11208 PR target/89021
11209 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
11210
11211 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11212
11213 PR target/89021
11214 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
11215
11216 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11217
11218 PR target/89021
11219 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
11220 TARGET_MMX_WITH_SSE.
11221 (*mmx_uavgv4hi3): Add SSE emulation.
11222
11223 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11224
11225 PR target/89021
11226 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
11227 and TARGET_MMX_WITH_SSE.
11228 (*mmx_uavgv8qi3): Add SSE emulation.
11229
11230 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11231
11232 PR target/89021
11233 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
11234 maskmovdqu for __MMX_WITH_SSE__.
11235
11236 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11237
11238 PR target/89021
11239 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
11240 TARGET_MMX and TARGET_MMX_WITH_SSE.
11241 (*mmx_umulv4hi3_highpart): Add SSE emulation.
11242
11243 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11244
11245 PR target/89021
11246 * config/i386/mmx.md (mmx_pmovmskb): Changed to
11247 define_insn_and_split to support SSE emulation.
11248
11249 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11250
11251 PR target/89021
11252 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
11253 and TARGET_MMX_WITH_SSE.
11254 (mmx_<code>v8qi3): Likewise.
11255 (smaxmin:<code>v4hi3): New.
11256 (umaxmin:<code>v8qi3): Likewise.
11257 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
11258 (umaxmin:*mmx_<code>v8qi3): Likewise.
11259
11260 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11261
11262 PR target/89021
11263 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
11264 TARGET_MMX_WITH_SSE.
11265 (*mmx_pinsrw): Add SSE emulation.
11266
11267 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11268
11269 PR target/89021
11270 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
11271
11272 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11273
11274 PR target/89021
11275 * config/i386/sse.md (sse_cvtpi2ps): Changed to
11276 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
11277 SSE emulation.
11278
11279 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11280
11281 PR target/89021
11282 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
11283 (sse_cvttps2pi): Likewise.
11284
11285 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11286
11287 PR target/89021
11288 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
11289 TARGET_MMX_WITH_SSE.
11290 (mmx_pshufw_1): Add SSE emulation.
11291 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
11292 TARGET_MMX_WITH_SSE to support SSE emulation.
11293
11294 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11295
11296 PR target/89021
11297 * config/i386/constraints.md (Yw): New constraint.
11298 * config/i386/mmx.md (*vec_dupv2si): Changed to
11299 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
11300 support SSE emulation.
11301
11302 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11303
11304 PR target/89021
11305 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
11306 TARGET_MMX_WITH_SSE.
11307 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
11308 support.
11309 (mmx_gt<mode>3): Likewise.
11310
11311 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11312
11313 PR target/89021
11314 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
11315 TARGET_MMX_WITH_SSE. Add SSE support.
11316
11317 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11318
11319 PR target/89021
11320 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
11321 TARGET_MMX_WITH_SSE.
11322 (any_logic:<code><mode>3): New.
11323 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
11324 Add SSE support.
11325
11326 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11327
11328 PR target/89021
11329 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
11330 TARGET_MMX_WITH_SSE. Add SSE emulation.
11331 (mmx_<shift_insn><mode>3): Likewise.
11332 (ashr<mode>3): New.
11333 (<shift_insn><mode>3): Likewise.
11334
11335 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11336
11337 PR target/89021
11338 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
11339 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
11340
11341 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11342
11343 PR target/89021
11344 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
11345 TARGET_MMX_WITH_SSE.
11346 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
11347 SSE support.
11348
11349 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11350
11351 PR target/89021
11352 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
11353 TARGET_MMX_WITH_SSE.
11354 (mulv4hi3): New.
11355 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
11356 support.
11357
11358 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11359
11360 PR target/89021
11361 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
11362 (plusminus:mmx_<plusminus_insn><mode>3): Check
11363 TARGET_MMX_WITH_SSE.
11364 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
11365 (<plusminus_insn><mode>3): New.
11366 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
11367 (*mmx_<plusminus_insn><mode>3): Likewise.
11368
11369 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11370
11371 PR target/89021
11372 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
11373 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
11374 prototype.
11375 * config/i386/mmx.m (mmx_punpckhbw): Changed to
11376 define_insn_and_split to support SSE emulation.
11377 (mmx_punpcklbw): Likewise.
11378 (mmx_punpckhwd): Likewise.
11379 (mmx_punpcklwd): Likewise.
11380 (mmx_punpckhdq): Likewise.
11381 (mmx_punpckldq): Likewise.
11382
11383 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11384 Uros Bizjak <ubizjak@gmail.com>
11385
11386 PR target/89021
11387 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
11388 New function.
11389 (ix86_split_mmx_pack): Likewise.
11390 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
11391 New prototype.
11392 (ix86_split_mmx_pack): Likewise.
11393 * config/i386/i386.md (mmx_isa): New.
11394 (enabled): Also check mmx_isa.
11395 * config/i386/mmx.md (any_s_truncate): New code iterator.
11396 (s_trunsuffix): New code attr.
11397 (mmx_packsswb): Removed.
11398 (mmx_packssdw): Likewise.
11399 (mmx_packuswb): Likewise.
11400 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
11401 MMX packsswb/packuswb with SSE2.
11402 (mmx_packssdw): Likewise.
11403 * config/i386/predicates.md (register_mmxmem_operand): New.
11404
11405 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11406
11407 PR target/89021
11408 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11409 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
11410 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
11411 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
11412 (ix86_vector_mode_supported_p): Likewise.
11413 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
11414
11415 2019-05-15 Martin Liska <mliska@suse.cz>
11416
11417 PR middle-end/90478
11418 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
11419 Check for overflow.
11420
11421 2019-05-15 Richard Biener <rguenther@suse.de>
11422
11423 * tree-into-ssa.c (pass_build_ssa::execute): Run
11424 update_address_taken before going into SSA.
11425
11426 2019-05-15 Richard Biener <rguenther@suse.de>
11427
11428 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
11429 as __BIT_FIELD_REF with type with -gimple.
11430
11431 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
11432
11433 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
11434 semantically equivalent branches (left over after prior refactorings).
11435
11436 2019-05-15 Richard Biener <rguenther@suse.de>
11437
11438 PR tree-optimization/88828
11439 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
11440 bogus check.
11441
11442 2019-05-14 Richard Biener <rguenther@suse.de>
11443
11444 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
11445 as __VIEW_CONVERT with -gimple.
11446
11447 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
11448
11449 PR target/82920
11450 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
11451 Darwin.
11452
11453 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
11454
11455 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
11456 define_split to become a define_insn_and_split.
11457
11458 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
11459
11460 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
11461 arguments.
11462 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
11463 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
11464 (sibcall_epilogue): Adjust.
11465 (epilogue): Adjust.
11466
11467 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11468
11469 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
11470 to unsupported ones.
11471 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
11472 * config.host: Likewise.
11473 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
11474 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
11475 __svr4__]: Remove "brand" fallback.
11476 [!KSTAT_DATA_STRING]: Remove.
11477 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
11478 to *-*-solaris2*.
11479 (comdat_group): Likewise.
11480 (set_have_as_tls): Likewise.
11481 (gcc_cv_target_dl_iterate_phdr): Likewise.
11482 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
11483 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
11484 * configure: Regenerate.
11485 * doc/install.texi: Simplify Solaris target triplets.
11486 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
11487 (Specific, *-*-solaris2*): Document Solaris 10 removal.
11488 Remove Solaris 10 references.
11489 Remove obsolete Solaris bug reference.
11490 (Specific, sparc-sun-solaris2.10): Remove.
11491
11492 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
11493
11494 * config/i386/i386.md (any_div): New code iterator.
11495 (paired_mod): New code attribute.
11496 (sgnprefix): Handle DIV and UDIV RTXes.
11497 (u): Ditto.
11498 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
11499 and udivmod<mode>4 patterns using any_div code iterator.
11500 (divmod splitters): Macroize splitters using any_div code iterator.
11501 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
11502 (*udivmodsi4_pow2_zext_2): Ditto.
11503 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
11504 and *udivmod<mode>4_noext patterns using any_div code iterator.
11505 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
11506 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
11507 patterns using any_div code iterator.
11508 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
11509 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
11510 patterns using any_div code iterator.
11511 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
11512 udivmodhiqi3 patterns using any_extend code iterator.
11513
11514 2019-05-14 Richard Biener <rguenther@suse.de>
11515 H.J. Lu <hongjiu.lu@intel.com>
11516
11517 PR tree-optimization/88828
11518 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
11519 permuting in a single non-constant element not extracted
11520 from a vector.
11521
11522 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11523
11524 * internal-fn.def (SIGNBIT): New.
11525 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
11526 defined.
11527 (signbitv4sf2): Likewise.
11528
11529 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
11530
11531 PR target/90357
11532 * config/mips/mips.c (mips_split_move): Skip forward SRC into
11533 next insn when the SRC reg is dead.
11534
11535 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
11536
11537 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
11538 (alloc_cand_and_find_basis): Ditto.
11539 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
11540 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
11541 (create_add_imm_cand, slsr_process_cast): Ditto.
11542 (slsr_process_copy, replace_mult_candidate): Ditto.
11543 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
11544 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
11545 (pass_strength_reduction::execute): Init the first NULL element.
11546
11547 2019-05-13 Nathan Sidwell <nathan@acm.org>
11548
11549 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
11550 (run_attempt): Reformat line break.
11551
11552 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
11553
11554 PR target/90418
11555 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
11556 data registers in sibcall epilogues.
11557 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
11558
11559 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
11560
11561 PR target/89221
11562 * configure.ac (--enable-frame-pointer):
11563 Disable by default for cygwin and mingw.
11564 * configure: Regenerate.
11565
11566 2019-05-13 Nathan Sidwell <nathan@acm.org>
11567
11568 * dwarf2out.c (breakout_comdat_types): Move comment to correct
11569 piece of code.
11570 (const_ok_for_output_1): Balance parens around #if/#else/#endif
11571 (gen_member_die): Move abstract origin check earlier. Only VARs
11572 can be static_inline_p. Simplify splicing control flow.
11573
11574 2019-05-13 Richard Biener <rguenther@suse.de>
11575
11576 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
11577 VIEW_CONVERT_EXPR.
11578 (vect_build_slp_tree_1): Likewise.
11579
11580 2019-05-13 Richard Biener <rguenther@suse.de>
11581
11582 PR tree-optimization/90402
11583 * tree-if-conv.c (tree_if_conversion): Value number only
11584 the loop body by making the latch an exit of the region
11585 as well.
11586 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
11587 processing PHIs.
11588 (do_rpo_vn): Deal with multiple edges into the entry block
11589 that are not backedges inside the region by skipping PHIs
11590 of the entry block.
11591
11592 2019-05-13 Richard Biener <rguenther@suse.de>
11593
11594 PR tree-optimization/90316
11595 * tree-ssa-pre.c (insert_aux): Fold into ...
11596 (insert): ... this function. Use a RPO walk to reduce the
11597 number of required iterations.
11598
11599 2019-05-13 Martin Liska <mliska@suse.cz>
11600
11601 PR tree-optimization/90416
11602 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
11603 string instead of passing the second part as va_arg argument.
11604
11605 2019-05-13 Martin Liska <mliska@suse.cz>
11606
11607 PR gcov-profile/90380
11608 * gcov.c (handle_cycle): Do not support zero cycle count,
11609 it should not be possible.
11610 (path_contains_zero_cycle_arc): New function.
11611 (circuit): Ignore zero cycle arc counts.
11612
11613 2019-05-13 Martin Liska <mliska@suse.cz>
11614
11615 PR gcov-profile/90380
11616 * gcov.c (enum loop_type): Remove the enum and
11617 the operator.
11618 (handle_cycle): Assert that we should not reach
11619 a negative count.
11620 (circuit): Use loop_found instead of a tri-state loop_type.
11621 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
11622 happen.
11623
11624 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
11625
11626 PR target/82920
11627 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
11628 (ix86_output_indirect_branch_via_reg): Use output mechanism
11629 accounting for __USER_LABEL_PREFIX__.
11630 (ix86_output_indirect_branch_via_push): Likewise.
11631 (ix86_output_function_return): Likewise.
11632 (ix86_output_indirect_function_return): Likewise.
11633
11634 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
11635
11636 * doc/md.texi: Document use of code attributes in rtx patterns.
11637 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
11638 * read-rtl.c (find_code): Split out search loops into...
11639 (maybe_find_code): ...this new function.
11640 (check_code_iterator): Make the error message more informative.
11641 (check_code_attribute): New function.
11642 (rtx_reader::rtx_alloc_for_name): Likewise.
11643 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
11644 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
11645 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
11646 <max_opp> directly as an rtx code instead of via a match_operator.
11647 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
11648 (<su>abd<mode>_3): Update accordingly.
11649
11650 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
11651
11652 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
11653 is given, print the state of the EH "save world" computation for
11654 Darwin.
11655
11656 2019-05-11 Jakub Jelinek <jakub@redhat.com>
11657
11658 PR c++/59813
11659 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
11660 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
11661
11662 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
11663
11664 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
11665 Use pinsrd for TARGET_SSE4_1.
11666 * config/i386/sse.md (movdi_to_sse): Ditto.
11667
11668 2019-05-10 Richard Biener <rguenther@suse.de>
11669
11670 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
11671 (do_rpo_vn): Initialize next_value_id.
11672
11673 2019-05-10 Martin Liska <mliska@suse.cz>
11674
11675 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
11676 Fix plural form.
11677
11678 2019-05-10 Jakub Jelinek <jakub@redhat.com>
11679
11680 PR tree-optimization/90385
11681 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
11682 arguments of the exit phis.
11683
11684 PR c++/90383
11685 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
11686 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
11687 id->do_not_fold.
11688 (copy_tree_body_r): Likewise.
11689 (copy_fn): Set id.do_not_fold to true.
11690
11691 2019-05-10 Martin Liska <mliska@suse.cz>
11692
11693 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
11694 Reapply changes from r269790.
11695
11696 2019-05-10 Martin Liska <mliska@suse.cz>
11697
11698 PR middle-end/90340
11699 * doc/invoke.texi: New params.
11700 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
11701 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
11702 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
11703 Use it.
11704 * tree-switch-conversion.h (struct jump_table_cluster):
11705 Likewise.
11706
11707 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
11708
11709 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
11710
11711 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
11712
11713 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
11714
11715 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
11716
11717 PR rtl-optimization/88879
11718 * sel-sched.c (sel_target_adjust_priority): Remove assert.
11719
11720 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
11721
11722 PR target/90405
11723 * config/arm/arm.c (callee_saved_reg_p): Move before
11724 thumb_find_work_register.
11725 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
11726 thumb_find_work_register. Only call df_get_live_out once.
11727 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
11728 (thumb_find_work_register): Use
11729 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
11730 algorithms to locate a spare call clobbered reg.
11731
11732 2019-05-09 Martin Liska <mliska@suse.cz>
11733
11734 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
11735 and MAX_EXPR in GIMPLE FE format.
11736
11737 2019-05-09 Martin Liska <mliska@suse.cz>
11738
11739 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
11740 * gimple-pretty-print.c (dump_gimple_bb_header):
11741 Dump BB count.
11742 (pp_cfg_jump): Dump edge probability.
11743 * profile-count.c (profile_quality_as_string): Simplify
11744 with a static array.
11745 (parse_profile_quality): New function.
11746 (profile_count::dump): Simplify with a static array.
11747 (profile_count::from_gcov_type): Add new argument.
11748 * profile-count.h (parse_profile_quality): Likewise.
11749 * predict.h (set_hot_bb_threshold): New.
11750 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
11751 New param.
11752 * predict.c (get_hot_bb_threshold): Set from the new param.
11753 (set_hot_bb_threshold): New.
11754
11755 2019-05-09 Richard Biener <rguenther@suse.de>
11756
11757 PR tree-optimization/90395
11758 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
11759 rewrite vector stores that throw internally.
11760
11761 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
11762
11763 * cif-code.def (CHKP): Remove.
11764
11765 PR target/89221
11766 * configure.ac (--enable-frame-pointer): Disable by default for
11767 GNU systems.
11768 * configure: Regenerate.
11769
11770 2019-05-09 Alan Modra <amodra@gmail.com>
11771
11772 PR target/89271
11773 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
11774 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
11775 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
11776 cost for general <-> vsx when direct moves are available.
11777 Cost union classes at minimal cost for any reg in the class.
11778 Correct calculation for moves between vsx, float, and altivec.
11779 Don't return a low cost for moves between special regs. Don't
11780 use hard coded register numbers.
11781 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
11782 (rs6000_ira_change_pseudo_allocno_class): New function.
11783 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
11784 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
11785 alternatives.
11786 (movsi_internal1): Don't disparage vector alternatives.
11787 (mov<mode>_internal): Likewise, excepting alternative that
11788 will be split.
11789 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
11790 we <- b alternative.
11791
11792 2019-05-08 Jakub Jelinek <jakub@redhat.com>
11793
11794 PR c++/59813
11795 PR tree-optimization/89060
11796 * tree-ssa-live.h (live_vars_map): New typedef.
11797 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
11798 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
11799 (struct compute_live_vars_data): New type.
11800 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
11801 live_vars_at_stmt, destroy_live_vars): New functions.
11802 * tree-tailcall.c: Include tree-ssa-live.h.
11803 (live_vars, live_vars_vec): New global variables.
11804 (find_tail_calls): Perform variable life analysis before punting.
11805 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
11806 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
11807 member.
11808 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
11809 Perform variable life analysis to select variables that really need
11810 clobbers added.
11811 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
11812 instead set id->eh_landing_pad_dest and assert it is the same.
11813 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
11814
11815 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
11816 Richard Earnshaw <rearnsha@arm.com>
11817
11818 PR target/88167
11819 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
11820 function.
11821 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
11822 (thumb1_compute_save_core_reg_mask): Don't force a spare work
11823 register if both the epilogue and prologue can use call-clobbered
11824 regs.
11825 (thumb1_unexpanded_epilogue): Use
11826 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
11827 picking temporaries for restoring high regs to match that of the
11828 prologue where possible.
11829 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
11830 the list of work registers. Detect if the return address is still live
11831 at the end of the prologue and avoid using it for a work register if so.
11832 If the return address is not live, add LR to the list of pushable regs
11833 after the first pass.
11834
11835 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
11836
11837 PR tree-optimization/90078
11838 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
11839 (INFTY): Increase the value for infinite cost.
11840 (struct comp_cost): Promote type of members to int64_t.
11841 (infinite_cost): Don't set complexity in initialization.
11842 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
11843 overflows to infinite_cost.
11844 (adjust_setup_cost): Promote type of parameter and cost computation
11845 to int64_t.
11846 (struct ainc_cost_data, struct iv_ca): Promote type of member to
11847 int64_t.
11848 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
11849 cost computation to int64_t.
11850 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
11851 int64_t's format specifier in dump.
11852
11853 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
11854
11855 PR tree-optimization/90240
11856 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
11857 with respect to scaling factor pre-computed for each basic block.
11858 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
11859 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
11860 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
11861 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
11862 live range for array of loop's basic blocks. Cleanup aux field of
11863 loop's basic blocks.
11864
11865 2019-05-08 Jakub Jelinek <jakub@redhat.com>
11866
11867 PR tree-optimization/90356
11868 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
11869
11870 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
11871
11872 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
11873 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
11874 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
11875 (ix86_handle_option): Handle -mavx512bf16.
11876 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
11877 to extra_headers.
11878 * config/i386/avx512bf16vlintrin.h: New.
11879 * config/i386/avx512bf16intrin.h: New.
11880 * config/i386/cpuid.h (bit_AVX512BF16): New.
11881 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
11882 * config/i386/i386-builtin-types.def: Add new types.
11883 * config/i386/i386-builtin.def: Add new builtins.
11884 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11885 __AVX512BF16__.
11886 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
11887 (ix86_option_override_internal): Handle BF16.
11888 (ix86_valid_target_attribute_inner_p): Ditto.
11889 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
11890 * config/i386/i386-builtin.c (enum processor_features): Add
11891 F_AVX512BF16.
11892 (static const _isa_names_table isa_names_table): Ditto.
11893 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
11894 (PTA_AVX512BF16): Ditto.
11895 * config/i386/i386.opt: Add -mavx512bf16.
11896 * config/i386/immintrin.h: Include avx512bf16intrin.h
11897 and avx512bf16vlintrin.h.
11898 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
11899 avx512f_cvtneps2bf16_<mode><mask_name>,
11900 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
11901 * config/i386/subst.md (mask_half): Add new subst.
11902 * doc/invoke.texi: Document -mavx512bf16.
11903
11904 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
11905
11906 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
11907 Delete declaration.
11908 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
11909 (rs6000_debug_legitimize_reload_address): Delete.
11910 (rs6000_legitimize_reload_address_ptr): Delete.
11911 (rs6000_option_override_internal): Adjust.
11912 (mem_operand_gpr): Adjust comment.
11913 (legitimate_lo_sum_address_p): Ditto.
11914 (rs6000_legitimize_reload_address): Delete.
11915 (rs6000_debug_legitimize_reload_address): Delete.
11916 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
11917
11918 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
11919
11920 PR target/89765
11921 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11922 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
11923 to compute vector element selector for both constant and variable
11924 operands.
11925
11926 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
11927
11928 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
11929 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
11930 ashrdi3_cvt using SWI48 mode iterator.
11931
11932 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11933
11934 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
11935 (aarch64_<su>abd<mode>_3): Likewise.
11936 (*aarch64_<su>abd<mode>_3): New define_insn.
11937 (<sur>sad<vsi2qi>): New define_expand.
11938 * config/aarch64/iterators.md: Added MAX_OPP attribute.
11939 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
11940 (build_vect_cond_expr): Likewise.
11941
11942 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
11943
11944 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
11945 clobbers outside of accessible_reg_set.
11946 * config/i386/i386.c (ix86_conditional_register_usage):
11947 Disable register sets by clearing corresponding bits in
11948 accessible_reg_set. Do not set corresponding bits in fixed_regs,
11949 call_used_regs and don't clear corresponding reg_names array members.
11950
11951 2019-05-07 Richard Biener <rguenther@suse.de>
11952
11953 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
11954 not specified still compute a comp_vectype for invariant
11955 compares.
11956
11957 2019-05-07 Richard Biener <rguenther@suse.de>
11958
11959 PR tree-optimization/90316
11960 * tree-ssa-pre.c (translate_vuse_through_block): When
11961 same_valid is NULL do not bother to search for a virtual
11962 PHI continuation.
11963 (phi_translate_1): When operands changed we cannot keep
11964 the same value-number so do not bother to ask whether
11965 that's possible from translate_vuse_through_block.
11966
11967 2019-05-07 Martin Liska <mliska@suse.cz>
11968
11969 * bitmap.c (bitmap_register): Come up with
11970 alloc_descriptor_max_uid and assign it for
11971 a new bitmap.
11972 (register_overhead): Use get_descriptor as
11973 a descriptor.
11974 (release_overhead): New.
11975 (bitmap_elem_to_freelist): Call it.
11976 (bitmap_elt_clear_from): Likewise.
11977 (bitmap_obstack_free): Likewise.
11978 (bitmap_move): Sensitively release memory.
11979 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
11980 (bitmap_initialize): Initialize alloc_descriptor to zero.
11981 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
11982
11983 2019-05-07 Richard Biener <rguenther@suse.de>
11984
11985 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
11986 we build a SLP node. Remove max_size and limiting.
11987 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
11988
11989 2019-05-07 Richard Biener <rguenther@suse.de>
11990
11991 PR tree-optimization/90316
11992 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
11993 limit by reference.
11994 (walk_non_aliased_vuses): Take walking limit argument.
11995 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
11996 walking if it is reached instead of just counting.
11997 (get_continuation_for_phi): Likewise.
11998 (walk_non_aliased_vuses): Likewise, instead of leaving counter
11999 limiting to the callback.
12000 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
12001 (vn_reference_lookup_3): Likewise.
12002 (vn_reference_lookup_pieces): Likewise.
12003 (vn_reference_lookup): Likewise.
12004 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
12005 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
12006 (avail_exprs_stack::lookup_avail_expr): Likewise.
12007
12008 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
12009
12010 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
12011 for comparaible types in the second direction even if first one
12012 hits incomparable type.
12013
12014 2019-05-07 Richard Biener <rguenther@suse.de>
12015
12016 PR lto/90369
12017 * lto-wrapper.c (debug_objcopy): Use the original filename
12018 including archive offset for the filename used for -save-temps.
12019
12020 2019-05-07 Li Jia He <helijia@linux.ibm.com>
12021
12022 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
12023 detection.
12024
12025 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
12026 Hongtao Liu <hongtao.liu@intel.com>
12027
12028 PR target/89750
12029 PR target/86444
12030 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
12031 Modified, original implementation isn't correct.
12032
12033 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
12034
12035 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
12036 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
12037 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
12038 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
12039 (FRAME_POINTER_REGNUM): Change numbering.
12040 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
12041 (alt_reg_names): Adjust.
12042 (rs6000_conditional_register_usage): Don't mark hard register 64 as
12043 fixed.
12044 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
12045 (DWARF_FRAME_REGISTERS): Delete.
12046 (DWARF2_FRAME_REG_OUT): Fix whitespace.
12047 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
12048 Adjust.
12049 (REG_ALLOC_ORDER): Adjust.
12050 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
12051 (REG_CLASS_CONTENTS): Adjust.
12052 (RETURN_ADDR_RTX): Change comment.
12053 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
12054 instead of 67.
12055 (REGISTER_NAMES): Adjust.
12056 (ADDITIONAL_REGISTER_NAMES): Adjust.
12057 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
12058
12059 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
12060
12061 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
12062 Delete.
12063 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
12064 (DWARF_FRAME_REGISTERS): Adjust.
12065 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
12066 Adjust.
12067 (REG_ALLOC_ORDER): Adjust.
12068 (enum reg_class): Delete SPR_REGS.
12069 (REG_CLASS_NAMES): Delete SPR_REGS.
12070 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
12071 (REGISTER_NAMES): Adjust.
12072 (ADDITIONAL_REGISTER_NAMES): Adjust.
12073 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
12074 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
12075 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
12076 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
12077 (htm_spr_regno): Delete.
12078 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
12079 argument.
12080 (rs6000_dbx_register_number): Adjust.
12081
12082 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
12083
12084 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
12085
12086 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
12087
12088 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
12089 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
12090
12091 2019-05-06 Jakub Jelinek <jakub@redhat.com>
12092
12093 PR tree-optimization/88709
12094 PR tree-optimization/90271
12095 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
12096 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
12097 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
12098 variable.
12099 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
12100 of the store merging group is larger than
12101 PARAM_STORE_MERGING_MAX_SIZE parameter.
12102 (split_group): Add bzero_first argument. If set, always emit first
12103 the first store which must be = {} of the whole area and then for the
12104 rest of the stores consider all zero bytes as paddings.
12105 (imm_store_chain_info::output_merged_store): Check if first store
12106 is = {} of the whole area and if yes, determine which setting of
12107 bzero_first for split_group gives smaller number of stores. Adjust
12108 split_group callers.
12109 (lhs_valid_for_store_merging_p): Allow decls.
12110 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
12111 no elts.
12112 (pass_store_merging::process_store): Likewise.
12113
12114 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
12115
12116 PR target/89424
12117 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
12118 handling of V1TImode.
12119
12120 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
12121
12122 PR target/89221
12123 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
12124 and enable_frame_pointer ...
12125 * configure.ac: ... here. Update help strings for
12126 --enable-frame-pointer.
12127 * configure: Regenerate.
12128 * config/i386/i386-options.c (ix86_option_override_internal): Remove
12129 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
12130 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
12131 (USE_X86_64_FRAME_POINTER): Ditto.
12132
12133 2019-05-06 Martin Liska <mliska@suse.cz>
12134
12135 * config.gcc: Append to target_gtfiles and fix indentation.
12136
12137 2019-05-06 Richard Biener <rguenther@suse.de>
12138
12139 PR tree-optimization/90358
12140 * tree-vect-stmts.c (get_group_load_store_type): Properly
12141 detect unused upper half of load.
12142 (vectorizable_load): Likewise.
12143
12144 2019-05-06 Richard Biener <rguenther@suse.de>
12145
12146 PR tree-optimization/88828
12147 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
12148 (simplify_vector_constructor): ...here. Handle constants in
12149 the constructor.
12150
12151 2019-05-06 Richard Biener <rguenther@suse.de>
12152
12153 PR tree-optimization/90328
12154 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
12155 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
12156 is valid in the loop nest before using it.
12157 (initialize_data_dependence_relation): Adjust.
12158 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
12159 loop as loop-nest to dr_may_alias_p.
12160
12161 2019-05-06 Richard Biener <rguenther@suse.de>
12162
12163 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
12164
12165 2019-05-06 Richard Biener <rguenther@suse.de>
12166
12167 PR tree-optimization/90316
12168 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
12169 compute target on demand.
12170 (get_continuation_for_phi): Remove code walking stmts to
12171 get to a target virtual operand which could end up being
12172 quadratic.
12173
12174 2019-05-06 Martin Liska <mliska@suse.cz>
12175
12176 PR sanitizer/90312
12177 * config/i386/i386-options.c (ix86_option_override_internal): Error only
12178 when -mabi is selected to a non-default version.
12179
12180 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
12181 Martin Liska <mliska@suse.cz>
12182
12183 * Makefile.in: Add lto-dump.texi.
12184 * cgraph.h: Add new functions get_visibility_string and
12185 get_symtab_type_string.
12186 * doc/gcc.texi: Include lto-dump section.
12187 * doc/lto-dump.texi: New file.
12188 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
12189 (parse_dump_option): Factor out this function.
12190 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
12191 (parse_dump_option): Export the function.
12192 * symtab.c (symtab_node::get_visibility_string): New function.
12193 (symtab_node::get_symtab_type_string): Likewise.
12194
12195 2019-05-06 Martin Liska <mliska@suse.cz>
12196
12197 * config/i386/i386-builtins.c: New file.
12198 * config/i386/i386-builtins.h: New file.
12199 * config/i386/i386-expand.c: New file.
12200 * config/i386/i386-expand.h: New file.
12201 * config/i386/i386-features.c: New file.
12202 * config/i386/i386-features.h: New file.
12203 * config/i386/i386-options.c: New file.
12204 * config/i386/i386-options.h: New file.
12205 * config.gcc: Add new files into extra_objs and
12206 target_gtfiles.
12207 * config/i386/i386.c: Split content of the file
12208 into newly introduced files.
12209 * config/i386/i386.h: Declare common variables
12210 and macros.
12211 * config/i386/t-i386: Define dependencies for new files.
12212
12213 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
12214
12215 PR target/89400
12216 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
12217 Restrict 'all' variant to 32-bit configurations.
12218 (unaligned_loadhiu): Likewise.
12219 (unaligned_storehi): Likewise.
12220 (unaligned_storesi): Likewise.
12221 (unaligned_loadhis): Disable when compiling for thumb1.
12222
12223 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
12224
12225 PR tree-optimization/90269
12226 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
12227 Ignore clobbers.
12228
12229 2019-05-03 Martin Liska <mliska@suse.cz>
12230
12231 * hash-map.h: Add is_empty function.
12232 * hash-set.h: Likewise.
12233 * hash-table.h: Likewise.
12234 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
12235 elements () == 0 (and similar usages).
12236 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
12237 * gimplify.c (gimplify_bind_expr): Likewise.
12238 (gimplify_switch_expr): Likewise.
12239 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
12240 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
12241 * postreload-gcse.c (dump_hash_table): Likewise.
12242 (gcse_after_reload_main): Likewise.
12243 * predict.c (combine_predictions_for_bb): Likewise.
12244 * tree-parloops.c (reduction_phi): Likewise.
12245 (separate_decls_in_region): Likewise.
12246 (transform_to_exit_first_loop): Likewise.
12247 (gen_parallel_loop): Likewise.
12248 (gather_scalar_reductions): Likewise.
12249 (try_create_reduction_list): Likewise.
12250 * var-tracking.c (dump_vars): Likewise.
12251 (emit_notes_for_changes): Likewise.
12252 (vt_emit_notes): Likewise.
12253
12254 2019-05-03 Richard Biener <rguenther@suse.de>
12255
12256 PR tree-optimization/90316
12257 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
12258 before running VN.
12259
12260 2019-05-03 Richard Biener <rguenther@suse.de>
12261
12262 * tree-vect-stmts.c (get_group_load_store_type): Avoid
12263 peeling for gaps by loading only lower halves of vectors
12264 if possible.
12265 (vectorizable_load): Likewise.
12266
12267 2019-05-03 Richard Biener <rguenther@suse.de>
12268
12269 PR middle-end/89518
12270 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
12271
12272 2019-05-03 Richard Biener <rguenther@suse.de>
12273
12274 PR middle-end/87314
12275 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
12276 Handle STRING_CST vs DECL or STRING_CST.
12277
12278 2019-05-03 Richard Biener <rguenther@suse.de>
12279
12280 PR tree-optimization/88963
12281 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
12282 vector loads feeding only BIT_FIELD_REFs to component
12283 loads. Rewrite stores fed by CONSTRUCTORs to component
12284 stores.
12285
12286 2019-05-03 Jakub Jelinek <jakub@redhat.com>
12287
12288 * opts.h (finish_options): Remove lang_mask argument.
12289 (print_help, help_option_argument): Declare.
12290 * opts.c (print_help): Remove forward declaration, no longer static.
12291 (finish_options): Remove lang_mask argument, don't call print_help
12292 here.
12293 * opts-global.c (decode_options): Adjust finish_option caller, call
12294 print_help here.
12295
12296 PR tree-optimization/90303
12297 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
12298 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
12299
12300 2019-05-03 Richard Biener <rguenther@suse.de>
12301
12302 PR tree-optimization/89698
12303 * gimple-fold.c (canonicalize_constructor_val): Early out
12304 for constants, handle unfolded INTEGER_CSTs as they appear in
12305 C++ virtual table ctors.
12306
12307 2019-05-03 Richard Biener <rguenther@suse.de>
12308
12309 * passes.c (execute_function_todo): Remove dead code.
12310
12311 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
12312
12313 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
12314 the internal register number, for any "real" register.
12315
12316 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
12317
12318 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
12319 correct numbers for TFHAR, TFIAR, TEXASR.
12320
12321 2019-05-02 Richard Biener <rguenther@suse.de>
12322
12323 PR tree-optimization/89653
12324 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
12325 update-address-taken before the pass.
12326 * passes.def (pass_tree_loop_init): Put comment before it.
12327
12328 2019-05-02 Richard Biener <rguenther@suse.de>
12329
12330 PR tree-optimization/89509
12331 * tree-ssa-structalias.c (compute_dependence_clique): Look
12332 at the first subvar when determining whether it is restrict.
12333
12334 2019-05-02 Richard Biener <rguenther@suse.de>
12335
12336 PR tree-optimization/90273
12337 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
12338 useless debug stmts.
12339
12340 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
12341
12342 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
12343 ACLE branch.
12344 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
12345 SVE ACLE branch.
12346 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
12347 VEC_COND_EXPR be inserted to emulate a conditional internal function.
12348 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
12349 (vectorizable_reduction): Use the functions above to vectorize in a
12350 fully masked loop codes that don't have a conditional internal
12351 function.
12352
12353 2019-05-02 Martin Liska <mliska@suse.cz>
12354
12355 * cgraphclones.c: Call valid_attribute_p with 1 for
12356 target_clone.
12357 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
12358 it's for target attribute.
12359 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
12360 Add new boolean argument.
12361 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
12362 Likewise.
12363 (ix86_valid_target_attribute_tree): Pass target_clone_attr
12364 to ix86_valid_target_attribute_inner_p.
12365 (ix86_valid_target_attribute_p): Pass flags argument to
12366 ix86_valid_target_attribute_inner_p.
12367 (get_builtin_code_for_version): Use 0 as it's target attribute.
12368
12369 2019-05-02 Martin Liska <mliska@suse.cz>
12370
12371 * gcc.c (process_command): Add dummy file only
12372 if n_infiles == 0.
12373 * opts-global.c (decode_options): Pass lang_mask.
12374 * opts.c (print_help): New function.
12375 (finish_options): Print --help if help_option_argument
12376 is set.
12377 (common_handle_option): Factor out content of OPT__help_
12378 into print_help.
12379 * opts.h (finish_options): Add new argument.
12380
12381 2019-05-02 Martin Liska <mliska@suse.cz>
12382
12383 PR target/88809
12384 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
12385 With -minline-all-stringops use inline expansion using 4B loop.
12386 * doc/invoke.texi: Document the change of
12387 -minline-all-stringops.
12388
12389 2019-05-01 Jeff Law <law@redhat.com>
12390
12391 PR tree-optimization/88797
12392 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
12393 PHI feeds a conditional on the RHS of an assignment.
12394
12395 2019-04-30 Andrew Waterman <andrew@sifive.com>
12396 Jim Wilson <jimw@sifive.com>
12397
12398 * config/riscv/constraints.md (L): New.
12399 * config/riscv/predicates.md (lui_operand): New.
12400 (sfb_alu_operand): New.
12401 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
12402 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
12403 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
12404 * config/riscv/risc.md (type): Add sfb_alu.
12405 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
12406 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
12407 (branch_zero<mode>): Delete.
12408 (mov<mode>cc): New.
12409 (mov<GPR:mode><X:mode>cc): Likewise.
12410 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
12411
12412 2019-04-30 Nathan Sidwell <nathan@acm.org>
12413
12414 * tree.h (MARK_TS_EXP): New.
12415
12416 2019-04-30 Martin Liska <mliska@suse.cz>
12417
12418 * opts.c (enable_warning_as_error): Provide hints
12419 for unknown options.
12420
12421 2019-04-30 Martin Liska <mliska@suse.cz>
12422
12423 PR debug/90288
12424 * doc/invoke.texi: Add missing dash for gas-locview-support
12425 and gno-as-locview-support.
12426
12427 2019-04-30 Jakub Jelinek <jakub@redhat.com>
12428
12429 PR target/89093
12430 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
12431 whitespace at the start of target attribute string.
12432
12433 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12434
12435 PR target/86538
12436 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
12437 Define __ARM_FEATURE_ATOMICS.
12438
12439 2019-04-30 Martin Liska <mliska@suse.cz>
12440
12441 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
12442 into built_in_function enum. Remove code for endp == 2 and
12443 use BUILT_IN_* constants.
12444 (gimple_fold_builtin): Call the function with fcode.
12445
12446 2019-04-30 Martin Liska <mliska@suse.cz>
12447
12448 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
12449 DECL_FUNCTION_CODE into ix86_builtins enum before
12450 the switch statement.
12451
12452 2019-04-30 Jakub Jelinek <jakub@redhat.com>
12453
12454 PR tree-optimization/89475
12455 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
12456 calls.
12457
12458 2019-04-30 Martin Liska <mliska@suse.cz>
12459
12460 PR translation/90274
12461 * opts.c (print_filtered_help): Wrap string in _(...).
12462
12463 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
12464
12465 PR tree-optimization/90240
12466 Revert:
12467 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
12468
12469 PR tree-optimization/90078
12470 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
12471 checks for infinite_cost overflow.
12472
12473 2019-04-29 Jeff Law <law@redhat.com>
12474
12475 * passes.def: Move -Wrestrict pass after copy propagation.
12476
12477 2019-04-29 Maya Rashish <coypu@sdf.org>
12478
12479 * config.gcc (default_gnu_indirect_function): Default to yes
12480 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
12481 sparc*-*-netbsd*, x86_64-*-netbsd*.
12482
12483 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
12484
12485 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
12486 where cond2 is NE_EXPR.
12487 (is_value_included_in): Update comment.
12488
12489 2019-04-29 Richard Biener <rguenther@suse.de>
12490
12491 PR tree-optimization/90278
12492 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
12493 EH on comparison simplification.
12494
12495 2019-04-29 Jason Merrill <jason@redhat.com>
12496
12497 PR c++/82081 - tail call optimization breaks noexcept
12498 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
12499 nothrow function to a might-throw function into a tail call.
12500
12501 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
12502
12503 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
12504 (DDR_INNER_LOOP): Likewise.
12505 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
12506 (initialize_data_dependence_relation): Likewise.
12507 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
12508
12509 2019-04-29 Jakub Jelinek <jakub@redhat.com>
12510
12511 PR rtl-optimization/90257
12512 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
12513 return value.
12514
12515 Revert the revert:
12516 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
12517
12518 PR target/90178
12519 Revert:
12520 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
12521
12522 Revert the revert:
12523 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
12524
12525 Revert:
12526 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
12527
12528 * lra-spills.c (lra_final_code_change): Remove useless move insns.
12529
12530 2019-04-29 Richard Biener <rguenther@suse.de>
12531
12532 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
12533 rhs issue a reset.
12534
12535 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
12536
12537 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
12538 varasm.h, and netbsd-protos.h.
12539
12540 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
12541
12542 PR target/89261
12543 * config/i386/i386-protos.h (ix86_data_alignment): Change
12544 the second argument type to unsigned int.
12545 * config/i386/i386.c (ix86_data_alignment): Change "align"
12546 argument type to unsigned int.
12547
12548 2019-04-27 Martin Liska <mliska@suse.cz>
12549
12550 PR middle-end/90258
12551 * opt-suggestions.c (option_proposer::build_option_suggestions):
12552 When get_valid_option_values returns empty values, add the
12553 misspelling candidate.
12554
12555 2019-04-26 Jim Wilson <jimw@sifive.com>
12556
12557 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
12558 parameter.
12559 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
12560 Pass orig_mode to riscv_build_integer.
12561 (riscv_split_integer): Pass mode to riscv_move_integer.
12562 (riscv_legitimize_const_move): Likewise.
12563 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
12564 promoted_mode. Replace force_reg call with code to load constant into
12565 promoted reg and then subreg it for the store.
12566 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
12567 riscv_move_integer.
12568
12569 2018-04-26 Eugene Sharygin <eush@ispras.ru>
12570
12571 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
12572 corrupt codes.
12573
12574 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
12575
12576 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
12577 commentary about the encoding of precision.
12578
12579 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
12580
12581 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
12582 * config/i386/t-freebsd64: New file.
12583 * config.gcc: Add the t-freebsd64 for multilib support.
12584
12585 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
12586
12587 * doc/extend.texi (vector_size): Add missing comma after @xref.
12588
12589 2019-04-25 Jakub Jelinek <jakub@redhat.com>
12590
12591 * BASE-VER: Set to 10.0.0.
12592
12593 2019-04-25 Richard Biener <rguenther@suse.de>
12594
12595 PR middle-end/89765
12596 * gimplify.c (gimplify_expr): Avoid turning a lvalue
12597 VIEW_CONVERT_EXPR into one operating on an rvalue.
12598
12599 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
12600
12601 PR target/89929
12602 * config/i386/i386.c (feature_priority): Moved to file scope.
12603 (processor_features): Likewise.
12604 (processor_model): Likewise.
12605 (_arch_names_table): Likewise.
12606 (arch_names_table): Likewise.
12607 (_feature_list): Removed.
12608 (feature_list): Likewise.
12609 (_isa_names_table): Moved to file scope. Add priority.
12610 (isa_names_table): Likewise.
12611 (get_builtin_code_for_version): Replace feature_list with
12612 isa_names_table. Update error message for P_ZERO priority.
12613
12614 2019-04-25 Richard Biener <rguenther@suse.de>
12615
12616 * tree-pass.h (make_pass_phi_only_cprop): Remove.
12617 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
12618
12619 2019-04-24 Jeff Law <law@redhat.com>
12620
12621 PR tree-optimization/90037
12622 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
12623 * passes.def: Replace all instance of phi-only cprop with the
12624 lattice propagator. Move propagation pass from after erroneous
12625 path isolation to before erroneous path isolation.
12626 * tree-ssa-phionlycprop.c: Remove.
12627
12628 2019-04-24 Richard Biener <rguenther@suse.de>
12629
12630 PR middle-end/90213
12631 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
12632 by size and BITS_PER_UNIT on poly-wide-ints.
12633
12634 2019-04-25 Richard Biener <rguenther@suse.de>
12635
12636 PR middle-end/90194
12637 * match.pd: Add pattern to simplify view-conversion of an
12638 empty constructor.
12639
12640 2019-04-24 Clement Chigot <clement.chigot@atos.net>
12641
12642 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
12643 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
12644 for Go on 32 bit AIX.
12645 * config/rs6000/aix72.h: Likewise.
12646
12647 2019-04-24 Jakub Jelinek <jakub@redhat.com>
12648
12649 PR target/90193
12650 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
12651 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
12652
12653 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
12654
12655 PR target/89952
12656 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
12657 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
12658 for restored hard frame pointer.
12659 (s390_sched_dependencies_evaluation): Implement new target hook.
12660 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
12661
12662 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
12663
12664 * config/arc/arc-options.def: Fix typos and spelling mistakes.
12665 * config/arc/arc.c (arc_init): Cleanup warning message.
12666 (arc_override_options): Likewise.
12667
12668 2019-04-24 Jakub Jelinek <jakub@redhat.com>
12669
12670 PR target/90187
12671 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
12672 a register if both if_true and if_false are MEMs.
12673
12674 PR tree-optimization/90208
12675 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
12676 after labels of new_bb, not before them.
12677
12678 PR tree-optimization/90211
12679 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
12680 which are not SSA_NAMEs.
12681
12682 2018-04-23 Sudakshina Das <sudi.das@arm.com>
12683
12684 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
12685 AArch64.
12686 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
12687
12688 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
12689
12690 PR rtl-optimization/87979
12691 * modulo-sched.c (sms_schedule): Start ii value "mii" should
12692 not equal zero.
12693
12694 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
12695
12696 PR rtl-optimization/84032
12697 * modulo-sched.c (ps_insn_find_column): Change condition so that
12698 branch will always be the last insn in a row inside partial
12699 schedule.
12700
12701 2019-04-23 Richard Biener <rguenther@suse.de>
12702
12703 PR debug/90131
12704 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
12705 dest_single_pred_p argument.
12706 (remove_forwarder_block): Adjust.
12707 (remove_forwarder_block_with_phi): Likewise.
12708
12709 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12710 Bernd Edlinger <bernd.edlinger@hotmail.de>
12711 Jakub Jelinek <jakub@redhat.com>
12712
12713 PR target/89093
12714 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
12715 if used with general-regs-only.
12716 (arm_conditional_register_usage): Don't add non-general regs if
12717 general-regs-only.
12718 (arm_valid_target_attribute_rec): Handle general-regs-only.
12719 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
12720 general-regs-only.
12721 (TARGET_HARD_FLOAT_SUB): Define.
12722 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
12723 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
12724 (TARGET_REALLY_IWMMXT2): Likewise.
12725 * config/arm/arm.opt: Add -mgeneral-regs-only.
12726 * doc/extend.texi: Document ARM general-regs-only target.
12727 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
12728
12729 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
12730
12731 PR tree-optimization/90078
12732 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
12733 checks for infinite_cost overflow.
12734
12735 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
12736
12737 PR tree-optimization/90021
12738 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
12739 and check univariate against it.
12740 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
12741 * tree-data-ref.c (add_other_self_distances): Pass new argument.
12742
12743 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
12744
12745 PR target/90178
12746 Revert:
12747 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
12748
12749 Revert the revert:
12750 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
12751
12752 Revert:
12753 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
12754
12755 * lra-spills.c (lra_final_code_change): Remove useless move insns.
12756
12757 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
12758
12759 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
12760 names using operand format, rather than hard-wired.
12761 (speculation_barrier): Likewise.
12762
12763 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
12764
12765 PR tree-optimization/88055
12766 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
12767 (gen_one_condition): Use it if !HONOR_NANS.
12768
12769 2019-04-19 Jakub Jelinek <jakub@redhat.com>
12770
12771 PR middle-end/90139
12772 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
12773 assign_temp instead of gen_reg_rtx.
12774
12775 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
12776
12777 PR translation/90118
12778 * config/aarch64/aarch64.c (aarch64_override_options_internal):
12779 Add missing space before %<.
12780
12781 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
12782
12783 PR rtl-optimization/87871
12784 * ira-lives.c (make_object_dead): Don't add conflicts to
12785 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
12786
12787 2019-04-18 Martin Sebor <msebor@redhat.com>
12788
12789 PR middle-end/89797
12790 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
12791 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
12792 assuming type size fits in SHWI.
12793
12794 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
12795
12796 PR ipa/85051
12797 * ipa-inline.c (flatten_function): New parameter UPDATE.
12798 (ipa_inline, early_inliner): Use it.
12799
12800 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
12801
12802 * fold-const.c (int_const_binop): Return early on failure.
12803
12804 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
12805
12806 PR middle-end/85164
12807 * combine.c (force_int_to_mode): Cast the argument rather than
12808 the result of known_alignment.
12809 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
12810
12811 2019-04-18 Richard Biener <rguenther@suse.de>
12812
12813 PR debug/90131
12814 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
12815 out from ...
12816 (remove_forwarder_block): ... here.
12817 (remove_forwarder_block_with_phi): Also move debug stmts here.
12818
12819 2019-04-18 Jakub Jelinek <jakub@redhat.com>
12820
12821 PR translation/79183
12822 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
12823 inform where appropriate.
12824
12825 2019-04-18 Richard Biener <rguenther@suse.de>
12826
12827 * tree.c (get_qualified_type): Put found type variants at the
12828 head of the variant list.
12829
12830 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
12831
12832 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
12833
12834 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
12835
12836 PR target/90125
12837 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
12838 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
12839 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
12840 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
12841 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
12842
12843 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
12844
12845 * ira-conflicts.c (print_allocno_conflicts): Always print something,
12846 even for allocno's with no conflicts.
12847 (print_conflicts): Print an extra newline.
12848
12849 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
12850
12851 * auto-inc-dec.c (attempt_change): Set the alignment of the
12852 temporary memory to that of the original.
12853
12854 2019-04-17 Joao Moreira <jmoreira@suse.de>
12855
12856 * targhooks.c (default_print_patchable_function_entry): Emit
12857 __patchable_function_entries section with writable flags to allow
12858 relocation resolution.
12859
12860 2019-04-17 Jonny Grant <jg@jguk.org>
12861
12862 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
12863
12864 2019-04-17 Jakub Jelinek <jakub@redhat.com>
12865
12866 PR middle-end/90095
12867 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
12868 on lowpart SUBREGs.
12869
12870 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
12871
12872 * config/arc/arc.c (arc_init): Format diagnostic string.
12873 (arc_override_options): Likewise.
12874 (check_if_valid_regno_const): Likewise.
12875 (arc_reorg): Likewise.
12876
12877 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
12878
12879 PR target/17108
12880 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
12881 name.
12882 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
12883 name.
12884 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
12885 (*movdi_update1): Use Pmode.
12886 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
12887 (movdi_<mode>_update_stack): Rename to ...
12888 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
12889 use Pmode.
12890 (*movsi_update1): Use Pmode.
12891 (*movsi_update2): Use Pmode.
12892 (movsi_update): Rename to ...
12893 (movsi_<mode>_update): ... this. Use Pmode.
12894 (movsi_update_stack): Fix condition.
12895 (*movhi_update1): Use Pmode. Fix argument to
12896 avoiding_indexed_address_p.
12897 (*movhi_update2): Ditto.
12898 (*movhi_update3): Ditto.
12899 (*movhi_update4): Ditto.
12900 (*movqi_update1): Ditto.
12901 (*movqi_update2): Ditto.
12902 (*movqi_update3): Ditto.
12903 (*movsf_update1, *movdf_update1): Merge, rename to...
12904 (*mov<mode>_update1): This. Use Pmode. Fix argument to
12905 avoiding_indexed_address_p. Add "size" attribute.
12906 (*movsf_update2, *movdf_update2): Merge, rename to...
12907 (*mov<mode>_update2): This. Ditto.
12908 (*movsf_update3): Use Pmode. Fix argument to
12909 avoiding_indexed_address_p.
12910 (*movsf_update4): Ditto.
12911 (allocate_stack): Simplify condition. Adjust pattern names.
12912
12913 2019-04-17 Jakub Jelinek <jakub@redhat.com>
12914
12915 PR target/89093
12916 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
12917 whitespace at the start of target attribute string.
12918
12919 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
12920
12921 PR target/84369
12922 * config/rs6000/power9.md: Add store forwarding bypass.
12923
12924 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
12925
12926 PR debug/89528
12927 * valtrack.c (dead_debug_insert_temp): Reset debug references
12928 to the return value of a call being removed.
12929
12930 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12931
12932 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
12933 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
12934 implement target hook.
12935 (arc_memory_move_cost): New function.
12936 (TARGET_REGISTER_MOVE_COST): Define.
12937 (TARGET_MEMORY_MOVE_COST): Likewise.
12938 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
12939 (MEMORY_MOVE_COST): Likewise.
12940
12941 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12942
12943 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
12944 (sibcall_value_insn): Likewise.
12945 * config/arc/constraints.md (Rs5): Remove.
12946
12947 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12948
12949 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
12950 for last two fake registers.
12951 (arc_conditional_register_usage): Make sure fake frame and arg
12952 pointer regs are in general regs class.
12953 (FRAME_POINTER_MASK): Remove.
12954 (RETURN_ADDR_MASK): Remove.
12955 (arc_must_save_register): Use hard frame regnum.
12956 (frame_restore_reg): Use hard_frame_pointer_rtx.
12957 (arc_save_callee_saves): Likewise.
12958 (arc_restore_callee_saves): Likewise.
12959 (arc_save_callee_enter): Likewise.
12960 (arc_restore_callee_leave): Likewise.
12961 (arc_save_callee_milli): Likewise.
12962 (arc_eh_return_address_location): Likewise.
12963 (arc_check_multi): Use hard frame regnum.
12964 (arc_can_eliminate): Likewise.
12965 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
12966 for register allocator.
12967 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
12968 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
12969 (FRAME_POINTER_REGNUM): Change it to a fake register.
12970 (HARD_FRAME_POINTER_REGNUM): Defined.
12971 (ARG_POINTER_REGNUM): Change it to a new fake register.
12972 (ELIMINABLE_REGS): Update.
12973 (REGISTER_NAMES): Update names.
12974 * config/arc/arc.md (LP_START): Remove.
12975 (LP_END): Likewise.
12976 (shift_si3_loop): Update pattern.
12977
12978 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12979
12980 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
12981 to avoid delay slot scheduling.
12982 (arc_must_save_register): Don't save SP.
12983 * config/arc/arc.md (stack_tie): Remove.
12984 (UNSPEC_ARC_STKTIE): Likewise.
12985
12986 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
12987 Shiva Chen <shiva0217@gmail.com>
12988
12989 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
12990 code gen with large shift amount.
12991
12992 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
12993
12994 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
12995 subreg.
12996
12997 2019-04-16 Jakub Jelinek <jakub@redhat.com>
12998
12999 PR target/90096
13000 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
13001 print -m64/-mx32/-m32 if it is true.
13002 (ix86_debug_options, ix86_function_specific_print): Pass true as
13003 ADD_ABI_P to ix86_target_string.
13004 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
13005 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
13006 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
13007
13008 PR rtl-optimization/90082
13009 * dce.c (can_delete_call): New function.
13010 (deletable_insn_p, mark_insn): Use it.
13011
13012 PR tree-optimization/90090
13013 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
13014 throw internally.
13015 (is_division_by_square): Likewise. Formatting fix.
13016
13017 2019-04-16 Richard Biener <rguenther@suse.de>
13018
13019 PR tree-optimization/56049
13020 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
13021 equality check if alias-set zero will prevail.
13022
13023 2019-04-15 Jeff Law <law@redhat.com>
13024
13025 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
13026 size and alignment as unsigned.
13027
13028 2019-04-15 Richard Biener <rguenther@suse.de>
13029
13030 PR debug/90074
13031 * tree-loop-distribution.c (destroy_loop): Preserve correct
13032 debug info.
13033
13034 2019-04-15 Richard Biener <rguenther@suse.de>
13035
13036 PR tree-optimization/90071
13037 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
13038 abnormal operands from def stmts.
13039
13040 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
13041
13042 PR rtl-optimization/89794
13043 * combine.c (count_auto_inc): New function.
13044 (try_combine): Count how many auto_inc expressions there were in the
13045 original instructions. Ensure we have the same number in the new
13046 instructions. Remove the code that tried to ensure auto_inc side
13047 effects on i1 and i0 are not lost.
13048
13049 2019-04-15 Richard Biener <rguenther@suse.de>
13050
13051 PR ipa/88936
13052 * tree.h (auto_var_p): Declare.
13053 * tree.c (auto_var_p): New function, split out from ...
13054 (auto_var_in_fn_p): ... here.
13055 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
13056 member.
13057 (new_var_info): Initialize it.
13058 (set_uids_in_ptset): Also set the shadow variable uid if required.
13059 (ipa_pta_execute): Postprocess points-to solutions assigning
13060 shadow variable uids for locals that may reach their containing
13061 function recursively.
13062 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
13063 assert but instead check whether the points-to solution is
13064 a singleton.
13065
13066 2019-04-15 Martin Jambor <mjambor@suse.cz>
13067
13068 PR ipa/pr89693
13069 * cgraph.c (clone_of_p): Loop over clone chain for each step in
13070 the thunk chain.
13071
13072 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
13073
13074 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
13075
13076 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
13077 Kito Cheng <kito.cheng@gmail.com>
13078 Shiva Chen <shiva0217@gmail.com>
13079
13080 * config/nds32/nds32-md-auxiliary.c
13081 (nds32_legitimize_pic_address): Use new PIC pattern.
13082 (nds32_legitimize_tls_address): Use new TLS pattern.
13083 (nds32_output_symrel): New.
13084 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
13085 (nds32_alloc_relax_group_id): Ditto.
13086 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
13087 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
13088 relax_group_id.
13089 (nds32_group_tls_insn): Ditto.
13090 (nds32_group_float_insns): Ditto.
13091 * config/nds32/nds32.md (tls_le): New.
13092 (sym_got): Ditto.
13093
13094 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
13095
13096 * configure: Add nds32 target for dwarf2 debug_line checking.
13097 * configure.ac: Regenerated.
13098
13099 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
13100
13101 PR lto/89358
13102 * ipa-devirt.c (skip_in_fields_list_p): New.
13103 (odr_types_equivalent_p): Use it.
13104
13105 2019-04-13 Jakub Jelinek <jakub@redhat.com>
13106
13107 PR target/89093
13108 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
13109 instead of strncmp when checking for thumb and arm. Formatting fixes.
13110
13111 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
13112
13113 * doc/install.texi: Document --with-target-system-zlib.
13114
13115 2019-04-12 Martin Sebor <msebor@redhat.com>
13116
13117 PR c/88383
13118 PR c/89288
13119 PR c/89798
13120 PR c/89797
13121 * targhooks.c (default_vector_alignment): Avoid assuming
13122 argument fits in SHWI.
13123 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
13124 a shift expression.
13125 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
13126
13127 2019-04-12 Jakub Jelinek <jakub@redhat.com>
13128
13129 PR rtl-optimization/89965
13130 * dce.c: Include rtl-iter.h.
13131 (struct check_argument_load_data): New type.
13132 (check_argument_load): New function.
13133 (find_call_stack_args): Check for loads from stack slots still tracked
13134 in sp_bytes and punt if any is found.
13135
13136 * config/mips/loongson-mmiintrin.h: Fix up #error message.
13137
13138 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
13139
13140 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
13141 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
13142
13143 2019-04-12 Martin Liska <mliska@suse.cz>
13144
13145 PR middle-end/89970
13146 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
13147 in error message.
13148 (separate_attrs): Handle multiple 'default's.
13149 (expand_target_clones): Rework error handling code.
13150
13151 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
13152
13153 PR target/87532
13154 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
13155 mode of vector rather than mode of destination for move instruction.
13156 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
13157 Use QI inner mode with V16QI vector mode.
13158
13159 2019-04-12 Jakub Jelinek <jakub@redhat.com>
13160
13161 PR target/52726
13162 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
13163 "invalid %%t operand" in output_operand_lossage message.
13164
13165 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
13166
13167 * config/s390/predicates.md (permute_pattern_operand): New
13168 predicate.
13169 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
13170 operand for the permute pattern.
13171 ("*vec_perm<mode>"): New insn definition.
13172 ("bswap<mode>"): Generate the permute pattern operand in the
13173 expander and perform the operand reloads for pre arch13 level
13174 already.
13175 ("*bswap<mode>_emu"): Rename to ...
13176 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
13177 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
13178 Add the USE operand for the permute pattern.
13179 ("*vec_set_bswap_vec<mode>"): Likewise.
13180
13181 2019-04-12 Jakub Jelinek <jakub@redhat.com>
13182
13183 PR c/89946
13184 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
13185 and gcc_unreachable if it fails, just call tree_to_uhwi which
13186 verifies that too. Test TREE_CHAIN instead of list_length > 1.
13187 Start warning message with a lower-case letter. Formatting fixes.
13188
13189 PR rtl-optimization/90026
13190 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
13191 successors, look for BARRIERs inside of the whole BB_FOOTER chain
13192 rather than just at the start of it. If e->src BB_FOOTER is not NULL
13193 in cfglayout mode, use emit_barrier_after_bb.
13194
13195 2018-04-11 Steve Ellcey <sellcey@marvell.com>
13196
13197 PR rtl-optimization/87763
13198 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
13199 New Instruction.
13200
13201 2019-04-11 Tom de Vries <tdevries@suse.de>
13202
13203 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
13204 max macro using statement expression.
13205
13206 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
13207
13208 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
13209 * xcoffout.c (xcoff_private_rodata_section_name): Define.
13210 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
13211 read_only_private_data_section using xcoff_private_rodata_section_name.
13212 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
13213
13214 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
13215
13216 PR target/90016
13217 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
13218
13219 2019-04-11 Jakub Jelinek <jakub@redhat.com>
13220
13221 PR rtl-optimization/89965
13222 * dce.c (sp_based_mem_offset): New function.
13223 (find_call_stack_args): Use sp_based_mem_offset.
13224
13225 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
13226
13227 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
13228
13229 2019-04-11 Richard Biener <rguenther@suse.de>
13230
13231 PR tree-optimization/90020
13232 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
13233 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
13234 * tree-ssa-pre.c (compute_avail): Use it to not put
13235 possibly trapping references after a call that might not
13236 return into EXP_GEN.
13237 * gcse.c (compute_hash_table_work): Do not elide
13238 marking a block containing a call if the call might not
13239 return.
13240
13241 2019-04-11 Richard Biener <rguenther@suse.de>
13242
13243 PR tree-optimization/90018
13244 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
13245 Test both SLP and interleaving variants.
13246
13247 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
13248
13249 * config/s390/8561.md: New file.
13250 * config/s390/driver-native.c (s390_host_detect_local_cpu):
13251 Add arch13 cpu model.
13252 * config/s390/s390-opts.h (enum processor_type): Likewise.
13253 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
13254 (s390_get_unit_mask): Likewise.
13255 (s390_is_fpd): Likewise.
13256 (s390_is_fxd): Likewise.
13257 * config/s390/s390.h (s390_tune_attr): Likewise.
13258 * config/s390/s390.md: Include arch13 pipeline description.
13259 * config/s390/s390.opt: Add arch13.
13260
13261 2018-04-10 Steve Ellcey <sellcey@marvell.com>
13262
13263 PR rtl-optimization/87763
13264 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
13265 New prototype.
13266 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
13267 New function.
13268 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
13269 New instruction.
13270 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
13271 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
13272 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
13273 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
13274
13275 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
13276
13277 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
13278 "Although" in -fipa-icf documentation.
13279
13280 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
13281 of using multiple -g options.
13282
13283 2019-04-10 Martin Liska <mliska@suse.cz>
13284
13285 PR gcov-profile/89959
13286 * doc/gcov.texi: Make documentation of -x option
13287 more precise.
13288
13289 2019-04-10 Richard Biener <rguenther@suse.de>
13290
13291 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
13292 member.
13293 (DR_GROUP_SAME_DR_STMT): Remove.
13294 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
13295 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
13296 replace with assert.
13297 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
13298 (vect_record_grouped_load_vectors): Remove unreachable code.
13299
13300 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
13301
13302 PR target/90016
13303 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
13304 obsolete reference to N.
13305
13306 2019-04-10 Jakub Jelinek <jakub@redhat.com>
13307
13308 PR middle-end/90025
13309 * expr.c (store_expr): Set properly size on the MEM passed to
13310 clear_storage.
13311
13312 PR c++/90010
13313 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
13314 with strlen in between hostsz-3 and hostsz-1 inclusive when no
13315 translation is needed, and when translation is needed, only append
13316 ... if the string length is hostsz or more bytes long. Avoid using
13317 strncpy or strcat.
13318
13319 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
13320
13321 PR target/90024
13322 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
13323 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
13324 into three.
13325 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
13326 differences directly.
13327 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
13328
13329 2019-04-09 Jakub Jelinek <jakub@redhat.com>
13330
13331 PR translation/90011
13332 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
13333 from diagnostics.
13334 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
13335 diagnostics.
13336 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
13337 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
13338 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
13339 trailing space from -gsplit-dwarf diagnostics.
13340
13341 PR tree-optimization/89998
13342 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
13343 instead of integer_type_node if possible, don't add ranges if return
13344 type is not compatible with int.
13345 * gimple-fold.c (gimple_fold_builtin_sprintf,
13346 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
13347 integer_type_node.
13348
13349 2019-04-09 Martin Liska <mliska@suse.cz>
13350
13351 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
13352 * doc/install.texi: Document the new config.
13353
13354 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
13355
13356 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
13357 use gimple_expr_type for load and store calls. Skip over the
13358 condition argument in a conditional internal function.
13359 Protect use of TREE_INT_CST_LOW.
13360
13361 2019-04-09 Jakub Jelinek <jakub@redhat.com>
13362
13363 PR target/90015
13364 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
13365 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
13366 trailing period from it too.
13367
13368 2019-04-08 wu yuan <wuyuan5@huawei.com>
13369
13370 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
13371 * config/aarch64/aarch64.md : Add "tsv110.md"
13372 * config/aarch64/tsv110.md: New file.
13373
13374 2019-04-08 Richard Biener <rguenther@suse.de>
13375
13376 PR tree-optimization/90006
13377 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
13378 calls like lrint.
13379
13380 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
13381
13382 PR target/83033
13383 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
13384 construction.
13385 (fma_root_node): Likewise.
13386 (func_fma_steering): Likewise.
13387
13388 2019-04-08 Jakub Jelinek <jakub@redhat.com>
13389
13390 PR rtl-optimization/89865
13391 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
13392
13393 PR rtl-optimization/89865
13394 * config/i386/i386.md
13395 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
13396 numbers not to clash with the additional operands[4].
13397 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
13398 with extra register copy in the middle.
13399
13400 2019-04-08 Martin Liska <mliska@suse.cz>
13401
13402 PR gcov-profile/89961
13403 * doc/gcov.texi: Document data_file.
13404 * gcov.c (generate_results): Add data_info into JSON output.
13405
13406 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
13407
13408 PR tree-optimization/89725
13409 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
13410 loop's chrec as invariant symbol.
13411 * tree-chrec.h (chrec_contains_symbols): New parameter.
13412 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
13413 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
13414 function of loops not in DDR's loop_nest.
13415 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
13416
13417 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
13418
13419 PR target/89623
13420 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
13421 Mask.
13422
13423 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
13424
13425 PR target/89945
13426 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
13427 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
13428
13429 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
13430
13431 * sched-deps.c (sched_macro_fuse_insns): Check return value of
13432 targetm.fixed_condition_code_regs.
13433
13434 2019-04-05 Richard Biener <rguenther@suse.de>
13435
13436 PR debug/89892
13437 PR debug/89905
13438 * tree-cfgcleanup.c (remove_forwarder_block): Always move
13439 debug bind stmts but reset them if they are not valid at the
13440 destination.
13441
13442 2019-04-05 Martin Liska <mliska@suse.cz>
13443
13444 PR translation/89936
13445 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
13446 order to wrap keywords or arguments.
13447 * collect2.c (main): Likewise.
13448 (scan_prog_file): Likewise.
13449 (scan_libraries): Likewise.
13450 * common/config/riscv/riscv-common.c
13451 (riscv_subset_list::parsing_subset_version): Likewise.
13452 (riscv_subset_list::parse_std_ext): Likewise.
13453 * config/aarch64/aarch64.c (aarch64_override_options_internal):
13454 Likewise.
13455 * config/arm/arm.c (arm_option_override): Likewise.
13456 * config/cris/cris.c (cris_print_operand): Likewise.
13457 * config/darwin-c.c (darwin_pragma_options): Likewise.
13458 (darwin_pragma_unused): Likewise.
13459 (darwin_pragma_ms_struct): Likewise.
13460 * config/ft32/ft32.c (ft32_print_operand): Likewise.
13461 * config/i386/i386.c (print_reg): Likewise.
13462 (ix86_print_operand): Likewise.
13463 * config/i386/xm-djgpp.h: Likewise.
13464 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
13465 * config/m32c/m32c.c (m32c_option_override): Likewise.
13466 * config/msp430/msp430.c (msp430_option_override): Likewise.
13467 * config/nds32/nds32.c (nds32_option_override): Likewise.
13468 * config/nvptx/mkoffload.c (main): Likewise.
13469 * config/rx/rx.c (rx_print_operand): Likewise.
13470 (valid_psw_flag): Likewise.
13471 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
13472 (vms_pragma_nomember_alignment): Likewise.
13473 (vms_pragma_extern_model): Likewise.
13474 * lto-wrapper.c (compile_offload_image): Likewise.
13475 * omp-offload.c (oacc_parse_default_dims): Likewise.
13476 * symtab.c (symtab_node::verify_base): Likewise.
13477 * tlink.c (recompile_files): Likewise.
13478 (start_tweaking): Likewise.
13479 * tree-profile.c (parse_profile_filter): Likewise.
13480
13481 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
13482
13483 PR tree-optimization/89956
13484 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
13485 multiple negates of the same value.
13486
13487 2019-04-04 Martin Sebor <msebor@redhat.com>
13488
13489 PR middle-end/89957
13490 PR middle-end/89911
13491 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
13492 have the same precision since the function crashes otherwise.
13493 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
13494 has non-zero arguments.
13495
13496 2019-04-04 Martin Sebor <msebor@redhat.com>
13497
13498 PR middle-end/89934
13499 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
13500 out if the number of arguments is less than expected.
13501
13502 2019-04-04 Jeff Law <law@redhat.com>
13503
13504 PR rtl-optimization/89399
13505 * ree.c (combine_set_extension): Use single_set rather than
13506 digging into PATTERN for items on the candidate list.
13507 (combine_reaching_defs): Likewise.
13508
13509 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
13510
13511 PR rtl-optimization/46590
13512 * loop-invariant.c (find_defs): Move df_remove_problem and
13513 df_process_deferred_rescans to move_invariants.
13514 Move df_live_add_problem and df_live_set_all_dirty calls
13515 to move_invariants.
13516 (move_invariants): Likewise.
13517 (move_loop_invariants): Likewise, making the df_live calls
13518 conditional on -O. Remove the problem again if we added it
13519 locally.
13520
13521 2019-04-03 qing zhao <qing.zhao@oracle.com>
13522
13523 PR tree-optimization/89730
13524 * ipa-inline.c (can_inline_edge_p): Delete the checking for
13525 -flive-patching=inline-only-static.
13526 (can_inline_edge_by_limits_p): Add the checking for
13527 -flive-patching=inline-only-static and grant always_inline
13528 even when -flive-patching=inline-only-static is specified.
13529
13530 2019-04-03 Jeff Law <law@redhat.com>
13531
13532 PR rtl-optimization/81025
13533 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
13534
13535 2019-04-03 Richard Biener <rguenther@suse.de>
13536
13537 PR tree-optimization/84101
13538 * tree-vect-stmts.c: Include explow.h for hard_function_value,
13539 regs.h for hard_regno_nregs.
13540 (cfun_returns): New helper.
13541 (vect_model_store_cost): When vectorizing a store to a decl
13542 we return and the function ABI returns in a multi-reg location
13543 account for the possible spilling that will happen.
13544
13545 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
13546
13547 * config/s390/s390.c (s390_legitimate_address_p): Reject long
13548 displacement addresses for vector mode operands.
13549
13550 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
13551
13552 * config/arc/arc.c (GMASK_LEN): Define.
13553 (arc_restore_callee_saves): Restore first blink when
13554 !optimize_size.
13555
13556 2019-04-03 Sudakshina Das <sudi.das@arm.com>
13557
13558 * doc/extend.texi: Add deprecated comment on sign-return-address
13559 function attribute and add mbranch-protection.
13560 * doc/invoke.texi: Add bti to the options for mbranch-protection.
13561
13562 2019-04-03 Richard Biener <rguenther@suse.de>
13563
13564 PR lto/89896
13565 * lto-wrapper.c (run_gcc): Avoid implicit rules making
13566 the all target phony.
13567
13568 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
13569
13570 PR target/89902
13571 PR target/89903
13572 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
13573 Return false for variable DImode shifts.
13574 (dimode_scalar_chain::compute_convert_gain): Do not handle
13575 register count operand in variable DImode shifts.
13576 (dimode_scalar_chain::make_vector_copies): Remove support to copy
13577 count argument of a variable shift instruction to a vector register.
13578 (dimode_scalar_chain::convert_reg): Remove support to convert
13579 count argument of a variable shift instruction.
13580
13581 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
13582
13583 PR rtl-optimization/84206
13584 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
13585 iterating over loop headers.
13586
13587 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
13588
13589 PR rtl-optimization/85876
13590 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
13591 beyond the original fence.
13592
13593 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
13594
13595 * config.gcc: Mark spu* targets as deprecated/obsolete.
13596
13597 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13598
13599 * config/s390/s390-builtin-types.def: New builtin function type
13600 definitions. Remove unused types.
13601 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
13602 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
13603 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
13604 overloaded builtins.
13605 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
13606 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
13607 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
13608 (vec_double, vec_signed, vec_unsigned): Define to use the new
13609 overloaded builtins.
13610 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
13611 Remove expanders.
13612
13613 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13614
13615 * config/s390/s390-builtin-types.def: New builtin function type
13616 definitions.
13617 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
13618 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
13619 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
13620 (s390_vstrszh, s390_vstrszf): New low-level builtins.
13621 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
13622 constant definitions.
13623 * config/s390/vecintrin.h (vec_search_string_cc)
13624 (vec_search_string_until_zero_cc): New builtin name definitions.
13625 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
13626 expanders.
13627 ("vec_vstrs<mode>"): New insn definition.
13628
13629 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13630
13631 * config/s390/s390-builtin-types.def: Add new builtin function
13632 types.
13633 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
13634 New overloaded builtins.
13635 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
13636 s390_vsrd.
13637 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
13638 (UNSPEC_VEC_SLDBYTE): ... this.
13639 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
13640 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
13641 definitions.
13642 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
13643 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
13644 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
13645
13646 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13647
13648 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
13649 New insn definition.
13650 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
13651 * config/s390/vector.md (V_HW_HSD): ... here.
13652
13653 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13654
13655 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
13656 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
13657 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
13658 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
13659 New insn definitions.
13660
13661 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13662
13663 * config/s390/s390-builtin-types.def: Add new builtin function type.
13664 * config/s390/s390-builtins.def: Add overloaded builtin
13665 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
13666 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
13667 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
13668 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
13669 ("eltswap<mode>"): New expander.
13670 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
13671 insn definitions.
13672
13673 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13674
13675 * config/s390/s390-builtin-types.def: Add new builtin function types.
13676 * config/s390/s390-builtins.def: Add overloaded builtin
13677 s390_vec_revb. Add low-level builtins for vlbr and vstbr
13678 instructions.
13679 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
13680 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
13681 ("bswap<mode>"): New expander.
13682 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
13683
13684 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13685
13686 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
13687 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
13688 vector builtin version number in __VEC__.
13689
13690 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13691
13692 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
13693 iterators.
13694 (SFSI): New mode attribute.
13695 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
13696 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
13697 rename to ...
13698 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
13699 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
13700 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
13701 ("floatsi<mode>2"): Add wcefb instruction.
13702
13703 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13704
13705 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
13706 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
13707 mode iterators.
13708 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
13709 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
13710 support 32 bit fp-int conversions. Rename to ...
13711 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
13712 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
13713 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
13714 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
13715 ... to these.
13716
13717 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13718
13719 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
13720 if-then-else constructs if we can use the select instruction.
13721 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
13722
13723 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13724
13725 * config/s390/s390.md ("*popcountdi_arch13_cc")
13726 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
13727 definition.
13728 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
13729 Append _z196 to make it ...
13730 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
13731 ("popcounthi2_z196"): ... this.
13732 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
13733 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
13734
13735 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13736
13737 * config/s390/s390.c (s390_canonicalize_comparison): Convert
13738 certain compares for arch13 in order to make use of the condition
13739 code result produced by the new instructions.
13740 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
13741 nxrk, and nxgrk instruction patterns.
13742 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
13743 (inv_no): Add new code iterator together with some attributes.
13744 ("*andc_split_<mode>"): Disable splitter for arch13.
13745 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
13746 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
13747 ("*<ANDOR:bitops_name>c<GPR:mode>")
13748 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
13749 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
13750 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
13751 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
13752
13753 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13754
13755 * common/config/s390/s390-common.c (processor_flags_table): New
13756 entry for arch13.
13757 * config.gcc: Support arch13 with the --with-arch= configure flag.
13758 * config/s390/driver-native.c (s390_host_detect_local_cpu):
13759 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
13760 * config/s390/s390.c (s390_get_sched_attrmask)
13761 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
13762 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
13763 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
13764 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
13765 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
13766 definitions.
13767 * config/s390/s390.opt: Support arch13 as processor type in
13768 command line options.
13769
13770 2019-04-02 Martin Liska <mliska@suse.cz>
13771
13772 PR translation/89912
13773 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
13774 Fix param description of graphite-max-arrays-per-scop.
13775
13776 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
13777
13778 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
13779 (ASAN_CC1_SPEC): Use it in 64-bit mode.
13780 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
13781
13782 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
13783
13784 PR rtl-optimization/85412
13785 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
13786 sel_sched_region_1, not after.
13787
13788 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
13789
13790 PR rtl-optimization/86928
13791 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
13792 compute_live if necessary.
13793 (sel_redirect_edge_and_branch): Likewise.
13794
13795 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
13796
13797 PR rtl-optimization/89865
13798 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
13799 register if it is a part of small class.
13800
13801 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
13802
13803 PR rtl-optimization/87273
13804 * sel-sched-ir.c (merge_fences): Remove assert.
13805
13806 2019-04-01 Richard Biener <rguenther@suse.de>
13807
13808 PR tree-optimization/46590
13809 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
13810 (dom_walker::m_reachability): Add in place of...
13811 (dom_walker::m_skip_unreachable_blocks): ...this.
13812 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
13813 Move complex initialization ...
13814 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
13815 lazily and initialize edge flags on each invocation.
13816 (dom_walker::bb_reachable): Use m_reachability.
13817
13818 2019-04-01 Martin Liska <mliska@suse.cz>
13819
13820 PR driver/89861
13821 * opt-suggestions.c (option_proposer::build_option_suggestions):
13822 Add variant without any argument in order to provide better
13823 hints.
13824
13825 2019-04-01 Richard Biener <rguenther@suse.de>
13826
13827 PR c/71598
13828 * gimple.c: Include langhooks.h.
13829 (gimple_get_alias_set): Treat enumeral types as the underlying
13830 integer type.
13831
13832 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
13833 Eric Botcazou <ebotcazou@adacore.com>
13834
13835 PR rtl-optimization/89862
13836 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
13837 that operates on the full registers for WORD_REGISTER_OPERATIONS
13838 architectures.
13839
13840 2019-03-29 Jim Wilson <jimw@sifive.com>
13841
13842 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
13843 Clear MASK_RVC and then set if C subset supported.
13844
13845 2019-03-29 Jakub Jelinek <jakub@redhat.com>
13846
13847 PR c/89872
13848 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
13849 non-addressable complit into its initializer if it is volatile.
13850
13851 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
13852
13853 * opts-common.c (integral_argument): Set errno properly in one case.
13854
13855 2019-03-29 Martin Liska <mliska@suse.cz>
13856
13857 * doc/invoke.texi: Remove -Wchkp from documentation.
13858
13859 2019-03-29 Martin Liska <mliska@suse.cz>
13860
13861 * dbgcnt.c (print_limit_reach): New function.
13862 (dbg_cnt): Use it.
13863
13864 2019-03-29 Martin Liska <mliska@suse.cz>
13865
13866 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
13867 (dbg_cnt_process_opt): Parse first tokens aas
13868 dbg_cnt_process_single_pair is also using strtok.
13869
13870 2019-03-29 Jakub Jelinek <jakub@redhat.com>
13871
13872 PR rtl-optimization/87485
13873 * function.c (expand_function_end): Move stack_protect_epilogue
13874 before loading of return value into hard register(s).
13875
13876 2019-03-28 Jakub Jelinek <jakub@redhat.com>
13877
13878 PR middle-end/89621
13879 * tree-inline.h (struct copy_body_data): Add
13880 dont_remap_vla_if_no_change flag.
13881 * tree-inline.c (remap_type_3, remap_type_2): New functions.
13882 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
13883 and remap_type_2 returns false.
13884 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
13885 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
13886 only from where it is copied to nested contexts.
13887
13888 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
13889
13890 PR target/89865
13891 * config/i386/i386.md (RMW operation with LEA peephole):
13892 Use LEAMODE mode attribute instead of SWI mode iterator for
13893 LEA pattern.
13894
13895 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
13896
13897 PR target/89848
13898 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
13899 Also process XEXP (src, 0) of a shift insn.
13900
13901 2019-03-28 David Malcolm <dmalcolm@redhat.com>
13902
13903 PR middle-end/89725
13904 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
13905 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
13906
13907 2019-03-28 Jakub Jelinek <jakub@redhat.com>
13908
13909 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
13910 test.
13911 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
13912 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
13913 immediately after first one with df_analyze in between, but rather
13914 process all bbs, queueing ones that need second pass in a worklist,
13915 df_analyze, process queued debug insn changes and if second pass is
13916 needed, process bbs from worklist, df_analyze, process queued debug
13917 insns again.
13918
13919 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
13920 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
13921 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
13922
13923 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
13924
13925 PR c/79022
13926 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
13927 definition.
13928
13929 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
13930
13931 PR target/85667
13932 * config/i386/i386.c (ix86_function_value_1): Call the newly added
13933 function for 32-bit MS_ABI.
13934 (function_value_ms_32): New function.
13935
13936 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
13937
13938 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
13939 (movdi): Call gen_movdi_symbol_save_scc.
13940 (gen_movdi_symbol_save_scc): New insn and split.
13941
13942 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
13943
13944 PR rtl-optimization/89313
13945 * function.c (matching_constraint_num): New static function.
13946 (match_asm_constraints_1): Use it. Fixup white space and comment.
13947 Don't replace inputs with non-matching constraints which conflict
13948 with early clobber outputs.
13949
13950 2019-03-27 Jeff Law <law@redhat.com>
13951
13952 PR rtl-optimization/87761
13953 PR rtl-optimization/89826
13954 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
13955 slightly later.
13956 (pass_cprop_hardreg::execute): Call df_analyze after adding the
13957 note problem to get REG_DEAD/REG_UNUSED notes updated.
13958
13959 2019-03-27 Richard Biener <rguenther@suse.de>
13960
13961 PR tree-optimization/89463
13962 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
13963 queue edges to remove.
13964 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
13965 dead stmts. Delay edge removal until PHIs are removed to
13966 make debug-stmt creation not confused by seemingly degenerate
13967 PHIs.
13968
13969 2019-03-27 Alan Modra <amodra@gmail.com>
13970
13971 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
13972 throughout file.
13973 * config/rs6000/darwin.h: Likewise.
13974 * config/rs6000/rs6000.c: Likewise.
13975
13976 2019-03-27 Alan Modra <amodra@gmail.com>
13977
13978 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
13979 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
13980
13981 2019-03-26 Andrew Waterman <andrew@sifive.com>
13982 Jim Wilson <jimw@sifive.com>
13983
13984 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
13985 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
13986 (generic_idivdi, generic_fmul_single, generic_fmul_double)
13987 (generic_fdiv, generic_fsqrt): Add check for generic tune.
13988 (generic_alu): Add auipc to type list.
13989 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
13990 (riscv_microarchitecture): Declare.
13991 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
13992 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
13993 field.
13994 (riscv_microarchitecture): New.
13995 (sifive_7_tune_info): New.
13996 (riscv_cpu_info_table): Add microarchitecture value for rocket and
13997 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
13998 entries.
13999 (riscv_store_data_bypass_p): New.
14000 (riscv_option_override): Set riscv_microarchitecture from
14001 cpu->microarchitecture.
14002 * config/riscv/riscv.md: Include sifive-7.md.
14003 (type): Add auipc.
14004 (tune): New.
14005 (auipc<mode>): Change type to auipc.
14006 (restore_stack_nonlocal): New.
14007 * config/riscv/sifive-7.md: New.
14008 * doc/invoke.texi (RISC-V Options): Update mtune docs.
14009
14010 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
14011
14012 PR target/89827
14013 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
14014 Also process XEXP (src, 0) of a shift insn.
14015
14016 2019-03-26 Richard Biener <rguenther@suse.de>
14017
14018 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
14019 (copy_debug_stmt): Likewise.
14020 (expand_call_inline): Likewise.
14021 (copy_bb): Avoid redundant lookup & set of gimple_block.
14022 * gimple-low.c (lower_gimple_return): Likewise.
14023 (lower_builtin_setjmp): Likewise.
14024
14025 2019-03-26 Jakub Jelinek <jakub@redhat.com>
14026
14027 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
14028 is constant 0, turn into static const data member initialized to false.
14029 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
14030 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
14031
14032 2019-03-26 Jason Merrill <jason@redhat.com>
14033 Jakub Jelinek <jakub@redhat.com>
14034
14035 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
14036 method.
14037 (mem_alloc_description::release_object_overhead): Fix comment typos.
14038 * hash-table.h (hash_table::~hash_table): Call
14039 release_instance_overhead only if m_entries is non-NULL, otherwise
14040 call unregister_descriptor.
14041
14042 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
14043
14044 PR tree-optimization/81740
14045 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
14046 In case of outer loop vectorization, check for backward dependence
14047 at the inner loop if outer loop dependence is reversed.
14048
14049 2019-03-26 Alan Modra <amodra@gmail.com>
14050
14051 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
14052 rs6000_vector_mem init. Correct wI and wJ comment.
14053
14054 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
14055
14056 PR rtl-optimization/88347
14057 PR rtl-optimization/88423
14058 * sched-deps.c (sched_analyze_insn): Take into account that for
14059 tablejumps the barrier appears after a label and a jump_table_data.
14060
14061 2019-03-25 Martin Sebor <msebor@redhat.com>
14062
14063 PR c/89812
14064 * c-common.c (check_user_alignment): Rename local. Correct maximum
14065 alignment in diagnostic. Avoid assuming argument fits in SHWI,
14066 convert it to UHWI when it fits.
14067
14068 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
14069
14070 PR debug/86964
14071 * dwarf2out.c (premark_used_variables): New function.
14072 (prune_unused_types_walk): Do not mark not premarked external
14073 variables.
14074 (prune_unused_types): Call premark_used_variables.
14075
14076 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
14077
14078 PR rtl-optimization/89676
14079 * lra-constraints.c (curr_insn_transform): Do match reload for
14080 early clobbers when the match was successful only for different
14081 registers.
14082
14083 2019-03-25 Martin Sebor <msebor@redhat.com>
14084
14085 * doc/extend.texi (Common Type Attributes): Document vector_size.
14086 (Common Variable Attributes): Mention size constraint. Correct
14087 quoting and typos.
14088 (Vector Extensions): Use @dfn when defining bas type. Clarify
14089 base type and size constraints.
14090
14091 2019-03-25 Richard Biener <rguenther@suse.de>
14092
14093 PR tree-optimization/89789
14094 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
14095 changes from non-undefined back to undefined.
14096
14097 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
14098
14099 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
14100 heap string and a gc string, but since this variable is unknown to
14101 ggc the gc string might get reused and corrupted. Fixed by always
14102 using a heap string.
14103
14104 2019-03-25 Richard Biener <rguenther@suse.de>
14105
14106 PR tree-optimization/89779
14107 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
14108 to remove IV defs, delay actual removal.
14109 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
14110 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
14111 very end, properly also reset loop control IV information.
14112
14113 2019-03-25 Richard Biener <rguenther@suse.de>
14114
14115 PR tree-optimization/89802
14116 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
14117 move EH data to folded stmt.
14118
14119 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
14120
14121 * config/s390/s390-builtin-types.def: Remove few unused types and
14122 fix sort order for others.
14123
14124 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
14125
14126 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
14127 expected and found types with -mdebug during builtin matching.
14128
14129 2019-03-25 Richard Biener <rguenther@suse.de>
14130
14131 PR middle-end/89790
14132 * fold-const.c (operand_equal_p): Revert last change with
14133 updated comment.
14134
14135 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
14136
14137 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
14138 notes for the result of the __tls_get_addr calls.
14139 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
14140
14141 2019-03-24 Jeff Law <law@redhat.com>
14142
14143 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
14144
14145 PR rtl-optimization/87761
14146 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
14147 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
14148 as needed.
14149 (pass_cprop_hardreg::execute): Add df note problem and defer insn
14150 rescans. Reprocess blocks as needed, calling df_analyze before
14151 reprocessing. Always call df_analyze before fixing up debug bind
14152 insns.
14153
14154 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
14155
14156 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
14157 big endian.
14158
14159 2019-03-22 Andrew Pinski <apinski@marvell.com>
14160
14161 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
14162 attrribute for uxtw.
14163
14164 2019-03-26 Jeff Law <law@redhat.com>
14165
14166 PR rtl-optimization/87761
14167 * config/mips/mips-protos.h (mips_split_move): Add new argument.
14168 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
14169 (mips_split_move): Accept new INSN argument. Try to forward SRC
14170 into the next instruction.
14171 (mips_split_move_insn): Pass INSN through to mips_split_move.
14172
14173 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
14174
14175 PR rtl-optimization/89676
14176 * lra-constraints.c (curr_insn_transform): Do match reload for
14177 early clobbers even if the match was successful.
14178
14179 2019-03-22 Jakub Jelinek <jakub@redhat.com>
14180
14181 PR c++/87481
14182 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
14183
14184 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
14185
14186 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
14187
14188 2019-03-22 Jakub Jelinek <jakub@redhat.com>
14189
14190 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
14191 <avx512>_fmsub_<mode>_mask3<round_name>,
14192 <avx512>_fnmadd_<mode>_mask3<round_name>,
14193 <avx512>_fnmsub_<mode>_mask3<round_name>,
14194 avx512f_vmfmadd_<mode>_mask3<round_name>,
14195 avx512f_vmfmsub_<mode>_mask3<round_name>,
14196 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
14197 instead of register_operand and %v instead of v for match_operand 1.
14198 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
14199 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
14200 <round_nimm_predicate> instead of register_operand and %v instead of v
14201 for match_operand 1.
14202
14203 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
14204 <avx512>_fmadd_<mode>_mask3<round_name>,
14205 <avx512>_fmsub_<mode>_mask<round_name>,
14206 <avx512>_fmsub_<mode>_mask3<round_name>,
14207 <avx512>_fnmadd_<mode>_mask<round_name>,
14208 <avx512>_fnmadd_<mode>_mask3<round_name>,
14209 <avx512>_fnmsub_<mode>_mask<round_name>,
14210 <avx512>_fnmsub_<mode>_mask3<round_name>,
14211 <avx512>_fmaddsub_<mode>_mask<round_name>,
14212 <avx512>_fmaddsub_<mode>_mask3<round_name>,
14213 <avx512>_fmsubadd_<mode>_mask<round_name>,
14214 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
14215 <round_nimm_predicate> instead of nonimmediate_operand.
14216 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
14217 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
14218 Use register_operand instead of <round_nimm_predicate> for the
14219 operand that needs to match output.
14220 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
14221 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
14222 Likewise. Formatting fixes.
14223
14224 PR target/89784
14225 * config/i386/i386.c (enum ix86_builtins): Remove
14226 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
14227 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
14228 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
14229 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
14230 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
14231 __builtin_ia32_vfmsubss3_mask3): New builtins.
14232 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
14233 avx512f_vmfmadd_<mode>_mask3<round_name>,
14234 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
14235 *avx512f_vmfmsub_<mode>_mask<round_name>,
14236 avx512f_vmfmsub_<mode>_mask3<round_name>,
14237 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
14238 *avx512f_vmfnmadd_<mode>_mask<round_name>,
14239 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
14240 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
14241 *avx512f_vmfnmsub_<mode>_mask<round_name>,
14242 avx512f_vmfnmsub_<mode>_mask3<round_name>,
14243 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
14244 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
14245 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
14246 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
14247 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
14248 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
14249 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
14250 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
14251 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
14252 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
14253 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
14254 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
14255 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
14256 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
14257 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
14258 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
14259 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
14260 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
14261 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
14262 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
14263 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
14264 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
14265
14266 2019-03-21 Martin Sebor <msebor@redhat.com>
14267
14268 PR tree-optimization/89350
14269 * builtins.c (compute_objsize): Also ignore offsets whose upper
14270 bound is negative.
14271 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
14272 (builtin_memref::builtin_memref): Initialize new member.
14273 Allow EXPR to be null.
14274 (builtin_memref::extend_offset_range): Replace local with a member.
14275 Avoid assuming pointer offsets are unsigned.
14276 (builtin_memref::set_base_and_offset): Determine base object
14277 before computing offset range.
14278 (builtin_access::builtin_access): Handle memset.
14279 (builtin_access::generic_overlap): Replace local with a member.
14280 (builtin_access::strcat_overlap): Same.
14281 (builtin_access::overlap): Same.
14282 (maybe_diag_overlap): Same.
14283 (maybe_diag_access_bounds): Same.
14284 (wrestrict_dom_walker::check_call): Handle memset.
14285 (check_bounds_or_overlap): Same.
14286
14287 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
14288 Jakub Jelinek <jakub@redhat.com>
14289
14290 PR lto/89692
14291 * tree.c (fld_type_variant, fld_incomplete_type_of,
14292 fld_process_array_type): Call fld->pset.add and don't call
14293 add_tree_to_fld_list if it returns true.
14294 (free_lang_data_in_type): Similarly with self-recursive call. Purge
14295 non-marked types from TYPE_NEXT_VARIANT list.
14296 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
14297
14298 2019-03-21 Jakub Jelinek <jakub@redhat.com>
14299
14300 * hash-table.h (hash_table): Add Lazy template parameter defaulted
14301 to false, if true, don't alloc_entries during construction, but defer
14302 it to the first method that needs m_entries allocated.
14303 (hash_table::hash_table, hash_table::~hash_table,
14304 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
14305 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
14306 hash_table::clear_slot, hash_table::traverse_noresize,
14307 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
14308 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
14309 false.
14310 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
14311 NO_INSERT instead of find_with_hash.
14312 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
14313 hash_set::m_table): Add Lazy to template params of hash_table.
14314 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
14315 * attribs.c (test_attribute_exclusions): Likewise.
14316 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
14317 hash_set. Add tests for hash_set with Lazy = true.
14318
14319 2019-03-21 Richard Biener <rguenther@suse.de>
14320
14321 PR tree-optimization/89779
14322 * tree.c (tree_nop_conversion): Consolidate and fix defensive
14323 checks with respect to released SSA names now having error_mark_node
14324 type.
14325 * fold-const.c (operand_equal_p): Likewise.
14326
14327 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
14328
14329 PR target/89775
14330 * config/s390/s390.c (global_not_special_regno_p): Move to make it
14331 available to ...
14332 (s390_optimize_register_info): Use global_not_special_regno_p to
14333 check for global regs.
14334
14335 2019-03-20 Jakub Jelinek <jakub@redhat.com>
14336
14337 PR target/89752
14338 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
14339 update this_alternative nor this_alternative_set.
14340
14341 2019-03-19 Jim Wilson <jimw@sifive.com>
14342
14343 PR target/89411
14344 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
14345 align, size, offset. Use them to handle a BLKmode reference. Update
14346 comment.
14347 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
14348
14349 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14350
14351 PR rtl-optimization/89768
14352 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
14353 instead of GEN_INT.
14354 (unroll_loop_runtime_iterations): Likewise.
14355
14356 2019-03-19 Martin Sebor <msebor@redhat.com>
14357
14358 PR tree-optimization/89644
14359 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
14360 rather than endptr as an indicator of nul-termination.
14361
14362 PR tree-optimization/89644
14363 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
14364 arrays in determining sequence sizes in strncpy and stpncpy.
14365
14366 2019-03-19 Martin Liska <mliska@suse.cz>
14367
14368 PR middle-end/89737
14369 * predict.c (combine_predictions_for_bb): Empty likely_edges and
14370 unlikely_edges if there's an edge that belongs to both these sets.
14371
14372 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
14373
14374 PR target/89746
14375 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
14376 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
14377 go via a stack temporary.
14378
14379 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14380
14381 PR target/89378
14382 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
14383 instead of gen_rtx_SUBREG.
14384 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
14385
14386 2019-03-19 Richard Biener <rguenther@suse.de>
14387
14388 PR debug/88389
14389 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
14390
14391 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
14392
14393 PR lto/87809
14394 PR lto/89335
14395 * tree.c (free_lang_data_in_decl): Do not free context of C++
14396 destrutors.
14397
14398 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14399
14400 PR target/89506
14401 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
14402 subs for the first alternative except when operands[3] is 1.
14403
14404 PR target/89752
14405 * gimplify.c (gimplify_asm_expr): For output argument with
14406 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
14407 diagnose error.
14408
14409 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
14410
14411 PR rtl-optimization/89753
14412 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
14413 explicit unrolling factor even more robust.
14414
14415 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14416
14417 PR target/89726
14418 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
14419 compensation use x2 += 1 instead of x2 -= -1 and when honoring
14420 signed zeros, do another copysign after the compensation.
14421
14422 2019-03-18 Martin Sebor <msebor@redhat.com>
14423
14424 PR tree-optimization/89720
14425 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
14426 more conservatively, the same as anti-range.
14427
14428 2019-03-18 Richard Biener <rguenther@suse.de>
14429
14430 PR middle-end/88945
14431 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
14432 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
14433 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
14434 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
14435
14436 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
14437
14438 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
14439 Extend queue to 1024 entries.
14440 Add "consumed" field.
14441 (gomp_print_output): Remove print_index parameter.
14442 Add final parameter.
14443 Change limit to unsigned.
14444 Use consumed field to implement circular buffer.
14445 Detect interrupted print in final pass.
14446 Flush output at the end.
14447 (run): Update gomp_print_output usage.
14448 (main): Initialize kernargs->output_data.consumed.
14449
14450 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
14451
14452 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
14453 calculation of the minimum number of scalar iterations for
14454 fully-predicated loops.
14455
14456 2019-03-18 Martin Jambor <mjambor@suse.cz>
14457
14458 PR tree-optimization/89546
14459 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
14460 any propagation to its children took place.
14461
14462 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
14463
14464 PR target/89627
14465 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
14466 parameter, and make use of it.
14467 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
14468
14469 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14470
14471 * config/arc/arc.opt (mcode-density-frame): Get the inital value
14472 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
14473 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
14474 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
14475 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
14476 match what the ops is doing.
14477 (push_multi_fp_blink): Likewise.
14478 * config/arc/arc.c (arc_override_options): Enable enter/leave when
14479 compiling for size and elf target.
14480 (arc_save_callee_enter): Adjust note to match what enter/leave
14481 operation does.
14482
14483 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14484
14485 * config/arc/arc.md (tst_movb): Fix constraint.
14486
14487 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14488
14489 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
14490
14491 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14492
14493 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
14494 * config/arc/arc.c (arc_conditional_register_usage): Remove all
14495 reg_alloc_order references.
14496 (size_alloc_order): Define.
14497 (arc_adjust_reg_alloc_order): New function.
14498 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
14499 order.
14500 (ADJUST_REG_ALLOC_ORDER): Define.
14501 (HONOR_REG_ALLOC_ORDER): Likewise.
14502
14503 2019-03-18 Richard Biener <rguenther@suse.de>
14504
14505 PR target/87561
14506 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
14507 loads and stores a bit more.
14508
14509 2019-03-18 Richard Biener <rguenther@suse.de>
14510
14511 PR target/87561
14512 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
14513 load pessimization to stores as well.
14514
14515 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
14516
14517 PR middle-end/86979
14518 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
14519 successor, use NULL as its av set.
14520
14521 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
14522
14523 PR rtl-optimization/89721
14524 * lra-constraints (invariant_p): Return false if side_effects_p holds.
14525
14526 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
14527
14528 PR target/87532
14529 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14530 When handling vec_extract, use modular arithmetic to allow
14531 constant selectors greater than vector length.
14532 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
14533 V1TImode vectors to have constant selector values greater than 0.
14534 Use modular arithmetic to compute vector index.
14535 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
14536 index for in-memory vectors. Correct code generation for
14537 in-register vectors.
14538 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
14539 compute index.
14540
14541 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
14542
14543 PR c++/88534
14544 PR c++/88537
14545 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
14546 VAR_DECL args.
14547
14548 2019-03-15 Jakub Jelinek <jakub@redhat.com>
14549
14550 PR c++/89709
14551 * tree.c (inchash::add_expr): Strip any location wrappers.
14552 * fold-const.c (operand_equal_p): Move stripping of location wrapper
14553 after hash verification.
14554
14555 PR debug/89704
14556 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
14557 SIGN_EXTEND and ZERO_EXTEND.
14558
14559 2019-03-14 Jason Merrill <jason@redhat.com>
14560 Jakub Jelinek <jakub@redhat.com>
14561
14562 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
14563 than if is_empty (*slot).
14564 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
14565 existing elt and for elt removal.
14566 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
14567 of already removed elt.
14568
14569 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
14570
14571 PR target/89650
14572 * config/i386/i386.c (remove_partial_avx_dependency): Handle
14573 REG_EH_REGION note.
14574
14575 2019-03-14 Martin Liska <mliska@suse.cz>
14576
14577 PR other/89712
14578 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
14579
14580 2019-03-14 Richard Biener <rguenther@suse.de>
14581
14582 PR target/89711
14583 * config/i386/i386.c (make_resolver_func): Properly set
14584 DECL_CONTEXT on the RESULT_DECL.
14585 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
14586
14587 2019-03-14 Richard Biener <rguenther@suse.de>
14588
14589 * gimple-pretty-print.c: Include cfgloop.h.
14590 (dump_gimple_phi): Adjust.
14591 (dump_gimple_bb_header): Dump loop header for GIMPLE.
14592 (pp_cfg_jump): Adjust.
14593 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
14594 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
14595 (lower_phi_internal_fn): Remove.
14596 (verify_gimple_call): Remove IFN_PHI special-casing.
14597 (dump_function_to_file): Dump IL state.
14598 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
14599 done to deal with PHI nodes being present in non-SSA state.
14600
14601 2019-03-14 Jakub Jelinek <jakub@redhat.com>
14602
14603 PR ipa/89684
14604 * multiple_target.c (create_dispatcher_calls): Change
14605 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
14606 In the node->iterate_referring loop, push *ref rather than ref, call
14607 ref->remove_reference () and always pass 0 to iterate_referring.
14608
14609 PR rtl-optimization/89679
14610 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
14611 would contain a paradoxical SUBREG.
14612
14613 2019-03-14 Richard Biener <rguenther@suse.de>
14614
14615 PR tree-optimization/89710
14616 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
14617 safe_dyn_cast.
14618
14619 2019-03-14 Martin Liska <mliska@suse.cz>
14620
14621 * coverage.c (coverage_begin_function): Stream also
14622 end_column.
14623 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
14624 documentation about function declaration location.
14625 * gcov-dump.c (tag_function): Print whole range
14626 of function declaration.
14627 * gcov.c (struct function_info): Add end_column field.
14628 (function_info::function_info): Initialize it.
14629 (output_json_intermediate_file): Output {start,end}_column
14630 fields.
14631 (read_graph_file): Read end_column.
14632
14633 2019-03-14 Richard Biener <rguenther@suse.de>
14634
14635 PR middle-end/89698
14636 * fold-const.c (operand_equal_p): For INDIRECT_REF check
14637 that the access types are similar.
14638
14639 2019-03-14 Jakub Jelinek <jakub@redhat.com>
14640
14641 PR tree-optimization/89703
14642 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
14643 aren't compatible also with builtin_decl_explicit. Check pure
14644 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
14645 and BUILT_IN_STPNCPY{,_CHK}.
14646
14647 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
14648
14649 PR target/89523
14650 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
14651 addr32 prefix to VSIB address for X32.
14652 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
14653 "%M2" to opcode.
14654 (*avx512pf_gatherpf<mode>df_mask): Likewise.
14655 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
14656 (*avx512pf_scatterpf<mode>df_mask): Likewise.
14657 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
14658 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
14659 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
14660 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
14661 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
14662 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
14663 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
14664 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
14665 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
14666 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
14667 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
14668 (*avx512f_scatterdi<mode>): Likewise.
14669
14670 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
14671
14672 PR target/85860
14673 * lra-constraints.c (inherit_in_ebb): Update
14674 potential_reload_hard_regs along with live_hard_regs.
14675
14676 2019-03-13 Jakub Jelinek <jakub@redhat.com>
14677
14678 PR debug/89498
14679 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
14680 DWARF_OFFSET_SIZE.
14681 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
14682
14683 2019-03-13 Martin Sebor <msebor@redhat.com>
14684
14685 PR tree-optimization/89662
14686 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
14687 has a size.
14688
14689 2019-03-13 Richard Biener <rguenther@suse.de>
14690
14691 PR middle-end/89677
14692 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
14693 throw FP expressions at tree-affine.
14694
14695 2019-03-14 Richard Biener <rguenther@suse.de>
14696
14697 * tree-pretty-print.c (dump_generic_node): For -gimple properly
14698 dump negative integer constants using _Literal (type) -num.
14699
14700 2019-03-13 Jakub Jelinek <jakub@redhat.com>
14701
14702 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
14703 nonlocal_value member.
14704
14705 PR middle-end/88588
14706 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
14707 (ipa_simd_modify_function_body): Handle PHIs.
14708
14709 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
14710
14711 * config/s390/s390.c (s390_option_override_internal): Use more
14712 aggressive inlining parameters.
14713
14714 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
14715
14716 * config/s390/3906.md: New file.
14717 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
14718 (LONGRUNNING_THRESHOLD): Remove.
14719 (MAX_SCHED_MIX_SCORE): Decrease.
14720 (MAX_SCHED_MIX_DISTANCE): Decrease.
14721 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
14722 (struct s390_sched_state): New struct to hold scheduling state.
14723 (S390_SCHED_STATE_NORMAL): Remove.
14724 (S390_SCHED_STATE_CRACKED): Remove.
14725 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
14726 (s390_get_sched_attrmask): Use new attribute.
14727 (s390_get_unit_mask): Use new units.
14728 (s390_is_fpd): New function.
14729 (s390_is_fxd): New function.
14730 (s390_is_longrunning): New function.
14731 (s390_sched_score): Use new functions.
14732 (s390_sched_reorder): Likewise.
14733 (s390_sched_variable_issue): Rework and use new functions.
14734 (s390_sched_init): Use new functions.
14735 * config/s390/s390.h (s390_tune_attr): Add z14.
14736 * config/s390/s390.md: Add z14.
14737
14738 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
14739
14740 * config/s390/2964.md: Update pipeline description.
14741 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
14742 (LONGRUNNING_THRESHOLD): Remove.
14743 (LATENCY_FACTOR): Remove.
14744 (s390_get_unit_mask): Add unit.
14745 (s390_sched_score): Use fxd/fpd.
14746 (s390_sched_variable_issue): Use fxd/fpd.
14747
14748 2019-03-12 Martin Liska <mliska@suse.cz>
14749
14750 * config/i386/i386.c: Reword an error message.
14751
14752 2019-03-12 Martin Jambor <mjambor@suse.cz>
14753
14754 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
14755 terminate with newline.
14756
14757 2019-03-12 Jakub Jelinek <jakub@redhat.com>
14758
14759 PR target/52726
14760 * config/s390/s390.md (tabort): Use %wd instead of
14761 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
14762 letters and periods.
14763 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
14764 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
14765 's with %< and %>.
14766
14767 PR middle-end/89663
14768 * builtins.c (expand_builtin_int_roundingfn,
14769 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
14770 gcc_unreachable if validate_arglist fails.
14771
14772 2019-03-12 Richard Biener <rguenther@suse.de>
14773
14774 PR tree-optimization/89664
14775 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
14776 free the occurance tree after the early out.
14777
14778 2019-03-11 Jakub Jelinek <jakub@redhat.com>
14779
14780 PR middle-end/89655
14781 PR bootstrap/89656
14782 * vr-values.c (vr_values::update_value_range): If
14783 old_vr->varying_p (), don't update it, make new_vr also VARYING
14784 and return false.
14785
14786 2019-03-11 Martin Liska <mliska@suse.cz>
14787
14788 * config/aarch64/aarch64.c (aarch64_override_options_internal):
14789 Fix double string quoting.
14790
14791 2019-03-11 Martin Liska <mliska@suse.cz>
14792
14793 * collect-utils.c (collect_wait): Wrap apostrophes
14794 in gcc internal format with %'.
14795 * collect2.c (main): Likewise.
14796 (scan_prog_file): Likewise.
14797 (scan_libraries): Likewise.
14798 * config/i386/i386.c (ix86_expand_call): Likewise.
14799 (ix86_handle_interrupt_attribute): Likewise.
14800 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
14801 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
14802 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
14803 * lto-wrapper.c (find_crtoffloadtable): Likewise.
14804 * symtab.c (symtab_node::verify_base): Likewise.
14805 * tree-cfg.c (verify_gimple_label): Likewise.
14806 * tree.c (verify_type_variant): Likewise.
14807
14808 2019-03-11 Martin Liska <mliska@suse.cz>
14809
14810 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
14811 in a string format message and fix GNU coding style.
14812 (expand_builtin_set_thread_pointer): Likewise.
14813 * common/config/aarch64/aarch64-common.c
14814 (aarch64_rewrite_selected_cpu): Likewise.
14815 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
14816 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
14817 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
14818 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
14819 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
14820 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
14821 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
14822 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
14823 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
14824 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
14825 Likewise.
14826 * common/config/riscv/riscv-common.c
14827 (riscv_subset_list::parsing_subset_version): Likewise.
14828 (riscv_subset_list::parse_std_ext): Likewise.
14829 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
14830 (riscv_subset_list::parse): Likewise.
14831 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
14832 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
14833 (aarch64_override_options_internal): Likewise.
14834 (aarch64_validate_mcpu): Likewise.
14835 (aarch64_validate_march): Likewise.
14836 (aarch64_validate_mtune): Likewise.
14837 (aarch64_override_options): Likewise.
14838 * config/alpha/alpha.c (alpha_option_override): Likewise.
14839 * config/arc/arc.c (arc_init): Likewise.
14840 (parse_mrgf_banked_regs_option): Likewise.
14841 (arc_override_options): Likewise.
14842 (arc_expand_builtin_aligned): Likewise.
14843 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
14844 (arm_expand_builtin): Likewise.
14845 * config/arm/arm.c (arm_option_check_internal): Likewise.
14846 (arm_configure_build_target): Likewise.
14847 (arm_option_override): Likewise.
14848 (arm_options_perform_arch_sanity_checks): Likewise.
14849 (arm_handle_cmse_nonsecure_entry): Likewise.
14850 (arm_handle_cmse_nonsecure_call): Likewise.
14851 (arm_tls_referenced_p): Likewise.
14852 (thumb1_expand_prologue): Likewise.
14853 * config/avr/avr.c (avr_option_override): Likewise.
14854 * config/bfin/bfin.c (bfin_option_override): Likewise.
14855 * config/c6x/c6x.c (c6x_option_override): Likewise.
14856 * config/cr16/cr16.c (cr16_override_options): Likewise.
14857 * config/cris/cris.c (cris_option_override): Likewise.
14858 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
14859 * config/darwin-c.c (macosx_version_as_macro): Likewise.
14860 * config/darwin.c (darwin_override_options): Likewise.
14861 * config/frv/frv.c (frv_expand_builtin): Likewise.
14862 * config/h8300/h8300.c (h8300_option_override): Likewise.
14863 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
14864 (ix86_option_override_internal): Likewise.
14865 (warn_once_call_ms2sysv_xlogues): Likewise.
14866 (ix86_expand_prologue): Likewise.
14867 (split_stack_prologue_scratch_regno): Likewise.
14868 (ix86_warn_parameter_passing_abi): Likewise.
14869 * config/ia64/ia64.c (fix_range): Likewise.
14870 * config/m68k/m68k.c (m68k_option_override): Likewise.
14871 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
14872 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
14873 (mips_set_compression_mode): Likewise.
14874 * config/mmix/mmix.c (mmix_option_override): Likewise.
14875 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
14876 * config/msp430/msp430.c (msp430_option_override): Likewise.
14877 * config/nds32/nds32.c (nds32_option_override): Likewise.
14878 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
14879 (nios2_option_override): Likewise.
14880 (nios2_expand_custom_builtin): Likewise.
14881 * config/nvptx/mkoffload.c (main): Likewise.
14882 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
14883 * config/pa/pa.c (fix_range): Likewise.
14884 (pa_option_override): Likewise.
14885 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
14886 (riscv_option_override): Likewise.
14887 * config/rl78/rl78.c (rl78_option_override): Likewise.
14888 * config/rs6000/aix61.h: Likewise.
14889 * config/rs6000/aix71.h: Likewise.
14890 * config/rs6000/aix72.h: Likewise.
14891 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
14892 * config/rs6000/freebsd64.h: Likewise.
14893 * config/rs6000/linux64.h: Likewise.
14894 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
14895 (rs6000_expand_zeroop_builtin): Likewise.
14896 (rs6000_expand_mtfsb_builtin): Likewise.
14897 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
14898 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
14899 (rs6000_invalid_builtin): Likewise.
14900 (rs6000_expand_split_stack_prologue): Likewise.
14901 * config/rs6000/rtems.h: Likewise.
14902 * config/rx/rx.c (valid_psw_flag): Likewise.
14903 (rx_expand_builtin): Likewise.
14904 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
14905 * config/s390/s390.c (s390_expand_builtin): Likewise.
14906 (s390_function_profiler): Likewise.
14907 (s390_option_override_internal): Likewise.
14908 (s390_option_override): Likewise.
14909 * config/sh/sh.c (sh_option_override): Likewise.
14910 (sh_builtin_saveregs): Likewise.
14911 (sh_fix_range): Likewise.
14912 * config/sh/vxworks.h: Likewise.
14913 * config/sparc/sparc.c (sparc_option_override): Likewise.
14914 * config/spu/spu.c (spu_option_override): Likewise.
14915 (fix_range): Likewise.
14916 * config/visium/visium.c (visium_option_override): Likewise.
14917 (visium_handle_interrupt_attr): Likewise.
14918 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
14919 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
14920 (dbg_cnt_process_opt): Likewise.
14921 * dwarf2out.c (output_dwarf_version): Likewise.
14922 * except.c (expand_eh_return): Likewise.
14923 * gcc.c (defined): Likewise.
14924 (driver_handle_option): Likewise.
14925 (process_command): Likewise.
14926 (compare_files): Likewise.
14927 (driver::prepare_infiles): Likewise.
14928 (driver::do_spec_on_infiles): Likewise.
14929 (driver::maybe_run_linker): Likewise.
14930 * omp-offload.c (oacc_parse_default_dims): Likewise.
14931 * opts-global.c (handle_common_deferred_options): Likewise.
14932 * opts.c (parse_sanitizer_options): Likewise.
14933 (common_handle_option): Likewise.
14934 (enable_warning_as_error): Likewise.
14935 * passes.c (enable_disable_pass): Likewise.
14936 * plugin.c (parse_plugin_arg_opt): Likewise.
14937 (default_plugin_dir_name): Likewise.
14938 * targhooks.c (default_expand_builtin_saveregs): Likewise.
14939 (default_pch_valid_p): Likewise.
14940 * toplev.c (init_asm_output): Likewise.
14941 (process_options): Likewise.
14942 (toplev::run_self_tests): Likewise.
14943 * tree-cfg.c (verify_gimple_call): Likewise.
14944 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
14945 (tree_inlinable_function_p): Likewise.
14946 * var-tracking.c (vt_find_locations): Likewise.
14947
14948 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
14949
14950 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
14951 only on the else branch.
14952
14953 2019-03-11 Martin Liska <mliska@suse.cz>
14954
14955 * gcov.c (output_intermediate_json_line): Print function
14956 name of each line.
14957 (output_json_intermediate_file): Add new argument.
14958 * doc/gcov.texi: Document the change.
14959
14960 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
14961
14962 PR rtl-optimization/89588
14963 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
14964 explicit unrolling factor more robust.
14965
14966 2019-03-11 Richard Biener <rguenther@suse.de>
14967
14968 PR tree-optimization/89649
14969 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
14970 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
14971 on the prolog and epilog loops.
14972 (vect_loop_versioning): Return copy of loop.
14973 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
14974 on the non-vectorized version of the loop.
14975
14976 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
14977
14978 PR target/68924
14979 * config/i386/sse.md (*vec_extractv2di_0_sse):
14980 Add (=r,x) alternative and corresponding splitter.
14981
14982 2019-03-10 Martin Jambor <mjambor@suse.cz>
14983
14984 PR tree-optimization/85762
14985 PR tree-optimization/87008
14986 PR tree-optimization/85459
14987 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
14988 it points to if there is a type changing MEM_REF. Adjust all callers.
14989 (build_accesses_from_assign): Disable total scalarization if
14990 contains_vce_or_bfcref_p returns true through the new parameter, for
14991 both rhs and lhs.
14992
14993 2019-03-09 Jakub Jelinek <jakub@redhat.com>
14994
14995 PR c/88568
14996 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
14997 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
14998
14999 PR target/79645
15000 * common.opt (fdiagnostics-show-labels,
15001 fdiagnostics-show-line-numbers, fdiagnostics-format=,
15002 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
15003 gas-locview-support, ginline-points, ginternal-reset-location-views):
15004 Terminate description text with a dot.
15005 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
15006 * config/mcore/mcore.opt (m210, m340): Likewise.
15007 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
15008 mnops=): Start description text with a capital letter.
15009 * config/arc/arc.opt (msize-level=): Likewise.
15010 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
15011 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
15012 mnewlib): Likewise.
15013 * config/ft32/ft32.opt (msim): Likewise.
15014 (mft32b, mcompress): Likewise. Terminate description text with a dot.
15015 (mnodiv, mnopm): Terminate description text with a dot.
15016 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
15017 a colon.
15018 * config/i386/i386.opt (prefer_vector_width, instrument_return):
15019 Likewise.
15020 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
15021 text.
15022
15023 PR rtl-optimization/89634
15024 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
15025 are modified in BB_END (e->src) instruction.
15026
15027 2019-03-08 David Malcolm <dmalcolm@redhat.com>
15028
15029 PR target/79926
15030 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
15031 messages more amenable to translation, and improve wording.
15032
15033 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
15034
15035 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
15036 ud- and du-chains between phases.
15037
15038 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
15039
15040 PR debug/89631
15041 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
15042 instead of POLY_INT_CST.
15043
15044 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
15045
15046 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
15047 requirement.
15048
15049 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
15050
15051 PR target/68924
15052 PR target/78782
15053 PR target/87558
15054 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
15055 (_mm_storeu_si64): Ditto.
15056
15057 2019-03-08 Martin Liska <mliska@suse.cz>
15058
15059 PR target/86952
15060 * config/i386/i386.c (ix86_option_override_internal): Disable
15061 jump tables when retpolines are used.
15062
15063 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
15064
15065 PR go/63560
15066 * ipa-split.c (execute_split_functions): Do not split
15067 'noinline' or 'section' function.
15068
15069 2019-03-08 Jakub Jelinek <jakub@redhat.com>
15070
15071 PR target/79846
15072 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
15073 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
15074 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
15075
15076 PR ipa/80000
15077 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
15078 from diagnostics. Formatting fixes.
15079
15080 PR target/85665
15081 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
15082 warn_odr diagnostics.
15083
15084 PR other/80058
15085 * lra-constraints.c (process_alt_operands): Avoid one space before
15086 " at the end of line and another after " on another line in a string
15087 literal.
15088 * attribs.c (handle_dll_attribute): Likewise.
15089 * config/avr/avr-devices.c (avr_texinfo): Likewise.
15090
15091 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
15092 warning_at or inform messages in G_() if there is no ?:.
15093
15094 PR tree-optimization/89550
15095 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
15096 returned true. Formatting fixes.
15097 (expand_builtin_strnlen): Formatting fixes.
15098 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
15099 if warning_at returned true.
15100 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
15101
15102 2019-03-08 Richard Biener <rguenther@suse.de>
15103
15104 PR middle-end/89578
15105 * cfgloop.h (struct loop): Add owned_clique field.
15106 * cfgloopmanip.c (copy_loop_info): Copy it.
15107 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
15108 cliques.
15109 * tree-inline.c (copy_loops): Remap owned_clique.
15110 * lto-streamer-in.c (input_cfg): Stream owned_clique.
15111 * lto-streamer-out.c (output_cfg): Likewise.
15112
15113 2019-03-08 Jakub Jelinek <jakub@redhat.com>
15114
15115 PR target/80190
15116 * config/darwin.c: Include intl.h.
15117 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
15118 composing the message out of two separate parts.
15119
15120 2019-03-07 Jakub Jelinek <jakub@redhat.com>
15121
15122 PR target/80003
15123 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
15124 doesn't start with a capital letter and doesn't end with a dot.
15125 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
15126 with a capital letter.
15127 (ix86_mangle_function_version_assembler_name): Likewise.
15128 (ix86_generate_version_dispatcher_body): Likewise.
15129 (fold_builtin_cpu): Likewise.
15130 (get_builtin_code_for_version): Likewise. Remove extraneous space.
15131 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
15132 translators, wrap full type name in %qs.
15133
15134 PR translation/79999
15135 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
15136 depend clause with source (or sink) modifier.
15137 * omp-expand.c (expand_omp_ordered_sink): Likewise.
15138
15139 PR target/89602
15140 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
15141 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
15142 (avx512f_load<mode>_mask): New define_expand.
15143 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
15144 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
15145 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
15146 __builtin_ia32_movess_mask): New builtins.
15147 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
15148 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
15149 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
15150 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
15151
15152 2019-03-07 Martin Jambor <mjambor@suse.cz>
15153
15154 PR lto/87525
15155 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
15156 for extern inline functions.
15157
15158 2019-03-07 Martin Jambor <mjambor@suse.cz>
15159
15160 PR ipa/88235
15161 * cgraph.h (cgraph_node): New inline method former_thunk_p.
15162 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
15163 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
15164 have multiple callees. At the end check if declarations match as
15165 opposed to cgraph_nodes.
15166
15167 2019-03-07 Martin Liska <mliska@suse.cz>
15168
15169 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
15170 which is equivalent to searching for this in clones chain.
15171 * symtab.c (symtab_node::verify_base): Similarly compare ASM
15172 names with a neighbour and special case first node in a chain.
15173
15174 2019-01-25 Jason Merrill <jason@redhat.com>
15175
15176 PR c++/80916 - spurious "static but not defined" warning.
15177 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
15178 for an internal symbol with DECL_EXTERNAL.
15179
15180 2019-04-07 Richard Biener <rguenther@suse.de>
15181
15182 PR middle-end/89618
15183 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
15184 * tree-inline.c (copy_loops): Simplify.
15185
15186 2019-03-07 Martin Liska <mliska@suse.cz>
15187
15188 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
15189
15190 2019-03-07 Richard Biener <rguenther@suse.de>
15191
15192 PR tree-optimization/89595
15193 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
15194 stmt iterator as reference, take boolean output parameter to
15195 indicate whether the stmt was removed and thus the iterator
15196 already advanced.
15197 (dom_opt_dom_walker::before_dom_children): Re-iterate over
15198 stmts created by folding.
15199
15200 2019-03-07 Jakub Jelinek <jakub@redhat.com>
15201
15202 PR c++/89585
15203 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
15204 at toplevel.
15205
15206 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
15207
15208 PR rtl-optimization/88845
15209 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
15210 LRA.
15211 * lra.c (remove_scratches_1): New function.
15212 (remove_scratches): Use it.
15213 (lra_emit_move): Likewise.
15214
15215 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
15216
15217 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
15218 unaligned_access variable.
15219 * config/arc/arc.c (arc_override_options): Set unaligned access
15220 default on for HS CPUs.
15221 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
15222
15223 2019-03-06 Martin Liska <mliska@suse.cz>
15224
15225 PR gcov-profile/89577
15226 * doc/gcov.texi: Prefer to use --coverage.
15227 * doc/sourcebuild.texi: Likewise.
15228
15229 2019-03-02 Jason Merrill <jason@redhat.com>
15230
15231 PR c++/86485 - -Wmaybe-unused with empty class ?:
15232 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
15233
15234 2019-03-05 Jakub Jelinek <jakub@redhat.com>
15235
15236 PR target/89587
15237 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
15238 if_multiarch.
15239
15240 PR middle-end/89590
15241 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
15242 exactly one argument.
15243
15244 2019-03-05 Jakub Jelinek <jakub@redhat.com>
15245 Richard Sandiford <richard.sandiford@arm.com>
15246
15247 PR tree-optimization/89570
15248 * match.pd (vec_cond into cond_op simplification): Don't use
15249 get_conditional_internal_fn, use as_internal_fn (cond_op).
15250
15251 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
15252
15253 PR target/89222
15254 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
15255 to decide when to split off a non-zero offset from a symbol.
15256 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
15257 in function symbols.
15258
15259 2019-03-05 Richard Biener <rguenther@suse.de>
15260
15261 PR tree-optimization/89594
15262 * tree-if-conv.c (pass_if_conversion::execute): Handle
15263 case where .LOOP_VECTORIZED_FUNCTION was removed.
15264
15265 2019-03-05 Jakub Jelinek <jakub@redhat.com>
15266
15267 PR bootstrap/89560
15268 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
15269 instead alloca it only when needed with the needed size.
15270
15271 PR tree-optimization/89570
15272 * match.pd (vec_cond into cond_op simplification): Guard with
15273 vectorized_internal_fn_supported_p test and #if GIMPLE.
15274
15275 PR tree-optimization/89566
15276 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
15277 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
15278 Punt if get_user_idx_format succeeds, but idx_format argument is
15279 not provided or doesn't have pointer type, or if idx_args is above
15280 number of provided arguments.
15281
15282 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
15283
15284 PR tree-optimization/89437
15285 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
15286
15287 2019-03-04 Richard Biener <rguenther@suse.de>
15288
15289 PR middle-end/89572
15290 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
15291 safe_dyn_cast.
15292
15293 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
15294
15295 PR tree-optimization/89487
15296 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
15297 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
15298 (distribute_loop): Don't do runtime alias check if there is non-
15299 addressable data reference.
15300 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
15301 is a register variable.
15302
15303 2019-03-02 Jakub Jelinek <jakub@redhat.com>
15304
15305 PR target/89506
15306 * config/arm/arm.md (cmpsi2_addneg): Use
15307 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
15308 If operands[2] is 0 or INT_MIN, force use of subs.
15309 (*compare_scc splitter): Use gen_int_mode.
15310 (*negscc): Likewise.
15311 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
15312
15313 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
15314 Monk Chiang <sh.chiang04@gmail.com>
15315
15316 * common/config/riscv/riscv-common.c: Include sstream.
15317 (riscv_subset_list::to_string): New.
15318 (riscv_arch_str): Likewise.
15319 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
15320 * config.in: Regen.
15321 * config/riscv/riscv-protos.h (riscv_arch_str): New.
15322 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
15323 (riscv_emit_attribute): New.
15324 (riscv_file_start): Emit attribute if needed.
15325 (riscv_option_override): Init riscv_emit_attribute_p.
15326 * config/riscv/riscv.opt (mriscv-attribute): New option.
15327 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
15328 * configure: Regen.
15329 * doc/install.texi: Document --with-riscv-attribute.
15330 * doc/invoke.texi: Document -mriscv-attribute.
15331
15332 * common/config/riscv/riscv-common.c:
15333 Include config/riscv/riscv-protos.h.
15334 (INCLUDE_STRING): Defined.
15335 (RISCV_DONT_CARE_VERSION): Defined.
15336 (riscv_subset_t): Declare.
15337 (riscv_subset_t::riscv_subset_t): New.
15338 (riscv_subset_list): Declare.
15339 (riscv_subset_list::riscv_subset_list): New.
15340 (riscv_subset_list::~riscv_subset_list): Likewise.
15341 (riscv_subset_list::parsing_subset_version): Likewise.
15342 (riscv_subset_list::parse_std_ext): Likewise.
15343 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
15344 (riscv_subset_list::add): Likewise.
15345 (riscv_subset_list::lookup): Likewise.
15346 (riscv_subset_list::xlen): Likewise.
15347 (riscv_subset_list::parse): Likewise.
15348 (riscv_supported_std_ext): Likewise.
15349 (current_subset_list): Likewise.
15350 (riscv_parse_arch_string): Using riscv_subset_list::parse to
15351 parse.
15352
15353 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
15354
15355 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
15356 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
15357 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
15358
15359 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
15360
15361 PR rtl-optimization/85899
15362 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
15363 fallthru edges leading to the exit block.
15364
15365 2019-03-01 Tamar Christina <tamar.christina@arm.com>
15366
15367 PR target/89517
15368 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
15369 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
15370
15371 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
15372
15373 PR tree-optimization/89535
15374 * tree-vect-stmts.c (vectorizable_call): Record the vector types
15375 for each operand. Calculate the fallback choice for mask operands
15376 and pass it to vect_get_vec_def_for_operand.
15377
15378 2019-03-01 Richard Biener <rguenther@suse.de>
15379
15380 PR middle-end/89541
15381 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
15382 get virtual operands.
15383 (get_expr_operands): Handle CONST_DECL like other decls.
15384
15385 2019-03-01 Jakub Jelinek <jakub@redhat.com>
15386
15387 PR middle-end/89503
15388 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
15389 on DECL_P and EXPR_P.
15390
15391 2019-03-01 Richard Biener <rguenther@suse.de>
15392
15393 PR middle-end/89497
15394 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
15395 argument, defaulted to zero.
15396 * passes.c (execute_function_todo): Pass down SSA update flags
15397 to cleanup_tree_cfg.
15398 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
15399 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
15400 form if requested.
15401 (cleanup_tree_cfg): Get and pass down SSA update flags.
15402
15403 2019-03-01 Jakub Jelinek <jakub@redhat.com>
15404
15405 PR bootstrap/89539
15406 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
15407 early_lto_debug argument.
15408
15409 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
15410
15411 PR tree-optimization/89536
15412 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
15413 only whether bit #0 of the value is 0 instead of the entire value.
15414
15415 2019-02-28 Marek Polacek <polacek@redhat.com>
15416
15417 PR c++/87068 - missing diagnostic with fallthrough statement.
15418 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
15419 at the end of a seq, save its location to walk_stmt_info.
15420 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
15421 a switch.
15422
15423 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
15424
15425 PR lto/88585
15426 * tree.c (find_atomic_core_type): Move ahead in file.
15427 (check_base_type): Correctly compare alignments of atomic types.
15428
15429 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
15430
15431 PR target/89455
15432 * config/i386/i386.c (get_builtin_code_for_version): Identify
15433 Westmere from PCLMUL, instead of AES.
15434
15435 2019-02-28 Jakub Jelinek <jakub@redhat.com>
15436
15437 PR target/89434
15438 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
15439 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
15440 -UINTVAL (...).
15441
15442 2019-02-28 Tamar Christina <tamar.christina@arm.com>
15443
15444 PR target/88530
15445 * config/aarch64/aarch64-option-extensions.def: Document it.
15446 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
15447 if empty hwcaps.
15448
15449 2019-02-28 Jakub Jelinek <jakub@redhat.com>
15450
15451 PR c/89520
15452 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
15453 builtins if they don't have a single scalar floating point argument.
15454 Formatting fixes.
15455
15456 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
15457
15458 PR rtl-optimization/89490
15459 * varasm.c (get_block_for_section): Bail out for mergeable sections.
15460 (default_use_anchors_for_symbol_p, output_object_block): Assert the
15461 block section is not mergeable.
15462
15463 2019-02-27 Jakub Jelinek <jakub@redhat.com>
15464
15465 PR target/70341
15466 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
15467 old define_insn to ...
15468 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
15469 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
15470 Rename old define_insn to ...
15471 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
15472 (thumb2_casesi_internal_pic): New define_expand. Rename old
15473 define_insn to ...
15474 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
15475 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
15476 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
15477
15478 2019-02-27 Richard Biener <rguenther@suse.de>
15479
15480 PR debug/88878
15481 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
15482
15483 2019-02-27 Richard Biener <rguenther@suse.de>
15484
15485 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
15486 building.
15487
15488 2019-02-27 Richard Biener <rguenther@suse.de>
15489
15490 PR debug/88878
15491 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
15492 parameter, prefix section name with .gnu.debuglto_ if true.
15493 (dwarf2out_finish): Pass false to output_comdat_type_unit.
15494 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
15495
15496 2019-02-27 Richard Biener <rguenther@suse.de>
15497
15498 PR debug/89514
15499 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
15500 rather than on use_debug_types, doing what output_die does.
15501 (value_format): Likewise.
15502
15503 2019-02-27 Martin Jambor <mjambor@suse.cz>
15504 Martin Sebor <msebor@redhat.com>
15505
15506 * doc/invoke.texi (Warning Options): Reword description of
15507 -Wno-absolute-value.
15508
15509 2019-02-27 Jakub Jelinek <jakub@redhat.com>
15510
15511 PR tree-optimization/89280
15512 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
15513 builtin_setjmp_setup_bb): New functions.
15514 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
15515 When visiting __builtin_setjmp_setup block, queue in special
15516 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
15517 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
15518 from visited after the loop if they don't have any visited successor
15519 blocks.
15520
15521 2018-02-26 Steve Ellcey <sellcey@marvell.com>
15522
15523 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
15524 New function.
15525 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
15526
15527 2019-02-26 Jakub Jelinek <jakub@redhat.com>
15528
15529 PR c++/89507
15530 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
15531 with types other than sizetype/ssizetype.
15532
15533 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
15534
15535 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
15536 (enum sparc_processor_type): ...this.
15537 (enum sparc_code_model_type): New enumeration type.
15538 (enum sparc_memory_model_type): Tweak comments.
15539 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
15540 (mtune): Likewise.
15541 (mcmodel): Use sparc_code_model enumeration and variable.
15542 (sparc_code_model): New enumeration.
15543 (mdebug): Add Undocumented marker.
15544 * config/sparc/sparc.h (enum cmodel): Delete.
15545 (sparc_cmodel): Likewise.
15546 (TARGET_CM_MEDLOW): Adjust to above renaming.
15547 (TARGET_CM_MEDMID): Likewise.
15548 (TARGET_CM_MEDANY): Likewise.
15549 (TARGET_CM_EMBMEDANY): Likewise.
15550 * config/sparc/sparc.c (sparc_cmodel): Delete.
15551 (sparc_option_override): Remove string/value mapping support for the
15552 code model. Move code and memory model support to after the handling
15553 of target flags. Do private machine setup last.
15554 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
15555 (sparc_legitimize_reload_address): Likewise.
15556 (sparc_output_mi_thunk): Likewise.
15557 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
15558
15559 2019-02-26 Jakub Jelinek <jakub@redhat.com>
15560
15561 PR tree-optimization/89500
15562 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
15563 (handle_builtin_strlen): Remove noncst_bound variable. Always
15564 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
15565 cst if the first cst bytes starting at x are known to be non-zero,
15566 even if the string is not zero terminated. Don't try to modify
15567 *si for strnlen. Update strlen_to_stridx only for strlen or if
15568 we can prove strnlen returns the same value as strlen would.
15569
15570 2019-02-26 Martin Liska <mliska@suse.cz>
15571
15572 * alloc-pool.h (struct pool_usage): Remove extra
15573 print_dash_line.
15574 * bitmap.h (struct bitmap_usage): Likewise.
15575 * ggc-common.c (struct ggc_usage): Likewise.
15576 * mem-stats.h (struct mem_usage): Likewise.
15577 (mem_alloc_description::dump): Print dash lines
15578 here and repeat header at the end of a table report.
15579 It's then more readable.
15580 * tree-phinodes.c (phinodes_print_statistics): Make
15581 horizontal alignment.
15582 * tree-ssanames.c (ssanames_print_statistics): Likewise.
15583 * vec.c (struct vec_usage): Remove extra print_dash_line.
15584 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
15585
15586 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
15587
15588 * doc/extend.texi (__builtin_object_size):
15589 Use @pxref instead of @xref inside parenthesis.
15590 (__builtin_has_attribute): Add missing comma after @xref.
15591 (__builtin_object_size): Ditto.
15592 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
15593
15594 2019-02-26 Jeff Law <law@redhat.com>
15595
15596 PR rtl-optimization/87761
15597 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
15598 detect obviously dead insns and delete them.
15599
15600 2019-02-26 Richard Biener <rguenther@suse.de>
15601
15602 PR tree-optimization/89505
15603 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
15604 to handle restrict pointed-to vars with multiple subvars
15605 correctly.
15606
15607 2019-02-26 Richard Biener <rguenther@suse.de>
15608
15609 PR tree-optimization/89489
15610 * tree-parloops.c (create_loop_fn): Copy over last_clique.
15611
15612 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
15613
15614 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
15615 and move around comment.
15616 <BIT_AND_EXPR>: Likewise.
15617 <BIT_NOT_EXPR>: Add specific handling for boolean types.
15618
15619 2019-02-26 Jakub Jelinek <jakub@redhat.com>
15620
15621 PR target/89474
15622 * config/i386/i386.c (remove_partial_avx_dependency): Call
15623 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
15624 after changing possibly many instructions to use that pseudo. Fix up
15625 insertion of v4sf_const0 setter at the start of bb.
15626
15627 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
15628
15629 PR c/80409
15630 * doc/extend.texi (Variadic Pointer Args): New section.
15631
15632 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
15633 Martin Sebor <msebor@gmail.com>
15634
15635 * common.opt (Wattribute-alias): Likewise.
15636 * doc/invoke.texi (Option Summary): List general form of
15637 -Wattribute-alias=. List positive form of -Wmissing-attributes.
15638 (-Wmissing-attributes): Invert entry, rewrite and correct default.
15639 Add cross-references.
15640 (-Wattribute-alias): Rewrite and correct default. Mention
15641 considered attributes (same as for -Wmissing-attributes).
15642
15643 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
15644
15645 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
15646 (_mm_cvtpd_ps): Likewise.
15647 (_mm_cvttpd_epi32): Likewise.
15648
15649 PR target/89338
15650 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
15651 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
15652
15653 PR target/89339
15654 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
15655
15656 2019-02-25 Tamar Christina <tamar.christina@arm.com>
15657
15658 PR target/88530
15659 * common/config/aarch64/aarch64-common.c
15660 (struct aarch64_option_extension): Add is_synthetic.
15661 (all_extensions): Use it.
15662 (TARGET_OPTION_INIT_STRUCT): Define hook.
15663 (struct gcc_targetm_common): Moved to end.
15664 (all_extensions_by_on): New.
15665 (opt_ext_cmp, typedef opt_ext): New.
15666 (aarch64_option_init_struct): New.
15667 (aarch64_contains_opt): New.
15668 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
15669 * config/aarch64/aarch64-option-extensions.def
15670 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
15671 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
15672 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
15673 Set is_synthetic to false.
15674 (crypto): Set is_synthetic to true.
15675 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
15676 SYNTHETIC.
15677
15678 2019-02-25 Tamar Christina <tamar.christina@arm.com>
15679
15680 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
15681 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
15682 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
15683 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
15684 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
15685 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
15686 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
15687 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
15688 Rename ...
15689 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
15690 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
15691 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
15692 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
15693 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
15694 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
15695 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
15696 vfmlsl_laneq_high_f16): ... To this.
15697 * config/arm/neon.md: Update comments.
15698
15699 2019-02-25 Tamar Christina <tamar.christina@arm.com>
15700
15701 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
15702 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
15703 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
15704 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
15705 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
15706 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
15707 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
15708 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
15709 Rename ...
15710 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
15711 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
15712 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
15713 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
15714 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
15715 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
15716 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
15717 vfmlslq_laneq_high_f16): ... To this.
15718
15719 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
15720
15721 PR rtl-optimization/86096
15722 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
15723 comparing mw_order values.
15724
15725 2019-02-25 Jakub Jelinek <jakub@redhat.com>
15726
15727 PR target/89434
15728 * config/arm/arm.md (*subsi3_carryin_const): Use
15729 arm_neg_immediate_operand predicate instead of
15730 arm_not_immediate_operand, "L" constraint instead of "K" and
15731 print it using %n2 instead of %B2.
15732 (*subsi3_carryin_const0): New define_insn.
15733 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
15734 instead of arm_not_operand and "I" constraint instead of "K" and
15735 print it using %n3 instead of %B2. Instead of using match_dup 2 add
15736 another match_operand and in the condition check that it is negation
15737 of operands[2].
15738 (*subsi3_carryin_compare_const0): New define_ins.
15739 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
15740 *subsi3_carryin_const.
15741 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
15742 split into *subsi3_carryin_compare_const0 if the highpart is zero.
15743
15744 PR target/89438
15745 * config/arm.vfp.md (*negdf2_vfp): Use
15746 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
15747 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
15748
15749 2019-02-24 Jakub Jelinek <jakub@redhat.com>
15750
15751 PR rtl-optimization/89445
15752 * simplify-rtx.c (simplify_ternary_operation): Don't use
15753 simplify_merge_mask on operands that may trap.
15754 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
15755 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
15756 second operand is CONST_VECTOR, check if any element could be zero.
15757 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
15758 their operands can trap.
15759
15760 2019-02-23 Martin Sebor <msebor@redhat.com>
15761
15762 * gimple-ssa-sprintf.c (target_strtol): Rename...
15763 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
15764 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
15765 check for range error.
15766
15767 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
15768
15769 PR driver/69471
15770 * opts-common.c (prune_options): Also prune joined switches
15771 with Negative and RejectNegative.
15772 * config/i386/i386.opt (march=): Add Negative(march=).
15773 (mtune=): Add Negative(mtune=).
15774 * doc/options.texi: Document Negative used together with Joined
15775 and RejectNegative.
15776
15777 2019-02-22 Martin Sebor <msebor@redhat.com>
15778
15779 * doc/extend.texi (Other Builtins): Add
15780 __builtin_is_constant_evaluated.
15781
15782 2019-02-22 Richard Biener <rguenther@suse.de>
15783
15784 PR tree-optimization/87609
15785 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
15786
15787 2019-02-22 Jeff Law <law@redhat.com>
15788
15789 PR rtl-optimization/87761
15790 * config/mips/mips.md: Add new combiner pattern to recognize
15791 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
15792
15793 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
15794
15795 PR target/89324
15796 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
15797 destination register in peepholes generating patterns for ADDS/SUBS.
15798 (add<mode>3_compare0,
15799 *addsi3_compare0_uxtw, add<mode>3_compareC,
15800 add<mode>3_compareV_imm, add<mode>3_compareV,
15801 *adds_<optab><ALLX:mode>_<GPI:mode>,
15802 *subs_<optab><ALLX:mode>_<GPI:mode>,
15803 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
15804 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
15805 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
15806 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
15807 sub<mode>3_compare1): Allow stack pointer for source register.
15808 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
15809
15810 2019-02-22 Martin Sebor <msebor@redhat.com>
15811
15812 PR tree-optimization/88993
15813 PR tree-optimization/88853
15814 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
15815 New helper.
15816 (sprintf_dom_walker::call_info::is_string_func): New helper.
15817 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
15818 for formatted string functions.
15819 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
15820
15821 2019-02-22 Martin Sebor <msebor@redhat.com>
15822
15823 PR c/89425
15824 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
15825 unreachable subexpressions.
15826
15827 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
15828 Hongtao Liu <hongtao.liu@intel.com>
15829 Sunil K Pandey <sunil.k.pandey@intel.com>
15830
15831 PR target/87007
15832 * config/i386/i386-passes.def: Add
15833 pass_remove_partial_avx_dependency.
15834 * config/i386/i386-protos.h
15835 (make_pass_remove_partial_avx_dependency): New.
15836 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
15837 New function.
15838 (pass_data_remove_partial_avx_dependency): New.
15839 (pass_remove_partial_avx_dependency): Likewise.
15840 (make_pass_remove_partial_avx_dependency): Likewise.
15841 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
15842 (*extendsfdf2): Add avx_partial_xmm_update.
15843 (truncdfsf2): Likewise.
15844 (*float<SWI48:mode><MODEF:mode>2): Likewise.
15845 (SF/DF conversion splitters): Disabled for TARGET_AVX.
15846
15847 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
15848
15849 PR middle-end/85598
15850 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
15851 analysis for pass.
15852
15853 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
15854
15855 PR target/89444
15856 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
15857 (PTA_SKYLAKE): Add PTA_AES.
15858 (PTA_GOLDMONT): Likewise.
15859
15860 2019-02-22 Sudakshina Das <sudi.das@arm.com>
15861
15862 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
15863 instruction if enabled.
15864 (aarch64_override_options): Remove reference to return address key.
15865
15866 2019-02-22 Richard Biener <rguenther@suse.de>
15867
15868 PR tree-optimization/89440
15869 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
15870 not necessary assert.
15871
15872 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
15873
15874 PR fortran/72741
15875 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
15876 (oacc_replace_fn_attrib_attr): ... this new function.
15877 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
15878 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
15879
15880 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15881
15882 * config/arm/arm-cpus.in (ares): Rename to...
15883 (neoverse-n1): ... This. Add ares as alias.
15884 * config/arm/arm-tables.opt: Regenerate.
15885 * config/arm/arm-tune.md: Likewise.
15886 * doc/invoke.txt (ARM Options): Document neoverse-n1.
15887
15888 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15889
15890 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
15891 * config/aarch64/aarch64-tune.md: Regenerate.
15892 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
15893
15894 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15895
15896 * config/aarch64/aarch64.c (ares_tunings): Rename to...
15897 (neoversen1_tunings): ... This.
15898 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
15899 (neoverse-n1): New CPU.
15900 * config/aarch64/aarch64-tune.md: Regenerate.
15901 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
15902
15903 2019-02-22 Richard Biener <rguenther@suse.de>
15904
15905 PR middle-end/87609
15906 * cfghooks.h (dependence_hash): New typedef.
15907 (struct copy_bb_data): New type.
15908 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
15909 (duplicate_block): Likewise.
15910 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
15911 (copy_bbs): Create and pass down copy_bb_data.
15912 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
15913 (rtl_duplicate_bb): Likewise.
15914 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
15915 remap dependence info.
15916
15917 2019-02-22 Richard Biener <rguenther@suse.de>
15918
15919 PR tree-optimization/87609
15920 * tree-core.h (tree_base): Document special clique values.
15921 * tree-inline.c (remap_dependence_clique): Do not use the
15922 special clique value of one.
15923 (maybe_set_dependence_info): Use clique one.
15924 (clear_dependence_clique): New callback.
15925 (compute_dependence_clique): Clear clique one from all refs
15926 before assigning it (again).
15927
15928 2019-02-21 Martin Sebor <msebor@redhat.com>
15929
15930 * doc/extend.texi (__clear_cache): Correct signature.
15931
15932 2019-02-21 Ian Lance Taylor <iant@golang.org>
15933
15934 PR go/89170
15935 * varasm.c (decode_addr_const): Call lookup_constant_def rather
15936 than output_constant_def.
15937 (add_constant_to_table): New static function.
15938 (output_constant_def): Call add_constant_to_table.
15939 (tree_output_constant_def): Likewise.
15940
15941 2019-02-21 Jakub Jelinek <jakub@redhat.com>
15942
15943 PR c++/89285
15944 * builtins.c (fold_builtin_arith_overflow): If first two args are
15945 INTEGER_CSTs, set intres and ovfres to constants rather than calls
15946 to ifn.
15947
15948 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
15949
15950 PR target/87412
15951 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
15952 error for -mindirect-branch/-mfunction-return with incompatible
15953 -fcf-protection.
15954
15955 2019-02-21 Jakub Jelinek <jakub@redhat.com>
15956
15957 PR bootstrap/88714
15958 * constraints.md (q): Remove.
15959 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
15960 instead of q.
15961
15962 2019-02-21 Martin Jambor <mjambor@suse.cz>
15963
15964 PR hsa/89302
15965 * omp-general.c (omp_extract_for_data): Removed a duplicate call
15966 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
15967 (omp_adjust_for_condition): ...here. Added necessary parameters.
15968 * omp-general.h (omp_adjust_for_condition): Updated declaration.
15969 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
15970 proper values to new parameters of omp_adjust_for_condition.
15971
15972 2019-02-20 Jakub Jelinek <jakub@redhat.com>
15973
15974 PR middle-end/89412
15975 * expr.c (expand_assignment): If result is a MEM, use change_address
15976 instead of simplify_gen_subreg.
15977
15978 2019-02-20 Jakub Jelinek <jakub@redhat.com>
15979 David Malcolm <dmalcolm@redhat.com>
15980
15981 PR middle-end/89091
15982 * fold-const.c (decode_field_reference): Return NULL_TREE if
15983 lang_hooks.types.type_for_size returns NULL. Check it before
15984 overwriting *exp_. Use return NULL_TREE instead of return 0.
15985
15986 2019-02-20 Jakub Jelinek <jakub@redhat.com>
15987
15988 PR middle-end/88074
15989 PR middle-end/89415
15990 * toplev.c (do_compile): Double the emin/emax exponents to workaround
15991 buggy mpc_norm.
15992
15993 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
15994
15995 PR target/89397
15996 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
15997 TARGET_SSE in addition to TARGET_SSE_MATH.
15998
15999 (ix86_excess_precision): Ditto.
16000 (ix86_float_exceptions_rounding_supported_p): Ditto.
16001 (use_rsqrt_p): Ditto.
16002 * config/i386/sse.md (rsqrt<mode>2): Ditto.
16003
16004 2019-02-20 David Malcolm <dmalcolm@redhat.com>
16005
16006 PR c/89410
16007 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
16008 linenum_arith_t when determining if two adjacent line spans are
16009 close enough to merge.
16010 (diagnostic_show_locus): Use linenum_arith_t when iterating over
16011 lines within each line_span.
16012
16013 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
16014
16015 PR target/86487
16016 * lra-constraints.c(uses_hard_regs_p): Fix handling of
16017 paradoxical SUBREGS.
16018
16019 2019-02-20 Li Jia He <helijia@linux.ibm.com>
16020
16021 PR target/88100
16022 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
16023 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
16024 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
16025 range checking it.
16026
16027 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
16028
16029 * config/gcn/gcn.c (print_operand): Fix typo.
16030
16031 2019-02-19 Richard Biener <rguenther@suse.de>
16032
16033 PR middle-end/88074
16034 * toplev.c (do_compile): Initialize mpfr's exponent range
16035 based on available float modes.
16036
16037 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
16038
16039 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
16040 as long as the epilogue isn't completed.
16041
16042 2019-02-18 Martin Sebor <msebor@redhat.com>
16043
16044 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
16045 __has_cpp_attribute, and __has_include.
16046
16047 2019-02-18 Martin Sebor <msebor@redhat.com>
16048
16049 * doc/invoke.texi (-Wreturn-type): Correct and expand.
16050
16051 2019-02-18 Martin Sebor <msebor@redhat.com>
16052
16053 PR middle-end/89294
16054 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
16055 expression.
16056 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
16057
16058 2019-02-18 Richard Biener <rguenther@suse.de>
16059
16060 PR tree-optimization/89296
16061 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
16062 of no-warning flag to cases that might emit the bogus warning.
16063
16064 2019-02-18 Jakub Jelinek <jakub@redhat.com>
16065
16066 PR bootstrap/88714
16067 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
16068 "q" constraint.
16069 * config/arm/vfp.md (*movdi_vfp): Likewise.
16070 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
16071 "q" constraint for operands[0].
16072
16073 PR target/89369
16074 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
16075 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
16076 pattern in a temporary buffer.
16077 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
16078 than 64-operands[2].
16079
16080 PR target/89361
16081 * config/s390/s390.c (s390_indirect_branch_attrvalue,
16082 s390_indirect_branch_settings): Define unconditionally.
16083 (s390_set_current_function): Likewise, but guard the whole body except
16084 the s390_indirect_branch_settings call with
16085 #if S390_USE_TARGET_ATTRIBUTE.
16086 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
16087
16088 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
16089 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
16090 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
16091 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
16092 HOST_WIDE_INT_1U instead of 1ULL.
16093 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
16094 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
16095 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
16096 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
16097 instead of 1UL.
16098 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
16099 instead of 1ul.
16100
16101 2019-02-18 Martin Jambor <mjambor@suse.cz>
16102
16103 PR tree-optimization/89209
16104 * tree-sra.c (create_access_replacement): New optional parameter
16105 reg_tree. Use it as a type if non-NULL and access type is not of
16106 a register type.
16107 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
16108 to create_access_replacement.
16109 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
16110 Check lacc is non-NULL before attempting to re-create it on the RHS.
16111
16112 2019-02-18 Martin Liska <mliska@suse.cz>
16113
16114 PR ipa/89306
16115 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
16116 by default.
16117 (symbol_table::free_edge): Recycle m_summary_id.
16118 * cgraph.h (get_summary_id): New.
16119 (symbol_table::release_symbol): Set m_summary_id to -1
16120 by default.
16121 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
16122 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
16123 function_summary to fast_function_summary.
16124 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
16125 * ipa-pure-const.c (class funct_state_summary_t):
16126 Switch from function_summary to fast_function_summary.
16127 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
16128 (class ipa_ref_opt_summary_t): Switch from function_summary
16129 to fast_function_summary.
16130 * symbol-summary.h (class function_summary_base): New class
16131 that is created from base of former function_summary.
16132 (function_summary_base::unregister_hooks): New.
16133 (class function_summary): Inherit from function_summary_base.
16134 (class call_summary_base): New class
16135 that is created from base of former call_summary.
16136 (class call_summary): Inherit from call_summary_base.
16137 (struct is_same): New.
16138 (class fast_function_summary): New summary class.
16139 (class fast_call_summary): New summary class.
16140 * vec.h (vec_safe_grow_cleared): New function.
16141
16142 2019-02-18 Martin Liska <mliska@suse.cz>
16143
16144 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
16145 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
16146 * doc/tm.texi: Document new target hook.
16147 * doc/tm.texi.in: Likewise.
16148 * target.def: Add new target macro.
16149 * gcc.c (find_fortran_preinclude_file): Do not search multilib
16150 suffixes.
16151
16152 2019-02-17 Alan Modra <amodra@gmail.com>
16153
16154 PR target/89271
16155 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
16156 output reg on add insn.
16157 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
16158
16159 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
16160
16161 PR target/89372
16162 * config/i386/sse.md (ssedoublemode): Remove V4HI.
16163 (PMULHRSW): Likewise.
16164 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
16165 TARGET_AVX2.
16166 (ssse3_pmulhrswv4hi3): New expander.
16167
16168 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
16169
16170 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
16171 MMX. Add isa attribute.
16172
16173 2019-02-16 Jakub Jelinek <jakub@redhat.com>
16174
16175 PR rtl-optimization/66152
16176 * builtins.h (c_readstr): Declare.
16177 * builtins.c (c_readstr): Remove forward declaration. Add
16178 null_terminated_p argument, if false, read all bytes from the
16179 string instead of stopping after '\0'.
16180 * expr.c (string_cst_read_str): New function.
16181 (store_expr): Use string_cst_read_str instead of
16182 builtin_strncpy_read_str. Try to store by pieces the whole
16183 exp_len first, and only if that fails, split it up into
16184 store by pieces followed by clear_storage. Formatting fix.
16185
16186 * config/i386/i386.md (*movqi_internal): Remove static from
16187 buf variable. Use output_asm_insn (buf, operands); return "";
16188 instead of return buf;.
16189 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
16190 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
16191 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
16192
16193 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
16194
16195 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
16196 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
16197 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
16198 (CC1_SPEC): Likewise.
16199 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
16200
16201 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
16202
16203 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
16204 the base address on 64-bit strict-alignment platforms.
16205
16206 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
16207
16208 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
16209
16210 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
16211
16212 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
16213
16214 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
16215
16216 PR rtl-optimization/88308
16217 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
16218 on copied instruction.
16219
16220 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
16221
16222 * final.c (insn_current_reference_address): Replace test on JUMP_P
16223 with test on jump_to_label_p.
16224 * config/visium/visium-passes.def: New file.
16225 * config/visium/t-visium (PASSES_EXTRA): Define.
16226 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
16227 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
16228 (TRAMPOLINE_ALIGNMENT): Define.
16229 * config/visium/visium.c (visium_option_override): Do not register
16230 the machine-specific reorg pass here.
16231 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
16232 for the GR6.
16233 (output_branch): Adjust threshold for long branch instruction.
16234 * config/visium/visium.md (cpu): Move around.
16235 (length): Adjust for the GR6.
16236
16237 2019-02-15 Richard Biener <rguenther@suse.de>
16238 Jakub Jelinek <jakub@redhat.com>
16239
16240 PR tree-optimization/89278
16241 * tree-loop-distribution.c: Include tree-eh.h.
16242 (generate_memset_builtin, generate_memcpy_builtin): Call
16243 rewrite_to_non_trapping_overflow on builtin->size before passing it
16244 to force_gimple_operand_gsi.
16245
16246 2019-02-15 Jakub Jelinek <jakub@redhat.com>
16247
16248 PR other/89342
16249 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
16250 optimize_debug.
16251 * opth-gen.awk: Likewise.
16252
16253 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
16254
16255 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
16256 Enable MMX, SSE and SSE2 by default.
16257 * config/i386/i386.c (ix86_option_override_internal): Do not
16258 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
16259
16260 2019-02-14 Jakub Jelinek <jakub@redhat.com>
16261
16262 PR rtl-optimization/89354
16263 * combine.c (make_extraction): Punt if extraction_mode is narrower
16264 than len bits.
16265
16266 2019-02-14 Maya Rashish <coypu@sdf.org>
16267
16268 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
16269 * config/netbsd-d.c: New file.
16270 * config/t-netbsd: Add netbsd-d.o
16271
16272 2018-02-14 Steve Ellcey <sellcey@marvell.com>
16273
16274 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
16275 affects_type_identity to true for aarch64_vector_pcs.
16276 (aarch64_comp_type_attributes): New function.
16277 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
16278
16279 2019-02-14 Tamar Christina <tamar.christina@arm.com>
16280
16281 PR target/88850
16282 * config/arm/iterators.md (ANY64): Add V4HF.
16283
16284 2019-02-14 Martin Liska <mliska@suse.cz>
16285
16286 PR rtl-optimization/89242
16287 * dce.c (delete_unmarked_insns): Call free_dominance_info we
16288 process a transformation.
16289
16290 2019-02-14 Jakub Jelinek <jakub@redhat.com>
16291
16292 PR tree-optimization/89314
16293 * fold-const.c (fold_binary_loc): Cast strlen argument to
16294 const char * before dereferencing it. Formatting fixes.
16295
16296 PR middle-end/89284
16297 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
16298
16299 2019-02-13 Ian Lance Taylor <iant@golang.org>
16300
16301 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
16302 and set current index for other optimizations.
16303
16304 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
16305
16306 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
16307 nonimmediate_operand as operand 2 predicate.
16308 (vec_set<VF2_512_256:mode>_0): Ditto.
16309 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
16310 (*vec_concatv2si): Remove alternative 2.
16311 (*vec_concatv4si_0): Use vm constraint for alternative 0.
16312 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
16313 (vec_concatv2di): Split alternatives 4,5,6 to ...
16314 (*vec_concatv2di_0) ... new pattern.
16315
16316 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
16317
16318 PR target/89190
16319 * config/arm/arm.c (ldm_stm_operation_p) Set
16320 addr_reg_in_reglist correctly for first register.
16321 (load_multiple_sequence): Remove dead base check.
16322 (gen_ldm_seq): Correctly set write_back for Thumb-1.
16323
16324 2019-02-13 Tamar Christina <tamar.christina@arm.com>
16325
16326 PR target/88847
16327 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
16328 Expose as @aarch64_pred_mov.
16329 * config/aarch64/aarch64.c (aarch64_classify_address):
16330 Use expand_insn which legitimizes operands.
16331
16332 2019-02-13 Martin Liska <mliska@suse.cz>
16333
16334 * builtins.h (expand_builtin_with_bounds): Remove declaration.
16335 * calls.c (struct arg_data): Remove special_slot, pointer_arg
16336 and pointer_offset fields.
16337 (initialize_argument_information): Remove usage of dead
16338 fields.
16339 * cgraph.h (struct cgraph_thunk_info): Remove
16340 add_pointer_bounds_args.
16341 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
16342 fields.
16343 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
16344 fields.
16345 * config/i386/i386.c (ix86_function_arg_advance): Remove
16346 unrelated comment.
16347 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
16348 (def_builtin): Remove usage of dead fields.
16349 (ix86_add_new_builtins): Likewise.
16350 * ipa-fnsummary.c (compute_fn_summary): Likewise.
16351 * ipa-icf.c (sem_function::equals_wpa): Likewise.
16352 (sem_function::init): Likewise.
16353 (sem_variable::merge): Likewise.
16354 * ipa-visibility.c (function_and_variable_visibility): Likewise.
16355 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
16356 * lto-cgraph.c (lto_output_node): Likewise.
16357 (lto_output_varpool_node): Likewise.
16358 (input_node): Likewise.
16359 (input_varpool_node): Likewise.
16360 * lto-streamer-out.c (lto_output): Likewise.
16361 * tree-inline.c (expand_call_inline): Remove usage of
16362 assign_stmts.
16363 * tree-inline.h (struct copy_body_data): Likewise.
16364 * varpool.c (varpool_node::dump): Likewise.
16365
16366 2019-02-13 Jakub Jelinek <jakub@redhat.com>
16367
16368 PR middle-end/89303
16369 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
16370 into pt->vars_contains_escaped_heap instead of setting
16371 pt->vars_contains_escaped_heap to it.
16372
16373 PR middle-end/89281
16374 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
16375 INTVAL (size), compare it to GET_MODE_MASK instead of
16376 1 << GET_MODE_BITSIZE.
16377
16378 PR target/89290
16379 * config/i386/predicates.md (x86_64_immediate_operand): Allow
16380 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
16381 -mcmodel=large.
16382
16383 2019-02-13 Martin Liska <mliska@suse.cz>
16384
16385 PR lto/88858
16386 * cfgrtl.c (remove_barriers_from_footer): New function.
16387 (try_redirect_by_replacing_jump): Use it.
16388 (cfg_layout_redirect_edge_and_branch): Likewise.
16389
16390 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
16391
16392 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
16393 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
16394 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
16395 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
16396 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
16397 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
16398 New BU_CRYPTO_2.
16399 * config/rs6000/rs6000.c (builtin_function_type)
16400 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
16401 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
16402 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
16403 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
16404 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
16405
16406 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
16407
16408 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
16409 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
16410
16411 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
16412
16413 PR target/89229
16414 * config/i386/i386.md (*movoi_internal_avx): Revert revision
16415 268678 and revision 268657.
16416 (*movti_internal): Likewise.
16417
16418 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
16419
16420 PR target/89233
16421 * config/s390/s390.c (s390_decompose_address): Update comment.
16422 (s390_check_qrst_address): Reject invalid address forms after
16423 LRA.
16424
16425 2019-02-12 Martin Liska <mliska@suse.cz>
16426
16427 PR lto/88876
16428 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
16429 we need default values of funct_state for a function that
16430 is not optimized.
16431
16432 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
16433
16434 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
16435 the object to pick the size of stores on strict-alignment platforms.
16436
16437 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
16438 (*movdi_insn_sp32): Likewise.
16439 (*movdi_insn_sp64): Likewise.
16440
16441 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
16442
16443 PR lto/88677
16444 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
16445 types that needs constructiong.
16446 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
16447
16448 2019-02-12 Richard Biener <rguenther@suse.de>
16449
16450 PR tree-optimization/89253
16451 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
16452 duplicate the loop.
16453
16454 2019-02-11 David Malcolm <dmalcolm@redhat.com>
16455
16456 PR lto/88147
16457 * input.c (selftest::test_line_offset_overflow): New selftest.
16458 (selftest::input_c_tests): Call it.
16459
16460 2019-02-11 Martin Sebor <msebor@redhat.com>
16461
16462 PR tree-optimization/88771
16463 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
16464 when -Wstringop-overflow is set.
16465 (builtin_memref::builtin_memref): Adjust excessive upper bound
16466 only when lower bound is not excessive.
16467 (maybe_diag_overlap): Detect and diagnose excessive bounds via
16468 -Wstringop-ovefflow.
16469 (maybe_diag_offset_bounds): Rename...
16470 (maybe_diag_access_bounds): ...to this.
16471 (check_bounds_or_overlap): Adjust for name change above.
16472
16473 2019-02-11 Martin Sebor <msebor@redhat.com>
16474
16475 PR c++/87996
16476 * builtins.c (max_object_size): Move from here...
16477 * builtins.h (max_object_size): ...and here...
16478 * tree.c (max_object_size): ...to here...
16479 * tree.h (max_object_size): ...and here.
16480
16481 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
16482
16483 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
16484 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
16485 for correct semantics.
16486
16487 2019-02-11 Alan Modra <amodra@gmail.com>
16488
16489 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
16490 -mlongcall and -mpltseq.
16491 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
16492 (RS/6000 and PowerPC Options <-mpltseq>): Document.
16493 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
16494 * config/rs6000/sysv4.opt (mpltseq): New option.
16495 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
16496 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
16497 support is lacking. Don't allow -mpltseq with -mbss-plt.
16498 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
16499 -mpltseq given for ELFv1.
16500 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
16501 Only use UNSPEC_PLTSEQ for inline PLT calls.
16502 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
16503 use UNSPEC_PLTSEQ for inline PLT calls.
16504 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
16505 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
16506 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
16507 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
16508 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
16509 (pltseq_mtctr_<mode>): Likewise.
16510
16511 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16512
16513 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
16514 Solaris ld.
16515 * configure: Regenerate.
16516
16517 2019-02-11 Jakub Jelinek <jakub@redhat.com>
16518
16519 PR bootstrap/88714
16520 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
16521 instead of r.
16522
16523 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
16524
16525 * function.c (assign_parm_setup_block): Use the stored
16526 size, not the passed size, when allocating stack-space,
16527 also for a parameter with alignment larger than
16528 MAX_SUPPORTED_STACK_ALIGNMENT.
16529
16530 2019-02-11 Martin Liska <mliska@suse.cz>
16531
16532 PR ipa/89009
16533 * ipa-cp.c (build_toporder_info): Remove usage of a param.
16534 * ipa-inline.c (inline_small_functions): Likewise.
16535 * ipa-pure-const.c (propagate_pure_const): Likewise.
16536 (propagate_nothrow): Likewise.
16537 * ipa-reference.c (propagate): Likewise.
16538 * ipa-utils.c (struct searchc_env): Remove unused field.
16539 (searchc): Always search across AVAIL_INTERPOSABLE.
16540 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
16541 the only called IPA pure const can properly not propagate
16542 across interposable boundary.
16543 * ipa-utils.h (ipa_reduced_postorder): Remove param.
16544
16545 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
16546
16547 * config/nds32/nds32.md (call_internal, call_value_internal,
16548 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
16549
16550 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
16551
16552 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
16553 typo.
16554
16555 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
16556
16557 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
16558 in comments
16559
16560 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
16561
16562 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
16563
16564 2019-02-10 Jakub Jelinek <jakub@redhat.com>
16565
16566 PR tree-optimization/89268
16567 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
16568 if preds is non-NULL.
16569
16570 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16571
16572 PR lto/89272
16573 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
16574 polymorphic types.
16575
16576 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
16577
16578 * config/nds32/nds32.md (trap): New pattern.
16579
16580 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
16581
16582 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
16583 dwarf span.
16584
16585 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
16586
16587 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
16588 to split POST_INC.
16589
16590 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16591
16592 * ipa-visibility.c (localize_node): Also do not localize
16593 LDPR_PREVAILING_DEF_IRONLY_EXP.
16594
16595 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16596
16597 PR lto/87957
16598 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
16599 instead of type_with_linkage.
16600
16601 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16602
16603 PR ipa/88755
16604 * params.def (uninlined-function-insns, uninlined-function-time,
16605 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
16606 bound so we don't get overflows.
16607
16608 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
16609
16610 * config/rs6000/rs6000-string.c (expand_compare_loop,
16611 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
16612 memcmp/strncmp.
16613
16614 2019-02-09 Jakub Jelinek <jakub@redhat.com>
16615
16616 PR middle-end/89246
16617 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
16618 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
16619 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
16620
16621 2019-02-09 Alan Modra <amodra@gmail.com>
16622
16623 PR target/88343
16624 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
16625 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
16626 setup.
16627
16628 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
16629
16630 PR middle-end/88560
16631 * lra-constraints.c (process_alt_operands): Don't increase reject
16632 for memory when offset memory is required.
16633
16634 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
16635
16636 * config/s390/vector.md: Implement vector copysign.
16637
16638 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
16639
16640 * expr.c (expand_constructor): Correct indentations.
16641
16642 2019-02-08 Richard Biener <rguenther@suse.de>
16643
16644 PR tree-optimization/89247
16645 * tree-if-conv.c: Include tree-cfgcleanup.h.
16646 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
16647 (tree_if_conversion): Pass through predicate vector.
16648 (pass_if_conversion::execute): Do CFG cleanup and SSA update
16649 inline, see if any if-converted loops we refrece in
16650 LOOP_VECTORIZED calls vanished and fixup.
16651 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
16652
16653 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
16654
16655 * config/s390/constraints.md (jdd): New constraint.
16656
16657 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
16658
16659 PR target/89229
16660 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
16661 upper 16 vector registers without TARGET_AVX512VL.
16662 (*movti_internal): Likewise.
16663
16664 2019-02-08 Jakub Jelinek <jakub@redhat.com>
16665
16666 PR rtl-optimization/89234
16667 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
16668 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
16669 (copy_reg_eh_region_note_backward): Likewise.
16670
16671 2019-02-08 Richard Biener <rguenther@suse.de>
16672
16673 PR middle-end/89223
16674 * tree-data-ref.c (initialize_matrix_A): Fail if constant
16675 doesn't fit in HWI.
16676 (analyze_subscript_affine_affine): Handle failure from
16677 initialize_matrix_A.
16678
16679 2019-02-08 Jakub Jelinek <jakub@redhat.com>
16680
16681 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
16682 cfun everywhere.
16683
16684 2019-02-07 David Malcolm <dmalcolm@redhat.com>
16685
16686 PR tree-optimization/86637
16687 PR tree-optimization/89235
16688 * tree-vect-loop.c (optimize_mask_stores): Add an
16689 auto_purge_vect_location sentinel to ensure that vect_location is
16690 purged on exit.
16691 * tree-vectorizer.c
16692 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
16693 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
16694 to ensure that vect_location is purged on exit.
16695 (pass_slp_vectorize::execute): Likewise, replacing the manual
16696 reset.
16697 * tree-vectorizer.h (class auto_purge_vect_location): New class.
16698
16699 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16700
16701 * config/aarch64/iterators.md (max_opp): New code_attr.
16702 (USMAX): New code iterator.
16703 * config/aarch64/predicates.md (aarch64_smin): New predicate.
16704 (aarch64_smax): Likewise.
16705 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
16706 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
16707 MINUS (MAX MIN).
16708
16709 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
16710
16711 PR target/89229
16712 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
16713 for TARGET_AVX512VL.
16714 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
16715
16716 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
16717
16718 * config/s390/s390-builtin-types.def: Add new types.
16719 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
16720 (s390_vec_xlw4): Make the memory operand into a const pointer.
16721 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
16722 float.
16723 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
16724 a new vector type with the alignment of the scalar memory operand.
16725
16726 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
16727 Jakub Jelinek <jakub@redhat.com>
16728
16729 PR bootstrap/88714
16730 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
16731 arm_count_ldrdstrd_insns): New declarations.
16732 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
16733 MINUS.
16734 (valid_operands_ldrd_strd): New function.
16735 (arm_count_ldrdstrd_insns): New function.
16736 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
16737 sets instead of single DImode set and define new insns to match this.
16738
16739 2019-02-07 Tamar Christina <tamar.christina@arm.com>
16740
16741 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
16742 Make it a C initializer.
16743
16744 2019-02-07 Tamar Christina <tamar.christina@arm.com>
16745
16746 PR/target 88850
16747 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
16748
16749 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16750
16751 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
16752 Use neon_dot<q> for type.
16753 (neon_<sup>dot_lane<vsi2qi>): Likewise.
16754
16755 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16756
16757 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
16758 Use neon_dot<q> for type.
16759 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
16760 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
16761
16762 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
16763
16764 PR rtl-optimization/89225
16765 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
16766 sizes check.
16767
16768 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
16769
16770 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
16771 after restoring registers saved to allocate the frame on Windows.
16772
16773 2019-02-06 Richard Biener <rguenther@suse.de>
16774
16775 PR tree-optimization/89182
16776 * graphite.h (cached_scalar_evolution_in_region): Declare.
16777 * graphite.c (struct seir_cache_key): New.
16778 (struct sese_scev_hash): Likewise.
16779 (seir_cache): New global.
16780 (cached_scalar_evolution_in_region): New function.
16781 (graphite_transform_loops): Allocate and release seir_cache.
16782 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
16783 cached_scalar_evolution_in_region.
16784 * graphite-scop-detection.c (scop_detection::can_represent_loop):
16785 Simplify.
16786 (scop_detection::graphite_can_represent_expr: Use
16787 cached_scalar_evolution_in_region.
16788 (scop_detection::stmt_simple_for_scop_p): Likewise.
16789 (find_params_in_bb): Likewise.
16790 (gather_bbs::before_dom_children): Likewise.
16791 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
16792 (add_loop_constraints): Likewise.
16793
16794 2019-02-06 Jakub Jelinek <jakub@redhat.com>
16795
16796 PR middle-end/89210
16797 * fold-const-call.c (fold_const_vec_convert): Pass true as last
16798 operand to new_unary_operation only if both element types are integral
16799 and it isn't a widening conversion. Return NULL_TREE if
16800 new_unary_operation failed.
16801
16802 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
16803
16804 PR target/88856
16805 * config/s390/s390.md: Remove load and test FP splitter.
16806
16807 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
16808
16809 PR target/89112
16810 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
16811 expand_compare_loop, expand_block_compare_gpr,
16812 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
16813 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
16814 #include "profile-count.h" and "predict.h" for types and functions
16815 needed to work with REG_BR_PROB notes.
16816
16817 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
16818
16819 PR target/89112
16820 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
16821 for the long branch case.
16822
16823 2019-02-05 Jakub Jelinek <jakub@redhat.com>
16824
16825 PR target/89188
16826 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
16827 can throw, non-call exceptions are enabled and we can't delete
16828 dead exceptions or alter cfg. Set must_clean if
16829 delete_insn_and_edges returns true, don't set it blindly for calls.
16830 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
16831
16832 PR rtl-optimization/89195
16833 * combine.c (make_extraction): For MEMs, don't extract bytes outside
16834 of the original MEM.
16835
16836 2019-02-05 Martin Liska <mliska@suse.cz>
16837
16838 PR gcov-profile/89000
16839 * gcov.c (function_summary): Remove argument.
16840 (file_summary): New function.
16841 (print_usage): Replace tabs with spaces.
16842 (generate_results): Use new function file_summary.
16843
16844 2019-02-05 Jakub Jelinek <jakub@redhat.com>
16845
16846 PR target/89186
16847 * optabs.c (prepare_cmp_insn): Pass x and y to
16848 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
16849
16850 2019-02-05 Richard Biener <rguenther@suse.de>
16851
16852 PR middle-end/89150
16853 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
16854 (struct bitmap_element): Drop chain_prev so we properly recurse on
16855 the prev member, supporting tree views.
16856 (struct bitmap_head): GTY skip the obstack member.
16857
16858 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
16859
16860 PR c/88698
16861 * doc/extend.texi (Vector Extensions): Add an example of using vector
16862 types together with x86 intrinsics.
16863
16864 2019-02-04 Alan Modra <amodra@gmail.com>
16865
16866 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
16867 str[] size to 160, and comment.
16868
16869 2019-02-04 Alan Modra <amodra@gmail.com>
16870
16871 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
16872 (rs6000_pltseq_template): Guard output of TLS markers with
16873 TARGET_TLS_MARKERS.
16874 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
16875 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
16876 to use inline PLT sequences.
16877 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
16878 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
16879 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
16880
16881 2019-02-04 Martin Liska <mliska@suse.cz>
16882
16883 PR ipa/88985
16884 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
16885 out when ipa_fn_summaries does not contain entry for callee.
16886
16887 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
16888
16889 * config/sparc/sparc.h: Remove superfluous blank lines.
16890 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
16891 (got_register_rtx): ...this.
16892 (sparc_got): Adjust to above renaming.
16893 (sparc_tls_got): Likewise.
16894 (sparc_delegitimize_address): Likewise.
16895 (sparc_output_mi_thunk): Likewise.
16896 (sparc_init_pic_reg): Likewise.
16897 (save_local_or_in_reg_p): Fix test on the GOT register.
16898 (USE_HIDDEN_LINKONCE): Move around.
16899 (get_pc_thunk_name): Likewise.
16900 (gen_load_pcrel_sym): Likewise.
16901 (load_got_register): Likewise.
16902
16903 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
16904
16905 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
16906 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
16907
16908 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
16909
16910 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
16911 into consideration.
16912
16913 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
16914
16915 * config.gcc (with_nds32_lib, glibc):
16916 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
16917 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
16918 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
16919
16920 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
16921
16922 PR target/89071
16923 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
16924 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
16925 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
16926 (*rcpsf2_sse): Ditto.
16927 (*rsqrtsf2_sse): Ditto.
16928 (sse4_1_round<mode<2): Ditto.
16929
16930 2019-02-03 Richard Biener <rguenther@suse.de>
16931
16932 PR debug/87295
16933 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
16934 orig.
16935
16936 2019-02-02 Jakub Jelinek <jakub@redhat.com>
16937
16938 PR middle-end/87887
16939 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
16940 Punt with warning on aggregate return or argument types. Ignore
16941 type/mode checking for uniform arguments.
16942
16943 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
16944
16945 * combine.c (try_combine): Do not print "Can't combine" messages unless
16946 printing failed combination attempts.
16947
16948 2019-02-01 Martin Jambor <mjambor@suse.cz>
16949
16950 PR hsa/87863
16951 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
16952 segment and global segment variables before making them static.
16953
16954 2019-02-01 Martin Jambor <mjambor@suse.cz>
16955
16956 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
16957 missed optimization dump with dump_enabled_p.
16958
16959 2019-02-01 Richard Biener <rguenther@suse.de>
16960
16961 PR middle-end/88597
16962 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
16963 the instantiate cache.
16964 (instantiate_scev_binary): Elide second operand procesing
16965 if equal to the first.
16966 * tree-chrec.c (chrec_contains_symbols): Add visited set.
16967 (chrec_contains_undetermined): Likewise.
16968 (tree_contains_chrecs): Likewise.
16969
16970 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
16971
16972 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
16973
16974 2019-02-01 Jakub Jelinek <jakub@redhat.com>
16975
16976 PR tree-optimization/89143
16977 * wide-int-range.h (wide_int_range_absu): Declare.
16978 * wide-int-range.cc (wide_int_range_absu): New function.
16979 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
16980
16981 PR tree-optimization/88107
16982 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
16983 instead of assertion that eh_region_outermost is non-NULL, if it
16984 is NULL, set *ALL to true and return NULL.
16985 (move_sese_region_to_fn): Adjust caller, if all is set, call
16986 duplicate_eh_regions with NULL region.
16987
16988 2019-02-01 Richard Biener <rguenth@suse.de>
16989
16990 PR rtl-optimization/88593
16991 * mode-switching.c (optimize_mode_switching): Free dominators before
16992 calling cleanup_cfg.
16993
16994 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
16995
16996 PR tree-optimization/88932
16997 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
16998
16999 2019-01-31 Jakub Jelinek <jakub@redhat.com>
17000
17001 PR middle-end/89137
17002 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
17003 bogus clang warning.
17004
17005 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
17006
17007 PR target/89071
17008 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
17009 alternative to avoid partial SSE register stall for TARGET_AVX.
17010 (truncdfsf2): Ditto.
17011 (sse4_1_round<mode>2): Ditto.
17012
17013 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
17014
17015 PR tree-optimization/89008
17016 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
17017 process anything of the form X * 0.
17018
17019 2019-01-31 Richard Biener <rguenther@suse.de>
17020
17021 PR tree-optimization/89135
17022 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
17023 with abnormal preds.
17024
17025 2019-01-31 Jakub Jelinek <jakub@redhat.com>
17026
17027 PR sanitizer/89124
17028 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
17029 always_inline callees into no_sanitize_address callers.
17030
17031 2019-01-31 Richard Biener <rguenther@suse.de>
17032
17033 PR rtl-optimization/89115
17034 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
17035
17036 2019-01-30 Martin Sebor <msebor@redhat.com>
17037
17038 PR other/89106
17039 * doc/extend.texi (cast to a union): Correct and expand.
17040
17041 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
17042
17043 PR rtl-optimization/87246
17044 * lra-constraints.c (simplify_operand_subreg): Reload memory
17045 in subreg if the address became invalid.
17046
17047 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
17048
17049 PR target/87064
17050 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
17051 Disable for little-endian.
17052
17053 2019-01-30 Richard Biener <rguenther@suse.de>
17054
17055 PR rtl-optimization/89115
17056 * opts.c (default_options_optimization): Reduce
17057 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
17058 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
17059 to the default.
17060
17061 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
17062
17063 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
17064 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
17065 type of vector element when vec_extract is implemented by direct
17066 move.
17067
17068 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
17069
17070 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
17071
17072 2019-01-30 Richard Biener <rguenther@suse.de>
17073
17074 PR tree-optimization/89111
17075 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
17076 canonicalization to appropriately sized access types.
17077
17078 2019-01-30 Jakub Jelinek <jakub@redhat.com>
17079
17080 PR c++/89105
17081 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
17082 for arguments to functions that are TU-local and shouldn't be
17083 referenced by assembly.
17084
17085 2019-01-30 Ulrich Drepper <drepper@redhat.com>
17086
17087 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
17088 after '='.
17089
17090 2019-01-29 Martin Sebor <msebor@redhat.com>
17091
17092 PR c/88956
17093 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
17094
17095 2019-01-29 Jakub Jelinek <jakub@redhat.com>
17096
17097 PR c++/66676
17098 PR ipa/89104
17099 * omp-simd-clone.c (simd_clone_clauses_extract)
17100 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
17101 OMP_CLAUSE_ALIGNED_ALIGNMENT.
17102
17103 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
17104
17105 * config.gcc: Force .init_array for ARC.
17106
17107 2019-01-29 Richard Biener <rguenther@suse.de>
17108
17109 PR debug/87295
17110 * dwarf2out.c (collect_skeleton_dies): New helper.
17111 (copy_decls_for_unworthy_types): Call it.
17112 (build_abbrev_table): Assert we do not try to replace
17113 DW_AT_signature refs with local refs.
17114
17115 2019-01-28 Jakub Jelinek <jakub@redhat.com>
17116
17117 PR middle-end/89002
17118 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
17119 for lastprivate/linear IV, push gimplify context around gimplify_assign
17120 and, if it needed any temporaries, pop it into a gimple bind around the
17121 sequence.
17122
17123 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
17124
17125 * common.opt (-Wattribute-alias): Remove "no-" from name.
17126 Make -Wattribute-alias command line option and
17127 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
17128
17129 2019-01-28 Jakub Jelinek <jakub@redhat.com>
17130
17131 PR target/89073
17132 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
17133 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
17134 x86 ISA options.
17135 (bmi2): Add missing @opindex.
17136 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
17137 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
17138 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
17139 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
17140 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
17141 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
17142 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
17143 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
17144 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
17145 xsavec, xsaveopt and xsaves options.
17146
17147 2019-01-28 Richard Biener <rguenther@suse.de>
17148
17149 PR debug/89076
17150 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
17151 support removal.
17152
17153 2019-01-28 Richard Biener <rguenther@suse.de>
17154
17155 PR tree-optimization/88739
17156 * tree-cfg.c (verify_types_in_gimple_reference): Verify
17157 BIT_FIELD_REFs only are applied to mode-precision operands
17158 when they are integral.
17159 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
17160 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
17161 BIT_FIELD_REFs of non-mode-precision integral operands.
17162
17163 2019-01-27 Jakub Jelinek <jakub@redhat.com>
17164
17165 PR target/87214
17166 * config/i386/sse.md
17167 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
17168 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
17169 first constants in pairs are multiples of 2. Formatting fixes.
17170 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
17171 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
17172 first constants in each quadruple are multiples of 4. Formatting fixes.
17173
17174 2019-01-26 Martin Jambor <mjambor@suse.cz>
17175
17176 PR ipa/88933
17177 * tree-inline.c: Include tree-cfgcleanup.h.
17178 (delete_unreachable_blocks_update_callgraph): Move...
17179 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
17180 ...here, make externally visible, make second argument bool, adjust
17181 all callers.
17182 * tree-cfgcleanup.c: Include cgraph.h.
17183 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
17184 Declare.
17185 * ipa-prop.c: Include tree-cfgcleanup.h.
17186 (ipcp_transform_function): Call
17187 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
17188
17189 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
17190
17191 PR rtl-optimization/88846
17192 * ira.c (process_set_for_memref_referenced_p): New.
17193 (memref_referenced_p): Add new param. Use
17194 process_set_for_memref_referenced_p. Add new switch cases.
17195 (memref_used_between_p): Pass new arg to memref_referenced_p.
17196
17197 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
17198
17199 PR target/88469
17200 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
17201 argument ABI_BREAK. Set to true if the calculated alignment has
17202 changed in gcc-9. Check bit-fields for their base type alignment.
17203 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
17204 (aarch64_function_arg_boundary): Likewise.
17205 (aarch64_gimplify_va_arg_expr): Likewise.
17206
17207 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
17208
17209 PR middle-end/89037
17210 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
17211 instead of accessing TREE_INT_CST_ELT directly.
17212
17213 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
17214
17215 * doc/sourcebuild.texi (Environment attributes): Add fenv and
17216 fenv_exceptions description.
17217
17218 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
17219
17220 PR rtl-optimization/87763
17221 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
17222 Allow SUBREG when matching CC_NZmode compare.
17223
17224 2019-01-25 Richard Biener <rguenther@suse.de>
17225
17226 PR tree-optimization/89049
17227 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
17228 Look at the pattern stmt to determine if the stmt is vectorized.
17229
17230 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
17231
17232 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
17233 (pred_mov<mode>): Handle all-register forms using both a new
17234 alternative and a split.
17235
17236 2019-01-25 Richard Biener <rguenther@suse.de>
17237
17238 PR tree-optimization/86865
17239 * graphite-scop-detection.c (scop_detection::can_represent_loop):
17240 Reject non-do-while loops.
17241
17242 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
17243
17244 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
17245 * config/rs6000/constraints.md (Q constraint): Use REG_P.
17246 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
17247 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
17248 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
17249 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
17250 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
17251 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
17252 vlogical_operand, gpc_reg_operand, int_reg_operand,
17253 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
17254 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
17255 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
17256 (save_world_operation, restore_world_operation, lmw_operation,
17257 stmw_operation): Use MEM_P and REG_P.
17258 (tie_operand): Use MEM_P.
17259 (vrsave_operation, crsave_operation): Use REG_P.
17260 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
17261 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
17262 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
17263 (call_operand): Use HARD_REGISTER_P.
17264 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
17265 Use CONST_INT_P.
17266 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
17267 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
17268 quad_aligned_load_p, replace_swapped_aligned_store,
17269 recombine_lvx_pattern, replace_swapped_aligned_load,
17270 recombine_stvx_pattern): Use MEM_P.
17271 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
17272 Use MEM_P and SYMBOL_REF_P.
17273 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
17274 (insn_is_swappable_p): Use REG_P and MEM_P.
17275 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
17276 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
17277 Use CONST_INT_P.
17278 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
17279 Use CONST_DOUBLE_P.
17280 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
17281 CONST_WIDE_INT_P.
17282 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
17283 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
17284 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
17285 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
17286 reg_or_subregno:
17287 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
17288 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
17289 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
17290 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
17291 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
17292 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
17293 rs6000_split_logical_di): Use CONST_INT_P.
17294 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
17295 REG_P and SYMBOL_REF_P.
17296 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
17297 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
17298 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
17299 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
17300 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
17301 (small_data_operand, print_operand_address): Use CONST_INT_P and
17302 SYMBOL_REF_P.
17303 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
17304 (rs6000_init_hard_regno_mode_ok, direct_move_p):
17305 Use HARD_REGISTER_NUM_P.
17306 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
17307 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
17308 SUBREG_P and SYMBOL_REF_P.
17309 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
17310 and HARD_REGISTER_NUM_P.
17311 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
17312 reg_or_subregno.
17313 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
17314 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
17315 MEM_P and REG_P.
17316 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
17317 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
17318 find_addr_reg): Use REG_P.
17319 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
17320 (rs6000_emit_le_vsx_move): Use SUBREG_P.
17321 (offsettable_ok_by_alignment, constant_pool_expr_p,
17322 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
17323 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
17324 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
17325 rs6000_assemble_integer, create_TOC_reference,
17326 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
17327 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
17328 (rs6000_split_vec_extract_var): Use reg_or_subregno.
17329 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
17330 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
17331 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
17332 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
17333 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
17334 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
17335 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
17336 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
17337 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
17338 and cbranch<mode>4): Use CONST_INT_P.
17339 (multiple define_splits): Use REG_P and SUBREG_P.
17340 (define_expands call, call_value): Use MEM_P.
17341 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
17342 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
17343 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
17344 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
17345 and HARD_REGISTER_NUM_P.
17346 (multiple define_splits): Use HARD_REGISTER_NUM_P.
17347
17348 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
17349
17350 PR rtl-optimization/88948
17351 * rtl.h (prepare_copy_insn): New prototype.
17352 * gcse.c (prepare_copy_insn): New function, split out from
17353 process_insert_insn.
17354 (process_insert_insn): Use prepare_copy_insn.
17355 * store-motion.c (replace_store_insn): Use prepare_copy_insn
17356 instead of gen_move_insn.
17357
17358 2019-01-24 Jakub Jelinek <jakub@redhat.com>
17359
17360 PR debug/89006
17361 * config/i386/i386.c (ix86_pic_register_p): Return true for
17362 UNSPEC_SET_GOT too.
17363
17364 PR tree-optimization/88964
17365 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
17366 punt if HONOR_SNANS (chrec).
17367
17368 PR middle-end/89015
17369 * tree-nested.c (convert_nonlocal_reference_stmt,
17370 convert_local_reference_stmt, convert_tramp_reference_stmt,
17371 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
17372 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
17373 or GIMPLE_OMP_TASK.
17374
17375 PR tree-optimization/89027
17376 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
17377 for "omp simd array" variables.
17378
17379 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
17380
17381 PR target/88469
17382 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
17383 force the alignment of m_val.
17384
17385 2019-01-24 Richard Biener <rguenther@suse.de>
17386
17387 PR lto/87187
17388 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
17389 When in "legacy" debug mode make sure to reset self-origins.
17390
17391 2019-01-24 Martin Liska <mliska@suse.cz>
17392
17393 PR gcov-profile/88994
17394 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
17395 result will be always smaller or equal to the original.
17396 * gcov.c (mangle_name): Fix else branch where we should
17397 also copy to PTR and shift the pointer.
17398
17399 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
17400
17401 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
17402 * vr-values.c (find_case_label_ranges): Fix a comment typo.
17403
17404 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
17405
17406 * common/config/i386/i386-common.c
17407 (OPTION_MASK_ISA_ENQCMD_SET,
17408 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
17409 (ix86_handle_option): Handle -menqcmd.
17410 * config.gcc (enqcmdintrin.h): New header file.
17411 * config/i386/cpuid.h (bit_ENQCMD): New bit.
17412 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
17413 -menqcmd.
17414 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
17415 function type.
17416 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
17417 __builtin_ia32_enqcmds): New builtins.
17418 * config/i386/i386-c.c (__ENQCMD__): New macro.
17419 * config/i386/i386-option.c (ix86_target_string): Add
17420 -menqcmd.
17421 (ix86_valid_target_attribute_inner_p): Likewise.
17422 * config/i386/i386-expand.c
17423 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
17424 IX86_BUILTIN_ENQCMDS.
17425 * config/i386/i386.h (TARGET_ENQCMD): New.
17426 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
17427 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
17428 (movdir64b_<mode>): Parameterize to enable share expansion code
17429 with ENQCMD in function ix86_expand_builtin.
17430 * config/i386/i386.opt: Add -menqcmd.
17431 * config/i386/immintrin.h: Include enqcmdintrin.h.
17432 * config/i386/enqcmdintrin.h: New intrinsic file.
17433 * doc/invoke.texi: Add -menqcmd.
17434
17435 2019-01-23 Bin Cheng <bin.cheng@arm.com>
17436 Steve Ellcey <sellcey@marvell.com>
17437
17438 PR target/85711
17439 * recog.c (address_operand): Return false on wrong mode for address.
17440 (constrain_operands): Check for mode with 'p' constraint.
17441
17442 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
17443
17444 PR target/88998
17445 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
17446 Disparage MMX alternative.
17447 (sse2_cvtpd2pi): Ditto.
17448 (sse2_cvttpd2pi): Ditto.
17449
17450 2019-01-23 David Malcolm <dmalcolm@redhat.com>
17451
17452 PR driver/89014
17453 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
17454 use-after-free of the result of
17455 aarch64_get_extension_string_for_isa_flags.
17456
17457 2019-01-23 Jakub Jelinek <jakub@redhat.com>
17458
17459 PR c/44715
17460 * doc/extend.texi: Document break and continue behavior in
17461 statement expressions.
17462
17463 2019-01-23 Richard Biener <rguenther@suse.de>
17464
17465 PR tree-optimization/89008
17466 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
17467 not leave another stray operand.
17468
17469 2019-01-23 Jakub Jelinek <jakub@redhat.com>
17470
17471 * BASE-VER: Bump to 9.0.1.
17472
17473 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
17474
17475 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
17476 thunk that returns by reference, use the type of the return object
17477 of the thunk instead of that of the alias to build the dereference.
17478
17479 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
17480
17481 * config/arc/atomic.md: Add operand to DMB instruction.
17482
17483 2019-01-23 Jakub Jelinek <jakub@redhat.com>
17484
17485 PR tree-optimization/88964
17486 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
17487 build_zero_cst instead of build_int_cst. Return false for loop
17488 invariants which honor signed zeros.
17489
17490 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
17491
17492 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
17493
17494 2019-01-22 Jakub Jelinek <jakub@redhat.com>
17495
17496 PR target/88965
17497 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
17498 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
17499 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
17500
17501 PR middle-end/88968
17502 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
17503 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
17504
17505 PR target/87064
17506 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
17507 Disable for little endian.
17508
17509 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
17510
17511 PR target/88469
17512 * config/arm/arm.c (arm_needs_double_word_align): Check
17513 DECL_BIT_FIELD_TYPE.
17514
17515 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
17516 H.J. Lu <hongjiu.lu@intel.com>
17517
17518 PR target/88909
17519 * config/i386/i386-builtin.def: Add mask2 to all builtin
17520 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
17521 SPECIAL_ARGS.
17522 * config/i386/i386.c (BDESC): Add mask2 to the definition.
17523 (BDESC_FIRST): Likewise.
17524 (define_builtin): Add an argument for mask2. Updated to handle
17525 both ix86_isa_flags and ix86_isa_flags2.
17526 (define_builtin_const): Likewise.
17527 (define_builtin_pure): Likewise.
17528 (define_builtin2): Deleted.
17529 (define_builtin_const2): Likewise.
17530 (builtin_description): Add a member, mask2.
17531 (bdesc_*): Add mask2 to builtin initializations.
17532 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
17533 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
17534 support.
17535 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
17536
17537 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
17538
17539 PR target/88954
17540 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
17541 noplt attribute.
17542
17543 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
17544
17545 PR target/88469
17546 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
17547 alignment is dominated by a bitfield with 64-bit aligned base type.
17548 (arm_function_arg): Emit a warning if the alignment has changed since
17549 earlier GCC releases.
17550 (arm_function_arg_boundary): Likewise.
17551 (arm_setup_incoming_varargs): Likewise.
17552
17553 2019-01-22 Richard Biener <rguenther@suse.de>
17554
17555 PR tree-optimization/88862
17556 * graphite-scop-detection.c
17557 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
17558
17559 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
17560
17561 * doc/extend.tex (AMD GCN Function Attributes): New section.
17562 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
17563 * doc/invoke.texi (AMD GCN Options): New section.
17564 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
17565
17566 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
17567
17568 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
17569 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
17570
17571 2019-01-22 Jakub Jelinek <jakub@redhat.com>
17572
17573 PR tree-optimization/88044
17574 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
17575 is false in the first iteration, but !every_iteration, return false
17576 instead of true with niter->niter zero.
17577
17578 PR rtl-optimization/88904
17579 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
17580 any nonequal registers before processing BB_END (b).
17581
17582 PR target/88905
17583 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
17584 GET_MODE (op0).
17585 (expand_binop_directly, expand_doubleword_clz,
17586 expand_doubleword_popcount, expand_ctz, expand_ffs,
17587 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
17588
17589 PR rtl-optimization/49429
17590 PR target/49454
17591 PR rtl-optimization/86334
17592 PR target/88906
17593 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
17594 addressable from here...
17595 (emit_block_op_via_libcall): ... to here.
17596
17597 2019-01-22 Richard Biener <rguenther@suse.de>
17598
17599 * tree-vect-loop.c (vect_analyze_loop_operations): Use
17600 auto_vec for cost vector to fix memleak.
17601 (vectorize_fold_left_reduction): Properly gather SLP defs.
17602 (vectorizable_comparison): Do not swap operands to properly
17603 gather SLP defs.
17604
17605 2019-01-22 Alan Modra <amodra@gmail.com>
17606
17607 PR target/88614
17608 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
17609 stays a reg. Allow a const_int.
17610 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
17611 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
17612 (IS_NOMARK_TLSGETADDR): Define.
17613 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
17614 (rs6000_output_tlsargs): New function.
17615 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
17616 __tls_get_addr call takes an arg.
17617 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
17618 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
17619 delete split..
17620 (call_value_nonlocal_sysv): ..or here, delete split.
17621 (tls_gdld_nomark): Delete.
17622 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
17623 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
17624 (call_value_nonlocal_sysv): Likewise.
17625 (call_value_nonlocal_sysv_secure): Likewise.
17626 (call_value_nonlocal_aix): Likewise.
17627 (call_value_indirect_aix): Likewise.
17628 (call_value_indirect_elfv2): Likewise.
17629 (call_value_local32, call_value_local64): Disable for no-mark tls.
17630 (call_value_local_aix): Likewise.
17631
17632 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
17633
17634 PR target/88938
17635 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
17636 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
17637
17638 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
17639
17640 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
17641 string contents as hash_map keys.
17642
17643 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
17644
17645 PR c/88928
17646 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
17647 for rvalue context. Handle rvalues correctly. Use min_align_of_type
17648 instead of TYPE_ALIGN.
17649 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
17650 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
17651 pointer from TYPE_STUB_DECL.
17652
17653 2019-01-21 Richard Biener <rguenther@suse.de>
17654
17655 PR tree-optimization/88934
17656 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
17657 at the possibly non-constant operand.
17658 (vect_get_constant_vectors): Adjust.
17659
17660 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
17661
17662 PR target/71659
17663 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
17664 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
17665 instead of _X86INTRIN_H_INCLUDED.
17666 * onfig/i386/clwbintrin.h: Likewise.
17667 * config/i386/pkuintrin.h: Likewise.
17668 * config/i386/prfchwintrin.h: Likewise.
17669 * config/i386/rdseedintrin.h: Likewise.
17670 * config/i386/wbnoinvdintrin.h: Likewise.
17671 * config/i386/xsavecintrin.h: Likewise.
17672 * config/i386/xsavesintrin.h: Likewise.
17673 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
17674 * config/i386/xsaveintrin.h: Likewise.
17675 * config/i386/xsaveoptintrin.h: Likewise.
17676 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
17677 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
17678 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
17679 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
17680 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
17681 * config/i386/immintrin.h: Here.
17682
17683 2019-01-20 Martin Jambor <mjambor@suse.cz>
17684
17685 PR ipa/87615
17686 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
17687 with aa_walk_budget.
17688 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
17689 aa_walk_budget_p parameter.
17690 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
17691 walk. Updated all callers.
17692 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
17693 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
17694 unmodified_parm.
17695 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
17696 parameter info. Extract info from fbi. Pass fbi to recursive calls
17697 and to unmodified_parm.
17698 (phi_result_unknown_predicate): New parameter fbi, removed parameter
17699 info, updated call to will_be_nonconstant_expr_predicate.
17700 (param_change_prob): New parameter fbi, limit AA walking.
17701 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
17702 calls to various above functions.
17703 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
17704 parameter. Use it to limit AA walking.
17705 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
17706 fbi, limit AA walk.
17707 (detect_type_change): New parameter fbi, pass it on to
17708 detect_type_change_from_memory_writes.
17709 (detect_type_change_ssa): Likewise.
17710 (aa_overwalked): Removed.
17711 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
17712 accordingly, adjust to the neew AA limiting scheme.
17713 (parm_ref_data_preserved_p): Likewise.
17714 (ipa_compute_jump_functions_for_edge): Adjust call to
17715 get_dynamic_type.
17716 (ipa_analyze_call_uses): Likewise.
17717 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
17718 (ipa_analyze_node): Initialize aa_walk_budget.
17719 (ipcp_transform_function): Likewise.
17720 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
17721 to get_dynamic_type.
17722
17723 2019-01-19 Jakub Jelinek <jakub@redhat.com>
17724
17725 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
17726 outside of #if CHECKING_P code.
17727
17728 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
17729
17730 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
17731 New function, split out from...
17732 (loop_versioning::analyze_stride): ...here.
17733 (loop_versioning::find_per_loop_multiplication): Use gassign.
17734 (loop_versioning::analyze_term_using_scevs): Return a success code.
17735 (loop_versioning::analyze_arbitrary_term): New function.
17736 (loop_versioning::analyze_address_fragment): Use
17737 analyze_arbitrary_term if all else fails.
17738
17739 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
17740
17741 PR target/88892
17742 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
17743 operands.
17744
17745 2019-01-18 Richard Biener <rguenther@suse.de>
17746
17747 PR tree-optimization/88903
17748 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
17749 scalar stmts a SLP shift amount is composed of when detecting
17750 shifts by scalars.
17751
17752 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
17753
17754 PR target/88799
17755 * config/arm/arm-cpus.in (mp): New feature.
17756 (sec): New feature.
17757 (fgroup ARMv7ve): Add mp and sec features.
17758 (arch armv7-a): Add options to allow mp and sec extensions.
17759 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
17760 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
17761 extenstions to the base architecture.
17762 (cpu cortex-a8): Add sec extension to the base architecture.
17763 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
17764 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
17765 variants down to the base v7-a varaint.
17766 * config/arm/t-multilib (v7_a_arch_variants): New variable.
17767 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
17768 of permitted extensions for -march=armv7-a and for
17769 -mcpu=generic-armv7-a.
17770
17771 2019-01-18 Martin Liska <mliska@suse.cz>
17772
17773 * params.def: Fix comment.
17774 * tree-profile.c (gimple_init_gcov_profiler): Bump function
17775 name.
17776 (gimple_gen_ic_func_profiler): Likewise.
17777
17778 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17779
17780 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
17781 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
17782 and put in error checks for stack protector guard options.
17783 (aarch64_stack_protect_guard): New.
17784 (TARGET_STACK_PROTECT_GUARD): Define.
17785 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
17786 (reg_stack_protect_address<mode>): New.
17787 (stack_protect_set): Adjust for SSP_GLOBAL.
17788 (stack_protect_test): Likewise.
17789 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
17790 (-mstack-protector-guard): Likewise.
17791 (-mstack-protector-guard-offset): Likewise.
17792
17793 2019-01-18 Jakub Jelinek <jakub@redhat.com>
17794
17795 PR tree-optimization/86214
17796 * tree-inline.h (struct copy_body_data): Add
17797 add_clobbers_to_eh_landing_pads member.
17798 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
17799 (copy_edges_for_bb): Call it if EH edge destination is <
17800 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
17801 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
17802 if flag_stack_reuse != SR_NONE and clear it afterwards.
17803
17804 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
17805
17806 PR target/85596
17807 * doc/install.texi (with-multilib-list): Document for aarch64.
17808
17809 2019-01-18 Jakub Jelinek <jakub@redhat.com>
17810
17811 PR target/88734
17812 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
17813 (("..."))) with ("...").
17814
17815 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
17816
17817 * doc/extend.texi (Built-in Functions for Memory Model Aware
17818 Atomic Operations): Document atomic fetch and nand.
17819
17820 2019-01-18 Martin Liska <mliska@suse.cz>
17821 Richard Biener <rguenther@suse.de>
17822
17823 PR middle-end/88587
17824 * cgraph.h (create_version_clone_with_body): Add new argument
17825 with attributes.
17826 * cgraphclones.c (cgraph_node::create_version_clone): Add
17827 DECL_ATTRIBUTES to a newly created decl. And call
17828 valid_attribute_p so that proper cl_target_optimization_node
17829 is set for the newly created declaration.
17830 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
17831 for declaration.
17832 (expand_target_clones): Do not call valid_attribute_p, it must
17833 be already done.
17834 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
17835 vector types.
17836
17837 2019-01-17 Jakub Jelinek <jakub@redhat.com>
17838
17839 PR target/88734
17840 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
17841 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
17842 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
17843
17844 2019-01-17 Martin Sebor <msebor@redhat.com>
17845
17846 PR middle-end/88273
17847 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
17848 Handle anti-ranges the same as no range at all.
17849
17850 2018-01-17 Steve Ellcey <sellcey@cavium.com>
17851
17852 * config/aarch64/aarch64.c (cgraph.h): New include.
17853 (intl.h): New include.
17854 (supported_simd_type): New function.
17855 (currently_supported_simd_type): Ditto.
17856 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
17857 (aarch64_simd_clone_adjust): Ditto.
17858 (aarch64_simd_clone_usable): Ditto.
17859 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
17860 (TARGET_SIMD_CLONE_ADJUST): Ditto.
17861 (TARGET_SIMD_CLONE_USABLE): Ditto.
17862 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
17863 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
17864 call.
17865
17866 2019-01-17 Martin Sebor <msebor@redhat.com>
17867
17868 PR tree-optimization/88800
17869 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
17870 NO_WARNING bit here. Avoid folding out-of-bounds calls.
17871 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
17872 redundant argument. Add new argument and issue diagnostics under
17873 its control. Detect out-of-bounds access even with warnings
17874 disabled.
17875 (check_bounds_or_overlap): Change return type. Add argument.
17876 (wrestrict_dom_walker::check_call): Adjust.
17877 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
17878 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
17879 check_bounds_or_overlap's return value.
17880 (handle_builtin_stxncpy): Same.
17881 (handle_builtin_strcat): Same.
17882
17883 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17884 Kwok Cheung Yeung <kcy@codesourcery.com>
17885 Julian Brown <julian@codesourcery.com>
17886 Tom de Vries <tom@codesourcery.com>
17887
17888 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
17889
17890 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17891
17892 * doc/sourcebuild.texi: Document dg-require-effective-target
17893 llvm_binutils and offload_gcn.
17894
17895 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17896 Kwok Cheung Yeung <kcy@codesourcery.com>
17897 Julian Brown <julian@codesourcery.com>
17898 Tom de Vries <tom@codesourcery.com>
17899
17900 * doc/sourcebuild.texi: Document dg-required-effective-target
17901 exceptions.
17902
17903 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17904 Kwok Cheung Yeung <kcy@codesourcery.com>
17905 Julian Brown <julian@codesourcery.com>
17906 Tom de Vries <tom@codesourcery.com>
17907 Jan Hubicka <hubicka@ucw.cz>
17908 Martin Jambor <mjambor@suse.cz>
17909
17910 * config.gcc: Add amdgcn*-*-amdhsa configuration.
17911 * configure.ac: Check for dlopen.
17912 * configure: Regenerate.
17913
17914 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17915 Kwok Cheung Yeung <kcy@codesourcery.com>
17916 Julian Brown <julian@codesourcery.com>
17917 Tom de Vries <tom@codesourcery.com>
17918 Jan Hubicka <hubicka@ucw.cz>
17919 Martin Jambor <mjambor@suse.cz>
17920
17921 * common/config/gcn/gcn-common.c: New file.
17922 * config/gcn/driver-gcn.c: New file.
17923 * config/gcn/gcn-builtins.def: New file.
17924 * config/gcn/gcn-hsa.h: New file.
17925 * config/gcn/gcn-modes.def: New file.
17926 * config/gcn/gcn-opts.h: New file.
17927 * config/gcn/gcn-passes.def: New file.
17928 * config/gcn/gcn-protos.h: New file.
17929 * config/gcn/gcn-run.c: New file.
17930 * config/gcn/gcn-tree.c: New file.
17931 * config/gcn/gcn.c: New file.
17932 * config/gcn/gcn.h: New file.
17933 * config/gcn/gcn.opt: New file.
17934 * config/gcn/t-gcn-hsa: New file.
17935
17936 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17937 Kwok Cheung Yeung <kcy@codesourcery.com>
17938 Julian Brown <julian@codesourcery.com>
17939 Tom de Vries <tom@codesourcery.com>
17940 Jan Hubicka <hubicka@ucw.cz>
17941 Martin Jambor <mjambor@suse.cz>
17942
17943 * config/gcn/constraints.md: New file.
17944 * config/gcn/gcn-valu.md: New file.
17945 * config/gcn/gcn.md: New file.
17946 * config/gcn/predicates.md: New file.
17947
17948 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
17949
17950 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
17951 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
17952 (stmt_uses_0_or_null_in_undefined_way): Likewise.
17953 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
17954
17955 2019-01-17 Tamar Christina <tamar.christina@arm.com>
17956
17957 PR target/88851
17958 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
17959 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
17960 it and document registers.
17961
17962 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17963
17964 * config/aarch64/aarch64.c (ares_tunings): Define.
17965 * config/aarch64/aarch64-cores.def (ares): Use the above.
17966
17967 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
17968
17969 PR target/88794
17970 Revert:
17971 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
17972
17973 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
17974 (_mm512_fixupimm_round_pd): Update parameters and builtin.
17975 (_mm512_maskz_fixupimm_round_pd): Ditto.
17976 (_mm512_fixupimm_round_ps): Ditto.
17977 (_mm512_maskz_fixupimm_round_ps): Ditto.
17978 (_mm_fixupimm_round_sd): Ditto.
17979 (_mm_maskz_fixupimm_round_sd): Ditto.
17980 (_mm_fixupimm_round_ss): Ditto.
17981 (_mm_maskz_fixupimm_round_ss): Ditto.
17982 (_mm512_fixupimm_pd): Ditto.
17983 (_mm512_maskz_fixupimm_pd): Ditto.
17984 (_mm512_fixupimm_ps): Ditto.
17985 (_mm512_maskz_fixupimm_ps): Ditto.
17986 (_mm_fixupimm_sd): Ditto.
17987 (_mm_maskz_fixupimm_sd): Ditto.
17988 (_mm_fixupimm_ss): Ditto.
17989 (_mm_maskz_fixupimm_ss): Ditto.
17990 (_mm512_mask_fixupimm_round_pd): Update builtin.
17991 (_mm512_mask_fixupimm_round_ps): Ditto.
17992 (_mm_mask_fixupimm_round_sd): Ditto.
17993 (_mm_mask_fixupimm_round_ss): Ditto.
17994 (_mm512_mask_fixupimm_pd): Ditto.
17995 (_mm512_mask_fixupimm_ps): Ditto.
17996 (_mm_mask_fixupimm_sd): Ditto.
17997 (_mm_mask_fixupimm_ss): Ditto.
17998 * config/i386/avx512vlintrin.h:
17999 (_mm256_fixupimm_pd): Update parameters and builtin.
18000 (_mm256_maskz_fixupimm_pd): Ditto.
18001 (_mm256_fixupimm_ps): Ditto.
18002 (_mm256_maskz_fixupimm_ps): Ditto.
18003 (_mm_fixupimm_pd): Ditto.
18004 (_mm_maskz_fixupimm_pd): Ditto.
18005 (_mm_fixupimm_ps): Ditto.
18006 (_mm_maskz_fixupimm_ps): Ditto.
18007 (_mm256_mask_fixupimm_pd): Update builtin.
18008 (_mm256_mask_fixupimm_ps): Ditto.
18009 (_mm_mask_fixupimm_pd): Ditto.
18010 (_mm_mask_fixupimm_ps): Ditto.
18011 * config/i386/i386-builtin-types.def: Add new types and remove
18012 useless ones.
18013 * config/i386/i386-builtin.def: Update builtin definitions.
18014 * config/i386/i386.c: Handle new builtin types and remove useless ones.
18015 * config/i386/sse.md: Update VFIXUPIMM* patterns.
18016 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
18017 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
18018 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
18019 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
18020 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
18021 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
18022 * config/i386/subst.md:
18023 (round_saeonly_sd_mask_operand4): Add new subst_attr.
18024 (round_saeonly_sd_mask_op4): Ditto.
18025 (round_saeonly_expand_operand5): Ditto.
18026 (round_saeonly_expand): Update.
18027
18028 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
18029
18030 PR target/88794
18031 Revert:
18032 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
18033
18034 * config/i386/sse.md: Combine VFIXUPIMM* patterns
18035 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
18036 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
18037 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
18038 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
18039 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
18040 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
18041
18042 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
18043
18044 PR target/88794
18045 Revert:
18046 2018-12-15 Jakub Jelinek <jakub@redhat.com>
18047
18048 PR target/88489
18049 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
18050 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
18051 instead of UNSPEC_FIXUPIMM.
18052
18053 2019-01-17 Richard Biener <rguenther@suse.de>
18054
18055 PR lto/86736
18056 * dwarf2out.c (want_pubnames): Never generate pubnames sections
18057 and friends for the LTO part of debug info.
18058
18059 2019-01-17 Jakub Jelinek <jakub@redhat.com>
18060
18061 PR tree-optimization/86214
18062 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
18063 if x == y.
18064
18065 PR rtl-optimization/88870
18066 * dce.c (deletable_insn_p): Never delete const/pure calls that can
18067 throw if we can't alter the cfg or delete dead exceptions.
18068 (mark_insn): Don't call find_call_stack_args for such calls.
18069
18070 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
18071
18072 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
18073 prototypes for vec_st.
18074 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
18075 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
18076 mainly on signed/unsigned long long and double.
18077
18078 2019-01-16 David Malcolm <dmalcolm@redhat.com>
18079
18080 PR target/88861
18081 * combine.c (delete_noop_moves): Convert to "bool" return,
18082 returning true if any edges are eliminated.
18083 (combine_instructions): Also return true if delete_noop_moves
18084 returns true.
18085
18086 2019-01-16 Tamar Christina <tamar.christina@arm.com>
18087
18088 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
18089 correct max nunits for endian swap.
18090 (aarch64_expand_fcmla_builtin): Correct subreg code.
18091 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
18092 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
18093 lane endianness.
18094
18095 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
18096
18097 * config/alpha/alpha.c (alpha_gimplify_va_arg):
18098 Handle split indirect COMPLEX_TYPE arguments.
18099
18100 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
18101
18102 PR target/86891
18103 * config/aarch64/aarch64-modes.def: Add comment about how the carry
18104 bit is set by add and compare.
18105 (CC_ADC): New CC_MODE.
18106 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
18107 to cache the code and mode of X. Adjust the shape of a CC_Cmode
18108 comparison. Add detection for CC_ADCmode.
18109 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
18110 CC_ADCmode.
18111 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
18112 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
18113 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
18114 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
18115 to eliminate the need for zero-extending the operands.
18116 (add<mode>3_compareC_imm): Delete. Merge into ...
18117 (add<mode>3_compareC): ... this. Restructure the comparison to
18118 eliminate the need for zero-extending the operands.
18119 (add<mode>3_carryin): Use LTU for the overflow detection.
18120 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
18121 Reexpress comparison for overflow.
18122 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
18123 (add<mode>3_carryinC): Likewise.
18124 (add<mode>3_carryinV): Use LTU for carry between partials.
18125 * config/aarch64/predicates.md (aarch64_carry_operation): Update
18126 handling of CC_Cmode and add CC_ADCmode.
18127 (aarch64_borrow_operation): Likewise.
18128
18129 2019-01-16 Tamar Christina <tamar.christina@arm.com>
18130
18131 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
18132 Remove patternmode.
18133 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
18134 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
18135 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
18136 Remove endianness conversion.
18137
18138 2019-01-16 Martin Liska <mliska@suse.cz>
18139
18140 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
18141 for GCC driver.
18142 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
18143 a new argument.
18144 * gcc.c (add_sysrooted_hdrs_prefix): New function.
18145 (path_prefix_reset): Move up in the source file.
18146 (find_fortran_preinclude_file): Make complex search for the
18147 fortran header files.
18148
18149 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
18150
18151 * godump.c (go_output_typedef): When outputting a typedef, refer
18152 to the underlying type by its name and not its structure.
18153
18154 2019-01-15 David Malcolm <dmalcolm@redhat.com>
18155
18156 PR c++/88795
18157 * tree.c (build_function_type): Assert that arg_types is not
18158 error_mark_node.
18159
18160 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
18161
18162 PR inline-asm/52813
18163 * doc/extend.texi: Document that listing the stack pointer in the
18164 clobber list of an asm is a deprecated feature.
18165 * common.opt (Wdeprecated): Moved from c-family/c.opt.
18166 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
18167 warning instead of an error for clobbers of the stack pointer.
18168 Add a note explaining why.
18169
18170 2019-01-15 Richard Biener <rguenther@suse.de>
18171
18172 PR debug/88046
18173 * dwarf2out.c (gen_member_die): Do not generate inheritance
18174 DIEs late.
18175
18176 2019-01-15 Richard Biener <rguenther@suse.de>
18177
18178 PR tree-optimization/88855
18179 * tree-if-conv.c (combine_blocks): Collect
18180 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
18181
18182 2019-01-15 Tom de Vries <tdevries@suse.de>
18183
18184 PR target/80547
18185 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
18186 lhs == NULL_TREE for gang-level reduction.
18187
18188 2019-01-15 Richard Biener <rguenther@suse.de>
18189 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
18190
18191 PR ipa/88788
18192 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
18193 return true if SSA_NAME is already marked in visited bitmap.
18194 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
18195
18196 2019-01-15 Jakub Jelinek <jakub@redhat.com>
18197
18198 PR tree-optimization/88775
18199 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
18200 equal == 0 equality pointer comparisons some more if compared in
18201 integral types and either one points to an automatic var and the
18202 other to a global, or we can prove at least one points to the middle
18203 or both point to start or both point to end.
18204
18205 2019-01-14 Andi Kleen <ak@linux.intel.com>
18206
18207 * Makefile.in: Lower autofdo sampling rate by 10x.
18208 * Makefile.tpl: Dito.
18209
18210 2019-01-14 Tom Honermann <tom@honermann.net>
18211
18212 * defaults.h: Define CHAR8_TYPE.
18213
18214 2019-01-14 Martin Sebor <msebor@redhat.com>
18215
18216 PR target/88638
18217 * doc/extend.texi (Darwin Format Checks): Clarify.
18218
18219 2019-01-14 Richard Biener <rguenther@suse.de>
18220
18221 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
18222 whether we are in (simplify ...) or (match ...) context.
18223
18224 2019-01-14 Jakub Jelinek <jakub@redhat.com>
18225
18226 PR rtl-optimization/88796
18227 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
18228 * cfgexpand.c (stack_protect_prologue): Initialize
18229 crtl->stack_protect_guard_decl.
18230 * function.c (stack_protect_epilogue): Use it instead of calling
18231 targetm.stack_protect_guard again.
18232 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
18233 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
18234 crtl->stack_protect_guard_decl.
18235 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
18236 on the returned MEM_EXPR.
18237
18238 2019-01-12 Tom de Vries <tdevries@suse.de>
18239
18240 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
18241 vector length using -fopenacc-dim.
18242
18243 2019-01-12 Tom de Vries <tdevries@suse.de>
18244
18245 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
18246 lengths into account.
18247
18248 2019-01-12 Svante Signell <svante.signell@gmail.com>
18249
18250 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
18251 (TARGET_CAN_SPLIT_STACK): Define.
18252 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
18253
18254 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
18255
18256 * params.def (inline-unit-growth): Set to 40.
18257
18258 2019-01-12 Jakub Jelinek <jakub@redhat.com>
18259
18260 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
18261
18262 2019-01-12 Tom de Vries <tdevries@suse.de>
18263
18264 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
18265 region calling vector-partitionable routine, set default_vector_length
18266 to WARP_SIZE.
18267
18268 2019-01-12 Tom de Vries <tdevries@suse.de>
18269
18270 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
18271 variable default_vector_length.
18272
18273 2019-01-12 Tom de Vries <tdevries@suse.de>
18274
18275 PR middle-end/88703
18276 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
18277 from oacc_default_dims, as oacc_validate_dims would do it, and apply
18278 dimensions limits.
18279
18280 2019-01-12 Tom de Vries <tdevries@suse.de>
18281
18282 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
18283 (nvptx_goacc_validate_dims): Add used parameter.
18284 * doc/tm.texi: Regenerate.
18285 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
18286 argument to call to targetm.goacc.validate_dims.
18287 (default_goacc_validate_dims): Add used
18288 parameter.
18289 * target.def (validate_dims): Add used parameter in DEFHOOK.
18290 * targhooks.h (default_goacc_validate_dims): Add used parameter.
18291
18292 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18293
18294 PR middle-end/85956
18295 PR lto/88733
18296 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
18297 field.
18298 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
18299 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
18300 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
18301 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
18302
18303 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
18304
18305 PR rtl-optimization/87305
18306 * lra-assigns.c
18307 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
18308 for little endian pseudos used as paradoxical subreg.
18309
18310 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18311
18312 PR tree-optimization/88693
18313 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
18314 for STRING_CSTs that don't contain any NUL characters in the first
18315 TREE_STRING_LENGTH bytes.
18316
18317 2019-01-11 Alan Modra <amodra@gmail.com>
18318
18319 PR 88777
18320 PR 88614
18321 * genattrtab.c (min_fn): Don't translate values.
18322 (min_attr_value): Return INT_MAX when the value can't be calculated.
18323 Return minimum among any values that can be calculated.
18324 (max_attr_value): Adjust.
18325
18326 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18327
18328 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
18329
18330 2019-01-11 Steve Ellcey <sellcey@marvell.com>
18331
18332 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
18333 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
18334 (aarch64_return_call_with_max_clobbers): New function.
18335 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
18336 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
18337 argument.
18338 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
18339 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
18340 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
18341 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
18342 * cselib.c (cselib_process_insn): Add argument to
18343 targetm.hard_regno_call_part_clobbered call.
18344 * ira-conflicts.c (ira_build_conflicts): Ditto.
18345 * ira-costs.c (ira_tune_allocno_costs): Ditto.
18346 * lra-constraints.c (inherit_reload_reg): Ditto.
18347 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
18348 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
18349 argument. Call targetm.return_call_with_max_clobbers.
18350 Add argument to targetm.hard_regno_call_part_clobbered call.
18351 (calls_have_same_clobbers_p): New function.
18352 (process_bb_lives): Add call_insn and last_call_insn variables.
18353 Pass call_insn to check_pseudos_live_through_calls.
18354 Modify if stmt to check targetm.return_call_with_max_clobbers.
18355 Update setting of flush variable.
18356 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
18357 to false.
18358 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
18359 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
18360 targetm.hard_regno_call_part_clobbered call.
18361 * reginfo.c (choose_hard_reg_mode): Ditto.
18362 * regrename.c (check_new_reg_p): Ditto.
18363 * reload.c (find_equiv_reg): Ditto.
18364 * reload1.c (emit_reload_insns): Ditto.
18365 * sched-deps.c (deps_analyze_insn): Ditto.
18366 * sel-sched.c (init_regs_for_mode): Ditto.
18367 (mark_unavailable_hard_regs): Ditto.
18368 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
18369 * target.def (hard_regno_call_part_clobbered): Add insn argument.
18370 (return_call_with_max_clobbers): New target function.
18371 * doc/tm.texi: Regenerate.
18372 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
18373 * hooks.c (hook_bool_uint_mode_false): Change to
18374 hook_bool_insn_uint_mode_false.
18375 * hooks.h (hook_bool_uint_mode_false): Ditto.
18376
18377 2019-01-11 Steve Ellcey <sellcey@marvell.com>
18378
18379 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
18380 (aarch64_remove_extra_call_preserved_regs): New function.
18381 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
18382 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
18383 * doc/tm.texi: Regenerate.
18384 * final.c (get_call_reg_set_usage): Call new hook.
18385 * target.def (remove_extra_call_preserved_regs): New hook.
18386 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
18387 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
18388
18389 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18390
18391 PR bootstrap/88714
18392 * passes.c (finish_optimization_passes): Call print_combine_total_stats
18393 inside of pass_combine_1 dump rather than pass_profile_1.
18394
18395 2019-01-11 Tom de Vries <tdevries@suse.de>
18396
18397 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
18398 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
18399 (PTX_NUM_PER_WORKER_BARRIERS): Define.
18400 (nvptx_apply_dim_limits): Prevent vector_length 64 and
18401 num_workers 16.
18402
18403 2019-01-11 Tom de Vries <tdevries@suse.de>
18404
18405 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
18406
18407 2019-01-11 Jan Beulich <jbeulich@suse.com>
18408
18409 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
18410 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
18411 sse2_cvtsi2sd): Add {l}.
18412 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
18413 syntax.
18414
18415 2019-01-10 Jakub Jelinek <jakub@redhat.com>
18416
18417 PR target/88785
18418 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
18419 define_expand.
18420 (*float<floatunssuffix>v2div2sf2): New define_insn.
18421 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
18422 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
18423 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
18424 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
18425 match_operands with "const0_operand" "C".
18426
18427 2019-01-10 Tamar Christina <tamar.christina@arm.com>
18428
18429 * config/aarch64/aarch64-builtins.c
18430 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
18431 (aarch64_init_simd_builtins): ...Here
18432
18433 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
18434
18435 PR rtl-optimization/87305
18436 * lra-assigns.c
18437 (setup_live_pseudos_and_spill_after_risky_transforms): Check
18438 allocation for big endian pseudos used as paradoxical subregs and
18439 spill them if it is wrong.
18440 * lra-constraints.c (lra_constraints): Add a comment.
18441
18442 2019-01-10 Richard Biener <rguenther@suse.de>
18443
18444 PR tree-optimization/88792
18445 * tree-ssa-pre.c (get_representative_for): Do not return a
18446 value-number here.
18447
18448 2019-01-10 Jakub Jelinek <jakub@redhat.com>
18449
18450 PR middle-end/84877
18451 PR bootstrap/88450
18452 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
18453 (assign_parm_setup_block): Do the argument slot realignment here
18454 instead.
18455
18456 2019-01-10 Stefan Agner <stefan@agner.ch>
18457
18458 PR target/88648
18459 * config/arm/arm.c (arm_option_override_internal): Force
18460 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
18461
18462 2019-01-10 Jakub Jelinek <jakub@redhat.com>
18463
18464 PR c/88568
18465 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
18466 DECL_EXTERNAL.
18467
18468 2019-01-10 Tamar Christina <tamar.christina@arm.com>
18469
18470 * config/arm/arm-builtins.c
18471 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
18472 (MAC_LANE_PAIR_QUALIFIERS): New.
18473 (arm_expand_builtin_args): Use it.
18474 (arm_expand_builtin_1): Likewise.
18475 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
18476 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
18477 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
18478 * config/arm/arm_neon.h:
18479 (vcadd_rot90_f16): New.
18480 (vcaddq_rot90_f16): New.
18481 (vcadd_rot270_f16): New.
18482 (vcaddq_rot270_f16): New.
18483 (vcmla_f16): New.
18484 (vcmlaq_f16): New.
18485 (vcmla_lane_f16): New.
18486 (vcmla_laneq_f16): New.
18487 (vcmlaq_lane_f16): New.
18488 (vcmlaq_laneq_f16): New.
18489 (vcmla_rot90_f16): New.
18490 (vcmlaq_rot90_f16): New.
18491 (vcmla_rot90_lane_f16): New.
18492 (vcmla_rot90_laneq_f16): New.
18493 (vcmlaq_rot90_lane_f16): New.
18494 (vcmlaq_rot90_laneq_f16): New.
18495 (vcmla_rot180_f16): New.
18496 (vcmlaq_rot180_f16): New.
18497 (vcmla_rot180_lane_f16): New.
18498 (vcmla_rot180_laneq_f16): New.
18499 (vcmlaq_rot180_lane_f16): New.
18500 (vcmlaq_rot180_laneq_f16): New.
18501 (vcmla_rot270_f16): New.
18502 (vcmlaq_rot270_f16): New.
18503 (vcmla_rot270_lane_f16): New.
18504 (vcmla_rot270_laneq_f16): New.
18505 (vcmlaq_rot270_lane_f16): New.
18506 (vcmlaq_rot270_laneq_f16): New.
18507 (vcadd_rot90_f32): New.
18508 (vcaddq_rot90_f32): New.
18509 (vcadd_rot270_f32): New.
18510 (vcaddq_rot270_f32): New.
18511 (vcmla_f32): New.
18512 (vcmlaq_f32): New.
18513 (vcmla_lane_f32): New.
18514 (vcmla_laneq_f32): New.
18515 (vcmlaq_lane_f32): New.
18516 (vcmlaq_laneq_f32): New.
18517 (vcmla_rot90_f32): New.
18518 (vcmlaq_rot90_f32): New.
18519 (vcmla_rot90_lane_f32): New.
18520 (vcmla_rot90_laneq_f32): New.
18521 (vcmlaq_rot90_lane_f32): New.
18522 (vcmlaq_rot90_laneq_f32): New.
18523 (vcmla_rot180_f32): New.
18524 (vcmlaq_rot180_f32): New.
18525 (vcmla_rot180_lane_f32): New.
18526 (vcmla_rot180_laneq_f32): New.
18527 (vcmlaq_rot180_lane_f32): New.
18528 (vcmlaq_rot180_laneq_f32): New.
18529 (vcmla_rot270_f32): New.
18530 (vcmlaq_rot270_f32): New.
18531 (vcmla_rot270_lane_f32): New.
18532 (vcmla_rot270_laneq_f32): New.
18533 (vcmlaq_rot270_lane_f32): New.
18534 (vcmlaq_rot270_laneq_f32): New.
18535 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
18536 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
18537 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
18538 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
18539 vcmlaq_lane270): New.
18540 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
18541 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
18542 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
18543 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
18544 (arm_option_reconfigure_globals): Use them.
18545 * config/arm/iterators.md (VDF, VQ_HSF): New.
18546 (VCADD, VCMLA): New.
18547 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
18548 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
18549 New.
18550 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
18551 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
18552
18553 2019-01-10 Tamar Christina <tamar.christina@arm.com>
18554
18555 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18556 Add qualifier_lane_pair_index.
18557 (emit-rtl.h): Include.
18558 (TYPES_QUADOP_LANE_PAIR): New.
18559 (aarch64_simd_expand_args): Use it.
18560 (aarch64_simd_expand_builtin): Likewise.
18561 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
18562 New.
18563 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
18564 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
18565 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
18566 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
18567 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
18568 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
18569 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
18570 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
18571 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
18572 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
18573 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
18574 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
18575 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
18576 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
18577 Add __ARM_FEATURE_COMPLEX.
18578 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
18579 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
18580 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
18581 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
18582 fcmlaq_lane270): New.
18583 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
18584 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
18585 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
18586 * config/aarch64/arm_neon.h:
18587 (vcadd_rot90_f16): New.
18588 (vcaddq_rot90_f16): New.
18589 (vcadd_rot270_f16): New.
18590 (vcaddq_rot270_f16): New.
18591 (vcmla_f16): New.
18592 (vcmlaq_f16): New.
18593 (vcmla_lane_f16): New.
18594 (vcmla_laneq_f16): New.
18595 (vcmlaq_lane_f16): New.
18596 (vcmlaq_rot90_lane_f16): New.
18597 (vcmla_rot90_laneq_f16): New.
18598 (vcmla_rot90_lane_f16): New.
18599 (vcmlaq_rot90_f16): New.
18600 (vcmla_rot90_f16): New.
18601 (vcmlaq_laneq_f16): New.
18602 (vcmla_rot180_laneq_f16): New.
18603 (vcmla_rot180_lane_f16): New.
18604 (vcmlaq_rot180_f16): New.
18605 (vcmla_rot180_f16): New.
18606 (vcmlaq_rot90_laneq_f16): New.
18607 (vcmlaq_rot270_laneq_f16): New.
18608 (vcmlaq_rot270_lane_f16): New.
18609 (vcmla_rot270_laneq_f16): New.
18610 (vcmlaq_rot270_f16): New.
18611 (vcmla_rot270_f16): New.
18612 (vcmlaq_rot180_laneq_f16): New.
18613 (vcmlaq_rot180_lane_f16): New.
18614 (vcmla_rot270_lane_f16): New.
18615 (vcadd_rot90_f32): New.
18616 (vcaddq_rot90_f32): New.
18617 (vcaddq_rot90_f64): New.
18618 (vcadd_rot270_f32): New.
18619 (vcaddq_rot270_f32): New.
18620 (vcaddq_rot270_f64): New.
18621 (vcmla_f32): New.
18622 (vcmlaq_f32): New.
18623 (vcmlaq_f64): New.
18624 (vcmla_lane_f32): New.
18625 (vcmla_laneq_f32): New.
18626 (vcmlaq_lane_f32): New.
18627 (vcmlaq_laneq_f32): New.
18628 (vcmla_rot90_f32): New.
18629 (vcmlaq_rot90_f32): New.
18630 (vcmlaq_rot90_f64): New.
18631 (vcmla_rot90_lane_f32): New.
18632 (vcmla_rot90_laneq_f32): New.
18633 (vcmlaq_rot90_lane_f32): New.
18634 (vcmlaq_rot90_laneq_f32): New.
18635 (vcmla_rot180_f32): New.
18636 (vcmlaq_rot180_f32): New.
18637 (vcmlaq_rot180_f64): New.
18638 (vcmla_rot180_lane_f32): New.
18639 (vcmla_rot180_laneq_f32): New.
18640 (vcmlaq_rot180_lane_f32): New.
18641 (vcmlaq_rot180_laneq_f32): New.
18642 (vcmla_rot270_f32): New.
18643 (vcmlaq_rot270_f32): New.
18644 (vcmlaq_rot270_f64): New.
18645 (vcmla_rot270_lane_f32): New.
18646 (vcmla_rot270_laneq_f32): New.
18647 (vcmlaq_rot270_lane_f32): New.
18648 (vcmlaq_rot270_laneq_f32): New.
18649 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
18650 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
18651 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
18652 (FCADD, FCMLA): New.
18653 (rot): New.
18654 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
18655
18656 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
18657
18658 PR other/16615
18659
18660 * config/pa/pa.c: Change "can not" to "cannot".
18661 * gimple-ssa-evrp-analyze.c: Likewise.
18662 * ipa-icf.c: Likewise.
18663 * ipa-polymorphic-call.c: Likewise.
18664 * ipa-pure-const.c: Likewise.
18665 * lra-constraints.c: Likewise.
18666 * lra-remat.c: Likewise.
18667 * reload1.c: Likewise.
18668 * reorg.c: Likewise.
18669 * tree-ssa-uninit.c: Likewise.
18670
18671 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
18672
18673 PR other/16615
18674
18675 * Makefile.in: Mechanically replace "can not" with "cannot".
18676 * alias.c: Likewise.
18677 * builtins.c: Likewise.
18678 * calls.c: Likewise.
18679 * cgraph.c: Likewise.
18680 * cgraph.h: Likewise.
18681 * cgraphclones.c: Likewise.
18682 * cgraphunit.c: Likewise.
18683 * combine-stack-adj.c: Likewise.
18684 * combine.c: Likewise.
18685 * common/config/i386/i386-common.c: Likewise.
18686 * config/aarch64/aarch64.c: Likewise.
18687 * config/alpha/sync.md: Likewise.
18688 * config/arc/arc.c: Likewise.
18689 * config/arc/predicates.md: Likewise.
18690 * config/arm/arm-c.c: Likewise.
18691 * config/arm/arm.c: Likewise.
18692 * config/arm/arm.h: Likewise.
18693 * config/arm/arm.md: Likewise.
18694 * config/arm/cortex-r4f.md: Likewise.
18695 * config/csky/csky.c: Likewise.
18696 * config/csky/csky.h: Likewise.
18697 * config/darwin-f.c: Likewise.
18698 * config/epiphany/epiphany.md: Likewise.
18699 * config/i386/i386.c: Likewise.
18700 * config/i386/sol2.h: Likewise.
18701 * config/m68k/m68k.c: Likewise.
18702 * config/mcore/mcore.h: Likewise.
18703 * config/microblaze/microblaze.md: Likewise.
18704 * config/mips/20kc.md: Likewise.
18705 * config/mips/sb1.md: Likewise.
18706 * config/nds32/nds32.c: Likewise.
18707 * config/nds32/predicates.md: Likewise.
18708 * config/pa/pa.c: Likewise.
18709 * config/rs6000/e300c2c3.md: Likewise.
18710 * config/rs6000/rs6000.c: Likewise.
18711 * config/s390/s390.h: Likewise.
18712 * config/sh/sh.c: Likewise.
18713 * config/sh/sh.md: Likewise.
18714 * config/spu/vmx2spu.h: Likewise.
18715 * cprop.c: Likewise.
18716 * dbxout.c: Likewise.
18717 * df-scan.c: Likewise.
18718 * doc/cfg.texi: Likewise.
18719 * doc/extend.texi: Likewise.
18720 * doc/fragments.texi: Likewise.
18721 * doc/gty.texi: Likewise.
18722 * doc/invoke.texi: Likewise.
18723 * doc/lto.texi: Likewise.
18724 * doc/md.texi: Likewise.
18725 * doc/objc.texi: Likewise.
18726 * doc/rtl.texi: Likewise.
18727 * doc/tm.texi: Likewise.
18728 * dse.c: Likewise.
18729 * emit-rtl.c: Likewise.
18730 * emit-rtl.h: Likewise.
18731 * except.c: Likewise.
18732 * expmed.c: Likewise.
18733 * expr.c: Likewise.
18734 * fold-const.c: Likewise.
18735 * genautomata.c: Likewise.
18736 * gimple-fold.c: Likewise.
18737 * hard-reg-set.h: Likewise.
18738 * ifcvt.c: Likewise.
18739 * ipa-comdats.c: Likewise.
18740 * ipa-cp.c: Likewise.
18741 * ipa-devirt.c: Likewise.
18742 * ipa-fnsummary.c: Likewise.
18743 * ipa-icf.c: Likewise.
18744 * ipa-inline-transform.c: Likewise.
18745 * ipa-inline.c: Likewise.
18746 * ipa-polymorphic-call.c: Likewise.
18747 * ipa-profile.c: Likewise.
18748 * ipa-prop.c: Likewise.
18749 * ipa-pure-const.c: Likewise.
18750 * ipa-reference.c: Likewise.
18751 * ipa-split.c: Likewise.
18752 * ipa-visibility.c: Likewise.
18753 * ipa.c: Likewise.
18754 * ira-build.c: Likewise.
18755 * ira-color.c: Likewise.
18756 * ira-conflicts.c: Likewise.
18757 * ira-costs.c: Likewise.
18758 * ira-int.h: Likewise.
18759 * ira-lives.c: Likewise.
18760 * ira.c: Likewise.
18761 * ira.h: Likewise.
18762 * loop-invariant.c: Likewise.
18763 * loop-unroll.c: Likewise.
18764 * lower-subreg.c: Likewise.
18765 * lra-assigns.c: Likewise.
18766 * lra-constraints.c: Likewise.
18767 * lra-eliminations.c: Likewise.
18768 * lra-lives.c: Likewise.
18769 * lra-remat.c: Likewise.
18770 * lra-spills.c: Likewise.
18771 * lra.c: Likewise.
18772 * lto-cgraph.c: Likewise.
18773 * lto-streamer-out.c: Likewise.
18774 * postreload-gcse.c: Likewise.
18775 * predict.c: Likewise.
18776 * profile-count.h: Likewise.
18777 * profile.c: Likewise.
18778 * recog.c: Likewise.
18779 * ree.c: Likewise.
18780 * reload.c: Likewise.
18781 * reload1.c: Likewise.
18782 * reorg.c: Likewise.
18783 * resource.c: Likewise.
18784 * rtl.def: Likewise.
18785 * rtl.h: Likewise.
18786 * rtlanal.c: Likewise.
18787 * sched-deps.c: Likewise.
18788 * sched-ebb.c: Likewise.
18789 * sched-rgn.c: Likewise.
18790 * sel-sched-ir.c: Likewise.
18791 * sel-sched.c: Likewise.
18792 * shrink-wrap.c: Likewise.
18793 * simplify-rtx.c: Likewise.
18794 * symtab.c: Likewise.
18795 * target.def: Likewise.
18796 * toplev.c: Likewise.
18797 * tree-call-cdce.c: Likewise.
18798 * tree-cfg.c: Likewise.
18799 * tree-complex.c: Likewise.
18800 * tree-core.h: Likewise.
18801 * tree-eh.c: Likewise.
18802 * tree-inline.c: Likewise.
18803 * tree-loop-distribution.c: Likewise.
18804 * tree-nrv.c: Likewise.
18805 * tree-profile.c: Likewise.
18806 * tree-sra.c: Likewise.
18807 * tree-ssa-alias.c: Likewise.
18808 * tree-ssa-dce.c: Likewise.
18809 * tree-ssa-dom.c: Likewise.
18810 * tree-ssa-forwprop.c: Likewise.
18811 * tree-ssa-loop-im.c: Likewise.
18812 * tree-ssa-loop-ivcanon.c: Likewise.
18813 * tree-ssa-loop-ivopts.c: Likewise.
18814 * tree-ssa-loop-niter.c: Likewise.
18815 * tree-ssa-phionlycprop.c: Likewise.
18816 * tree-ssa-phiopt.c: Likewise.
18817 * tree-ssa-propagate.c: Likewise.
18818 * tree-ssa-threadedge.c: Likewise.
18819 * tree-ssa-threadupdate.c: Likewise.
18820 * tree-ssa-uninit.c: Likewise.
18821 * tree-ssanames.c: Likewise.
18822 * tree-streamer-out.c: Likewise.
18823 * tree.c: Likewise.
18824 * tree.h: Likewise.
18825 * vr-values.c: Likewise.
18826
18827 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
18828
18829 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
18830 (ix86_split_xorsign): Ditto.
18831 * config/i386/i386.c (ix86_expand_xorsign): New function.
18832 (ix86_split_xorsign): Ditto.
18833 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
18834 (xorsign<mode>3): New expander.
18835 (xorsign<mode>3_1): New insn_and_split pattern.
18836 * config/i386/sse.md (xorsign<mode>3): New expander.
18837
18838 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
18839
18840 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
18841 (*tablejump_sp64): Likewise.
18842 (*tablejump<P:mode>): ...this.
18843 (*call_address_sp32): Merge into...
18844 (*call_address_sp64): Likewise.
18845 (*call_address<P:mode>): ...this.
18846 (*call_symbolic_sp32): Merge into...
18847 (*call_symbolic_sp64): Likewise.
18848 (*call_symbolic<P:mode>): ...this.
18849 (call_value): Remove constraint and add predicate.
18850 (*call_value_address_sp32): Merge into...
18851 (*call_value_address_sp64): Likewise.
18852 (*call_value_address<P:mode>): ...this.
18853 (*call_value_symbolic_sp32): Merge into...
18854 (*call_value_symbolic_sp64): Likewise.
18855 (*call_value_symbolic<P:mode>): ...this.
18856 (*sibcall_symbolic_sp32): Merge into...
18857 (*sibcall_symbolic_sp64): Likewise.
18858 (*sibcall_symbolic<P:mode>): ...this.
18859 (sibcall_value): Remove constraint and add predicate.
18860 (*sibcall_value_symbolic_sp32): Merge into...
18861 (*sibcall_value_symbolic_sp64): Likewise.
18862 (*sibcall_value_symbolic<P:mode>): ...this.
18863 (window_save): Minor tweak.
18864 (*branch_sp32): Merge into...
18865 (*branch_sp64): Likewise.
18866 (*branch<P:mode>): ...this.
18867
18868 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
18869 James Clarke <jrtc27@jrtc27.com>
18870
18871 PR target/84010
18872 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
18873 consistently in TLS address generation and adjust code to the renaming
18874 of patterns. Mark calls to __tls_get_addr as const.
18875 * config/sparc/sparc.md (tgd_hi22): Turn into...
18876 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
18877 (tgd_lo10): Turn into...
18878 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
18879 (tgd_add32): Merge into...
18880 (tgd_add64): Likewise.
18881 (tgd_add<P:mode>): ...this and use Pmode throughout.
18882 (tldm_hi22): Turn into...
18883 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
18884 (tldm_lo10): Turn into...
18885 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
18886 (tldm_add32): Merge into...
18887 (tldm_add64): Likewise.
18888 (tldm_add<P:mode>): ...this and use Pmode throughout.
18889 (tldm_call32): Merge into...
18890 (tldm_call64): Likewise.
18891 (tldm_call<P:mode>): ...this and use Pmode throughout.
18892 (tldo_hix22): Turn into...
18893 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
18894 (tldo_lox10): Turn into...
18895 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
18896 (tldo_add32): Merge into...
18897 (tldo_add64): Likewise.
18898 (tldo_add<P:mode>): ...this and use Pmode throughout.
18899 (tie_hi22): Turn into...
18900 (tie_hi22<P:mode>): ...this and use Pmode throughout.
18901 (tie_lo10): Turn into...
18902 (tie_lo10<P:mode>): ...this and use Pmode throughout.
18903 (tie_ld64): Use DImode throughout.
18904 (tie_add32): Merge into...
18905 (tie_add64): Likewise.
18906 (tie_add<P:mode>): ...this and use Pmode throughout.
18907 (tle_hix22_sp32): Merge into...
18908 (tle_hix22_sp64): Likewise.
18909 (tle_hix22<P:mode>): ...this and use Pmode throughout.
18910 (tle_lox22_sp32): Merge into...
18911 (tle_lox22_sp64): Likewise.
18912 (tle_lox22<P:mode>): ...this and use Pmode throughout.
18913 (*tldo_ldub_sp32): Merge into...
18914 (*tldo_ldub_sp64): Likewise.
18915 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
18916 (*tldo_ldub1_sp32): Merge into...
18917 (*tldo_ldub1_sp64): Likewise.
18918 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
18919 (*tldo_ldub2_sp32): Merge into...
18920 (*tldo_ldub2_sp64): Likewise.
18921 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
18922 (*tldo_ldsb1_sp32): Merge into...
18923 (*tldo_ldsb1_sp64): Likewise.
18924 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
18925 (*tldo_ldsb2_sp32): Merge into...
18926 (*tldo_ldsb2_sp64): Likewise.
18927 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
18928 (*tldo_ldub3_sp64): Use DImode throughout.
18929 (*tldo_ldsb3_sp64): Likewise.
18930 (*tldo_lduh_sp32): Merge into...
18931 (*tldo_lduh_sp64): Likewise.
18932 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
18933 (*tldo_lduh1_sp32): Merge into...
18934 (*tldo_lduh1_sp64): Likewise.
18935 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
18936 (*tldo_ldsh1_sp32): Merge into...
18937 (*tldo_ldsh1_sp64): Likewise.
18938 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
18939 (*tldo_lduh2_sp64): Use DImode throughout.
18940 (*tldo_ldsh2_sp64): Likewise.
18941 (*tldo_lduw_sp32): Merge into...
18942 (*tldo_lduw_sp64): Likewise.
18943 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
18944 (*tldo_lduw1_sp64): Use DImode throughout.
18945 (*tldo_ldsw1_sp64): Likewise.
18946 (*tldo_ldx_sp64): Likewise.
18947 (*tldo_stb_sp32): Merge into...
18948 (*tldo_stb_sp64): Likewise.
18949 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
18950 (*tldo_sth_sp32): Merge into...
18951 (*tldo_sth_sp64): Likewise.
18952 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
18953 (*tldo_stw_sp32): Merge into...
18954 (*tldo_stw_sp64): Likewise.
18955 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
18956 (*tldo_stx_sp64): Use DImode throughout.
18957
18958 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18959
18960 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
18961 check configure option to set BTI and Return Address Signing.
18962 * configure.ac: Add --enable-standard-branch-protection and
18963 --disable-standard-branch-protection.
18964 * configure: Regenerated.
18965 * doc/install.texi: Document the same.
18966
18967 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18968 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18969
18970 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
18971 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
18972 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
18973 if bti is enabled.
18974 * config/aarch64/aarch64-bti-insert.c: New file.
18975 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
18976 pass.
18977 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
18978 new bti pass.
18979 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
18980 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
18981 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
18982 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
18983
18984 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18985
18986 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
18987 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
18988 Disable bti for -mbranch-protection=none.
18989 (aarch64_handle_standard_branch_protection): Enable bti for
18990 -mbranch-protection=standard.
18991 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
18992 -mbranch-protection.
18993 (aarch64_bti_enabled): Check if bti is enabled.
18994 * config/aarch64/aarch64.opt: Declare target variable.
18995 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
18996
18997 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18998
18999 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
19000 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
19001 (aarch64_expand_epilogue): Likewise.
19002 (aarch64_output_mi_thunk): Likewise.
19003 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
19004 TAILCALL_ADDR_REGS to x16 and x17.
19005 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
19006
19007 2018-01-09 Sudakshina Das <sudi.das@arm.com>
19008
19009 * config/aarch64/aarch64-option-extensions.def: Define
19010 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
19011 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
19012 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
19013 (AARCH64_FL_PREDRES): New.
19014 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
19015 AARCH64_FL_PREDRES by default.
19016 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
19017
19018 2018-01-09 Sudakshina Das <sudi.das@arm.com>
19019
19020 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
19021 ARMv8.5-A.
19022 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
19023 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
19024 * doc/invoke.texi: Document ARMv8.5-A.
19025
19026 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
19027
19028 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
19029 (xorsign<mode>3): Likewise.
19030
19031 2019-01-09 Jelinek <jakub@redhat.com>
19032
19033 PR middle-end/88758
19034 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
19035 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
19036
19037 PR rtl-optimization/88331
19038 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
19039 not currently_expanding_to_rtl.
19040
19041 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
19042
19043 * doc/invoke.texi (-Os): Remove trailing spaces.
19044 (-finline-functions): Remove reference to -O2.
19045
19046 2019-01-08 Jakub Jelinek <jakub@redhat.com>
19047
19048 PR rtl-optimization/79593
19049 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
19050
19051 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
19052 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
19053
19054 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
19055
19056 PR bootstrap/88721
19057 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
19058 to -1 on entry.
19059
19060 PR debug/88723
19061 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
19062 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
19063
19064 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
19065
19066 PR target/88717
19067 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
19068 ix86_avx_u128_mode_entry.
19069
19070 2019-01-08 Martin Liska <mliska@suse.cz>
19071
19072 PR tree-optimization/88753
19073 * tree-switch-conversion.c (switch_conversion::build_one_array):
19074 Come up with local variable constructor. Convert first to
19075 type of constructor values.
19076
19077 2019-01-08 Richard Biener <rguenther@suse.de>
19078
19079 PR tree-optimization/86554
19080 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
19081 rpo_avail): Move earlier.
19082 (visit_nary_op): When value-numbering to expressions
19083 with different overflow behavior make sure there's an
19084 available expression on the path.
19085
19086 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
19087
19088 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
19089 aarch64_parse_branch_protection,
19090 struct aarch64_branch_protect_type,
19091 aarch64_handle_no_branch_protection,
19092 aarch64_handle_standard_branch_protection,
19093 aarch64_validate_mbranch_protection,
19094 aarch64_handle_pac_ret_protection,
19095 aarch64_handle_attr_branch_protection,
19096 accepted_branch_protection_string,
19097 aarch64_pac_ret_subtypes,
19098 aarch64_branch_protect_types,
19099 aarch64_handle_pac_ret_leaf): Define.
19100 (aarch64_override_options_after_change_1, aarch64_override_options):
19101 Add check for accepted_branch_protection_string.
19102 (aarch64_option_save): Save accepted_branch_protection_string.
19103 (aarch64_option_restore): Save accepted_branch_protection_string.
19104 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
19105 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
19106 msign-return-address.
19107 * doc/invoke.texi: Add mbranch-protection.
19108
19109 2019-01-08 Alan Modra <amodra@gmail.com>
19110
19111 PR target/88614
19112 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
19113 Delete "unknownp" parameter. Adjust callers. Handle
19114 CONST_INT, PLUS, MINUS, and MULT.
19115 (attr_value_aligned): Renamed from or_attr_value.
19116 (min_attr_value): Return INT_MIN for unhandled rtl case..
19117 (min_fn): ..and translate to INT_MAX here.
19118 (write_length_unit_log): Modify to cope without "unknown".
19119 (write_attr_value): Handle IF_THEN_ELSE.
19120
19121 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
19122
19123 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
19124 optimization for masked stores.
19125
19126 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
19127
19128 PR middle-end/88567
19129 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
19130 output vector directly to duplicate_and_interleave instead of
19131 going through a temporary. Postpone insertion of ctor_seq to
19132 the end of the loop.
19133
19134 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
19135
19136 PR target/86891
19137 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
19138 unsigned_p. Handle signed and unsigned overflow correction as
19139 required.
19140 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
19141 prototype.
19142 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
19143 for operand 2.
19144 (add<mode>3_compareV_imm): Make this callable for expanding.
19145 (subv<GPI:mode>4): Use register_operand for operand 1. Use
19146 aarch64_plus_operand for operand 2.
19147 (subv<GPI:mode>_insn): New insn pattern.
19148 (subv<GPI:mode>_imm): Likewise.
19149 (negv<GPI:mode>3): New expand pattern.
19150 (negv<GPI:mode>_insn): New insn pattern.
19151 (negv<GPI:mode>_cmp_only): Likewise.
19152 (cmpv<GPI:mode>_insn): Likewise.
19153 (subvti4): Use register_operand for operand 1. Update call to
19154 aarch64_expand_subvti.
19155 (usubvti4): Likewise.
19156 (negvti3): New expand pattern.
19157 (negdi_carryout): New insn pattern.
19158 (negvdi_carryinV): New insn pattern.
19159 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
19160 version the named version.
19161 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
19162 operands.
19163 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
19164 patterns.
19165 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
19166 patterns.
19167 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
19168 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
19169 (sub<mode>3_carryinCV): Delete.
19170 (sub<GPI:mode>3_carryinV): New expand pattern.
19171 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
19172
19173 2019-01-07 Richard Biener <rguenther@suse.de>
19174
19175 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
19176 of tree_operand_hash.
19177
19178 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
19179
19180 PR tree-optimization/88598
19181 * tree.h (single_nonzero_element): Declare.
19182 * tree.c (single_nonzero_element): New function.
19183 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
19184 if I is the only nonzero element of CST.
19185
19186 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
19187
19188 PR tree-optimization/88598
19189 * tree.h (initializer_each_zero_or_onep): Declare.
19190 * tree.c (initializer_each_zero_or_onep): New function.
19191 (signed_or_unsigned_type_for): Handle float types too.
19192 (unsigned_type_for, signed_type_for): Update comments accordingly.
19193 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
19194 x & { 0 or -1, 0 or -1, ... }.
19195
19196 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
19197
19198 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
19199 with x86_64-pc-linux-gnu.
19200
19201 2019-01-07 Tom de Vries <tdevries@suse.de>
19202
19203 PR target/85486
19204 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
19205 function.
19206 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
19207 routines.
19208
19209 2019-01-07 Jakub Jelinek <jakub@redhat.com>
19210
19211 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
19212 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
19213 TARGET_AVX512F as condition.
19214
19215 PR debug/88723
19216 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
19217 const_not_ok_for_debug_p target hook.
19218 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
19219 on UNSPEC and subexpressions thereof if all subexpressions of the
19220 UNSPEC are CONSTANT_P.
19221
19222 PR tree-optimization/88676
19223 * tree-ssa-phiopt.c (two_value_replacement): New function.
19224 (tree_ssa_phiopt_worker): Call it.
19225
19226 PR sanitizer/88619
19227 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
19228 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
19229
19230 PR c++/85052
19231 * tree-vect-generic.c: Include insn-config.h and recog.h.
19232 (expand_vector_piecewise): Add defaulted ret_type argument,
19233 if non-NULL, use that in preference to type for the result type.
19234 (expand_vector_parallel): Formatting fix.
19235 (do_vec_conversion, do_vec_narrowing_conversion,
19236 expand_vector_conversion): New functions.
19237 (expand_vector_operations_1): Call expand_vector_conversion
19238 for VEC_CONVERT ifn calls.
19239 * internal-fn.def (VEC_CONVERT): New internal function.
19240 * internal-fn.c (expand_VEC_CONVERT): New function.
19241 * fold-const-call.c (fold_const_vec_convert): New function.
19242 (fold_const_call): Use it for CFN_VEC_CONVERT.
19243 * doc/extend.texi (__builtin_convertvector): Document.
19244
19245 2019-01-07 Tom de Vries <tdevries@suse.de>
19246
19247 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
19248 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
19249 vector_red_partition, vector_red_sym): New global variables.
19250 (nvptx_option_override): Initialize vector_red_sym.
19251 (nvptx_declare_function_name): Restore red_partition register.
19252 (nvptx_file_end): Emit code to declare the vector reduction variables.
19253 (nvptx_output_red_partition): New function.
19254 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
19255 large vector reductions.
19256 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
19257 (nvptx_init_builtins): Add VECTOR_ADDR.
19258 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
19259 Handle nvptx_expand_shared_addr.
19260 (nvptx_get_shared_red_addr): Add vector argument and handle large
19261 vectors.
19262 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
19263 large vectors.
19264 (nvptx_goacc_reduction_init): Likewise.
19265 (nvptx_goacc_reduction_fini): Likewise.
19266 (nvptx_goacc_reduction_teardown): Likewise.
19267 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
19268 init,fini,teardown}.
19269 (nvptx_init_axis_predicate): Initialize vector_red_partition.
19270 (nvptx_set_current_function): Init vector_red_partition.
19271 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
19272 (nvptx_red_partition): New insn.
19273 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
19274
19275 2019-01-07 Tom de Vries <tdevries@suse.de>
19276
19277 PR target/85381
19278 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
19279 empty loops.
19280
19281 2019-01-07 Tom de Vries <tdevries@suse.de>
19282
19283 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
19284 (nvptx_option_override): Init oacc_bcast_partition.
19285 (nvptx_init_oacc_workers): New function.
19286 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
19287 (nvptx_needs_shared_bcast): New function.
19288 (nvptx_find_par): Generalize to enable vectors to use shared-memory
19289 to propagate state.
19290 (nvptx_shared_propagate): Initialize vector bcast partition and
19291 synchronization state.
19292 (nvptx_single): Generalize to enable vectors to use shared-memory
19293 to propagate state.
19294 (nvptx_process_pars): Likewise.
19295 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
19296 * config/nvptx/nvptx.h (struct machine_function): Add
19297 bcast_partition and sync_bar members.
19298
19299 2019-01-07 Tom de Vries <tdevries@suse.de>
19300
19301 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
19302 (nvptx_apply_dim_limits): New function.
19303 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
19304 PTX_WARP_SIZE.
19305
19306 2019-01-07 Tom de Vries <tdevries@suse.de>
19307
19308 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
19309 as late as possible.
19310
19311 2019-01-07 Tom de Vries <tdevries@suse.de>
19312
19313 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
19314 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
19315 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
19316 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
19317 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
19318
19319 2019-01-07 Tom de Vries <tdevries@suse.de>
19320
19321 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
19322
19323 2019-01-07 Tom de Vries <tdevries@suse.de>
19324
19325 * omp-offload.c (oacc_get_min_dim): New function.
19326 * omp-offload.h (oacc_get_min_dim): Declare.
19327
19328 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
19329
19330 PR target/88521
19331 * config/i386/i386.c (function_value_ms_64): Return small sturct in
19332 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
19333
19334 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19335
19336 PR tree-opt/86020
19337 Revert:
19338 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19339
19340 * ipa-inline.c (edge_badness): Use inlined_time instead of
19341 inline_summaries->get.
19342
19343 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19344
19345 * opts.c (enable_fdo_optimizations): Enable
19346 version-loops-for-strides, loop-interchange, unrol-and-jam
19347 and tree-loop-distribution.
19348 * invoke.texi: Document newly enabled options.
19349
19350 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19351
19352 * doc/invoke.texi (max-inline-insns-small): New parameters.
19353 * ipa-inline.c (want_early_inline_function_p): simplify.
19354 (want_inline_small_function_p): Fix pasto from previous patch;
19355 use max-inline-insns-small bound.
19356 * params.def (max-inline-insns-small): New param.
19357 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
19358 variables correctly.
19359
19360 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19361
19362 * doc/invoke.texi: Document max-inline-insns-size,
19363 uninlined-function-insns, uninlined-function-time,
19364 uninlined-thunk-insns and uninlined-thunk-time.
19365 * params.def: Add max-inline-insns-size,
19366 uninlined-function-insns, uninlined-function-time,
19367 uninlined-thunk-insns and uninlined-thunk-time.
19368 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
19369 new parameters.
19370 * ipa-inline.c (can_inline_edge_by_limits_p,
19371 want_inline_small_function_p): Use new parameters.
19372
19373 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19374
19375 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
19376
19377 2019-01-05 Jakub Jelinek <jakub@redhat.com>
19378
19379 PR middle-end/82564
19380 PR target/88620
19381 * expr.c (expand_assignment): For calls returning VLA structures
19382 if to_rtx is not a MEM, force it into a stack temporary.
19383
19384 PR debug/88635
19385 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
19386 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
19387 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
19388 subexpressions of both operands.
19389 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
19390 subrtxes are CONSTANT_P.
19391 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
19392 2018-11-09 changes.
19393
19394 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
19395
19396 * params.def (hot-bb-count-ws-permille): Set to 990.
19397
19398 2019-01-04 Martin Sebor <msebor@redhat.com>
19399
19400 PR c/88546
19401 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
19402 leaf.
19403
19404 2019-01-04 Martin Sebor <msebor@redhat.com>
19405
19406 PR c/88363
19407 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
19408
19409 2019-01-04 Jakub Jelinek <jakub@redhat.com>
19410
19411 * gdbinit.in: Turn off pagination for the skip commands, restore
19412 it to previous state afterwards.
19413
19414 2019-01-04 Jakub Jelinek <jakub@redhat.com>
19415
19416 PR target/88594
19417 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
19418 of GET_MODE (opN) as modes of the libcall arguments.
19419
19420 2019-01-04 Jan Beulich <jbeulich@suse.com>
19421
19422 * config/i386/sse.md
19423 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
19424 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
19425 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
19426 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
19427 avx512f_vmcmp<mode>3<round_saeonly_name>,
19428 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
19429 avx512f_maskcmp<mode>3,
19430 <avx512>_cvt<ssemodesuffix>2mask<mode>,
19431 <avx512>_cvt<ssemodesuffix>2mask<mode>,
19432 *<avx512>_cvtmask2<ssemodesuffix><mode>,
19433 *<avx512>_cvtmask2<ssemodesuffix><mode>,
19434 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
19435 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
19436 <avx512>_gt<mode>3<mask_scalar_merge_name>,
19437 <avx512>_gt<mode>3<mask_scalar_merge_name>,
19438 <avx512>_testm<mode>3<mask_scalar_merge_name>,
19439 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
19440 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
19441 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
19442 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
19443 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
19444 avx512cd_maskb_vec_dup<mode>,
19445 avx512cd_maskw_vec_dup<mode>,
19446 avx512dq_fpclass<mode><mask_scalar_merge_name>,
19447 avx512dq_vmfpclass<mode>,
19448 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
19449 instead of =Yk.
19450
19451 2019-01-03 Martin Sebor <msebor@redhat.com>
19452
19453 PR tree-optimization/88659
19454 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
19455
19456 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
19457
19458 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
19459 unaligned vsx and avoid lxvd2x/stxvd2x.
19460 (gen_lvx_v4si_move): New function.
19461
19462 2019-01-03 Tom de Vries <tdevries@suse.de>
19463
19464 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
19465 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
19466 function.
19467 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
19468
19469 2019-01-03 Tom de Vries <tdevries@suse.de>
19470
19471 * config/nvptx/nvptx.c (struct offload_attrs): New.
19472 (populate_offload_attrs): New function. Factor mask extraction out of
19473 nvptx_reorg. Add extraction of dimensions.
19474 (nvptx_reorg): Use populate_offload_attrs.
19475
19476 2019-01-03 Tom de Vries <tdevries@suse.de>
19477
19478 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
19479 cases for oacc_min_dims_p and routine_p. Add asserts for
19480 oacc_default_dims_p and offload_region_p.
19481
19482 2019-01-03 Tom de Vries <tdevries@suse.de>
19483
19484 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
19485 factored out of ...
19486 (nvptx_goacc_validate_dims): ... here.
19487
19488 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
19489
19490 PR tree-optimization/85574
19491 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
19492 structure.
19493 (struct ssa_equip_hash_traits): Declare.
19494 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
19495
19496 2019-01-03 Jakub Jelinek <jakub@redhat.com>
19497
19498 PR debug/88644
19499 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
19500 change it to qualified_type.
19501
19502 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
19503
19504 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
19505 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
19506
19507 2019-01-02 Martin Sebor <msebor@redhat.com>
19508 Jeff Law <law@redhat.com>
19509
19510 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
19511 (get_range_strlen_tree): Update appropriately.
19512 (get_range_strlen)
19513 * gimple-fold.h (get_range_strlen): Drop unused last argument.
19514
19515 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
19516 rather than set_range_info.
19517 * tree-ssa-strlen.c (set_strlen_range): Extracted from
19518 maybe_set_strlen_range. Handle potentially boundary crossing
19519 cases more conservatively.
19520 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
19521 Call set_strlen_range.
19522 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
19523
19524 PR middle-end/88663
19525 * gimple-fold.c (get_range_strlen): Update prototype to no longer
19526 need the flexp argument.
19527 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
19528 from calls to get_range_strlen. Update comments. Just update
19529 VAL for an unterminated const char array and let the reset of the
19530 code handle it normally. No longer try to set *flexp. Adjust
19531 return value.
19532 (get_range_strlen): Update for the new get_range_strlen API.
19533 (get_maxval_strlen): Similarly.
19534 (gimple_fold_builtin_strlen): Handle update meaning of return value
19535 from get_range_strlen.
19536 * gimple-ssa-sprintf.c (get_string_length): Update for the new
19537 get_range_strlen API.
19538
19539 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
19540
19541 PR lto/88130
19542 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
19543 false at WPA time when body was removed.
19544
19545 2019-01-02 Martin Liska <mliska@suse.cz>
19546
19547 PR tree-optimization/88650
19548 * predict.c (set_even_probabilities): Calculate probability
19549 remainer only when really used.
19550
19551 2019-01-02 Richard Biener <rguenther@suse.de>
19552
19553 PR middle-end/88651
19554 * tree-data-ref.c (analyze_subscript_affine_affine): Use
19555 widest_ints when mangling max_stmt_execution results.
19556
19557 2019-01-02 Richard Biener <rguenther@suse.de>
19558
19559 PR tree-optimization/88621
19560 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
19561 bitfields when canoncalizing.
19562
19563 2019-01-02 Richard Biener <rguenther@suse.de>
19564
19565 PR target/87545
19566 * config/i386/x86-tune-costs.h (intel_cost): Adjust
19567 cost of cheap SSE instruction.
19568
19569 2019-01-02 Richard Biener <rguenther@suse.de>
19570
19571 PR ipa/85574
19572 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
19573 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
19574 function.
19575 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
19576 set after UIDs before splitting them.
19577
19578 2019-01-01 Martin Sebor <msebor@redhat.com>
19579 Jeff Law <law@redhat.com>
19580
19581 * gimple-fold.c (get_range_strlen_tree): Record if the computed
19582 length is optimistic. If it is, then arrange to compute the
19583 conservative length as well.
19584
19585 * gimple-fold.h (get_range_strlen): Update prototype.
19586 * builtins.c (check_access): Update call to get_range_strlen to use
19587 c_strlen_data pointer. Change various variable accesses to instead
19588 pull data from the c_strlen_data structure.
19589 (check_strncat_sizes, expand_builtin_strncat): Likewise.
19590 * calls.c (maybe_warn_nonstring_arg): Likewise.
19591 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
19592 minimum length if maximum lengh is unknown.
19593 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
19594 that used c_strlen, it's no longer needed. Restructure slightly.
19595 (format_string): Set unlikely range appropriately.
19596 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
19597 formatting issues.
19598 (get_range_strlen): Accept c_strlen_data pointer for external
19599 call sites as well. Pass through to call to internal get_range_strlen.
19600 Adjust minlen, maxlen and maxbound as needed.
19601 (get_maxval_strlen): Update comments.
19602 (gimple_fold_builtin_strlen): Update call to get_range_strlen
19603 to use c_strlen_data pointer. Change variable accesses to instead
19604 use c_strlen_data data members.
19605
19606 * gimple-fold.c (get_range_strlen): Update prototype.
19607 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
19608 local variables. Use pdata to return information to caller.
19609 Update calls to get_range_strlen. Update pdata->maxbound.
19610 (get_range_strlen -- static version): Similarly.
19611 (get_range_strlen -- extern version): Update for internal
19612 get_range_strlen API change. Convert to external data format.
19613 (get_maxval_strlen): Similarly.
19614
19615 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
19616
19617 * coverage.c (get_coverage_counts): Use current_function_decl.
19618 * profile.c (read_thunk_profile): New function.
19619 (branch_prob): Add THUNK parameter.
19620 * tree-profile.c (tree_profiling): Handle thunks.
19621 * value-prof.c (init_node_map): Handle thunks.
19622 * value-prof.h (branch_prob): Upate prototype.
19623 (read_thunk_profile): Declare.
19624
19625 2019-01-01 Jakub Jelinek <jakub@redhat.com>
19626
19627 Update copyright years.
19628
19629 * gcc.c (process_command): Update copyright notice dates.
19630 * gcov-dump.c (print_version): Ditto.
19631 * gcov.c (print_version): Ditto.
19632 * gcov-tool.c (print_version): Ditto.
19633 * gengtype.c (create_file): Ditto.
19634 * doc/cpp.texi: Bump @copying's copyright year.
19635 * doc/cppinternals.texi: Ditto.
19636 * doc/gcc.texi: Ditto.
19637 * doc/gccint.texi: Ditto.
19638 * doc/gcov.texi: Ditto.
19639 * doc/install.texi: Ditto.
19640 * doc/invoke.texi: Ditto.
19641 \f
19642 Copyright (C) 2019 Free Software Foundation, Inc.
19643
19644 Copying and distribution of this file, with or without modification,
19645 are permitted in any medium without royalty provided the copyright
19646 notice and this notice are preserved.