]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
[AArch64] Fix predicate alignment for fixed-length SVE
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
2
3 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Return
4 16 for SVE predicates even if they are fixed-length.
5
6 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
7
8 * config/aarch64/aarch64-sve.md (and<PRED_ALL:mode>3): Make the
9 operand order match the MOV /Z alias.
10
11 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
12
13 * config/aarch64/aarch64.c (aarch64_output_sve_cnt_immediate): Take
14 the vector pattern as an aarch64_svpattern argument. Update the
15 overloaded caller accordingly.
16 (aarch64_output_sve_scalar_inc_dec): Update call accordingly.
17 (aarch64_output_sve_vector_inc_dec): Likewise.
18
19 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
20
21 * config/aarch64/aarch64.c (aarch64_add_offset): In the fallback
22 multiplication case, try to compute VG * (lowest set bit) directly
23 rather than always basing the multiplication on VG. Use
24 expand_mult for the multiplication if we can.
25
26 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
27
28 * config/aarch64/aarch64-protos.h
29 (aarch64_sve_scalar_inc_dec_immediate_p): Declare.
30 (aarch64_sve_inc_dec_immediate_p): Rename to...
31 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
32 (aarch64_output_sve_addvl_addpl): Take a single rtx argument.
33 (aarch64_output_sve_scalar_inc_dec): Declare.
34 (aarch64_output_sve_inc_dec_immediate): Rename to...
35 (aarch64_output_sve_vector_inc_dec): ...this.
36 * config/aarch64/aarch64.c (aarch64_sve_scalar_inc_dec_immediate_p)
37 (aarch64_output_sve_scalar_inc_dec): New functions.
38 (aarch64_output_sve_addvl_addpl): Remove the base and offset
39 arguments. Only handle true ADDVL and ADDPL instructions;
40 don't emit an INC or DEC.
41 (aarch64_sve_inc_dec_immediate_p): Rename to...
42 (aarch64_sve_vector_inc_dec_immediate_p): ...this.
43 (aarch64_output_sve_inc_dec_immediate): Rename to...
44 (aarch64_output_sve_vector_inc_dec): ...this. Update call to
45 aarch64_sve_vector_inc_dec_immediate_p.
46 * config/aarch64/predicates.md (aarch64_sve_scalar_inc_dec_immediate)
47 (aarch64_sve_plus_immediate): New predicates.
48 (aarch64_pluslong_operand): Accept aarch64_sve_plus_immediate
49 rather than aarch64_sve_addvl_addpl_immediate.
50 (aarch64_sve_inc_dec_immediate): Rename to...
51 (aarch64_sve_vector_inc_dec_immediate): ...this. Update call to
52 aarch64_sve_vector_inc_dec_immediate_p.
53 (aarch64_sve_add_operand): Update accordingly.
54 * config/aarch64/constraints.md (Uai): New constraint.
55 (vsi): Update call to aarch64_sve_vector_inc_dec_immediate_p.
56 * config/aarch64/aarch64.md (add<GPI:mode>3): Don't force the second
57 operand into a register if it satisfies aarch64_sve_plus_immediate.
58 (*add<GPI:mode>3_aarch64, *add<GPI:mode>3_poly_1): Add an alternative
59 for Uai. Update calls to aarch64_output_sve_addvl_addpl.
60 * config/aarch64/aarch64-sve.md (add<mode>3): Call
61 aarch64_output_sve_vector_inc_dec instead of
62 aarch64_output_sve_inc_dec_immediate.
63
64 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
65
66 * config/aarch64/iterators.md (UNSPEC_REVB, UNSPEC_REVH)
67 (UNSPEC_REVW): New constants.
68 (elem_bits): New mode attribute.
69 (SVE_INT_UNARY): New int iterator.
70 (optab): Handle UNSPEC_REV[BHW].
71 (sve_int_op): New int attribute.
72 (min_elem_bits): Handle VNx16QI and the predicate modes.
73 * config/aarch64/aarch64-sve.md (*aarch64_sve_rev64<mode>)
74 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Delete.
75 (@aarch64_pred_<SVE_INT_UNARY:optab><SVE_I:mode>): New pattern.
76 * config/aarch64/aarch64.c (aarch64_sve_data_mode): New function.
77 (aarch64_sve_int_mode, aarch64_sve_rev_unspec): Likewise.
78 (aarch64_split_sve_subreg_move): Use UNSPEC_REV[BHW] instead of
79 unspecs based on the total width of the reversed data.
80 (aarch64_evpc_rev_local): Likewise (for SVE only). Use a
81 reinterpret followed by a subreg on big-endian targets.
82
83 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
84 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
85
86 * config/aarch64/aarch64-sve.md
87 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Add /z
88 alternatives in which one of the inputs is in the same register
89 as the output.
90
91 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
92
93 * config/aarch64/aarch64-sve.md (*vec_extract<mode><Vel>_ext)
94 (*aarch64_sve_ext<mode>): Add MOVPRFX alternatives.
95
96 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
97
98 * config/aarch64/aarch64-sve.md (*sub<SVE_F:mode>3): Remove immediate
99 FADD and FSUB alternatives. Add a MOVPRFX alternative for FSUBR.
100
101 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
102 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
103
104 * config/aarch64/aarch64-sve.md (add<SVE_I:mode>3, sub<SVE_I:mode>3)
105 (<LOGICAL:optab><SVE_I:mode>3, *add<SVE_F:mode>3, *mul<SVE_F:mode>3)
106 (*fabd<SVE_F:mode>3): Add more MOVPRFX alternatives.
107
108 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
109 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
110
111 * config/aarch64/aarch64-sve.md (*v<ASHIFT:optab><SVE_I:mode>3):
112 Add an alternative that uses reversed shifts.
113
114 2019-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
115
116 * config/aarch64/aarch64-cores.def (cortex-a76): Use neoversen1 tuning
117 struct.
118
119 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
120
121 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Add
122 a commutativity marker.
123
124 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
125 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
126
127 * config/aarch64/aarch64-protos.h (aarch64_prepare_sve_int_fma)
128 (aarch64_prepare_sve_cond_int_fma): Declare.
129 * config/aarch64/aarch64.c (aarch64_convert_mult_to_shift)
130 (aarch64_prepare_sve_int_fma): New functions.
131 (aarch64_prepare_sve_cond_int_fma): Likewise.
132 * config/aarch64/aarch64-sve.md
133 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Add a "@" marker.
134 (fma<SVE_I:mode>4, cond_fma<SVE_I:mode>, *cond_fma<SVE_I:mode>_2)
135 (*cond_fma<SVE_I:mode>_4, *cond_fma<SVE_I:mode>_any, fnma<SVE_I:mode>4)
136 (cond_fnma<SVE_I:mode>, *cond_fnma<SVE_I:mode>_2)
137 (*cond_fnma<SVE_I:mode>_4, *cond_fnma<SVE_I:mode>_any): New patterns.
138 (*madd<mode>): Rename to...
139 (*fma<mode>4): ...this.
140 (*msub<mode>): Rename to...
141 (*fnma<mode>4): ...this.
142
143 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
144 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
145
146 * config/aarch64/aarch64.c (aarch64_print_vector_float_operand):
147 Print 2.0 naturally.
148 (aarch64_sve_float_mul_immediate_p): Return true for 2.0.
149 * config/aarch64/predicates.md
150 (aarch64_sve_float_negated_arith_immediate): New predicate,
151 renamed from aarch64_sve_float_arith_with_sub_immediate.
152 (aarch64_sve_float_arith_with_sub_immediate): Test for both
153 positive and negative constants.
154 (aarch64_sve_float_arith_with_sub_operand): Redefine as a register
155 or an aarch64_sve_float_arith_with_sub_immediate.
156 * config/aarch64/constraints.md (vsN): Use
157 aarch64_sve_float_negated_arith_immediate.
158 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_I1): New int
159 iterator.
160 (sve_pred_fp_rhs2_immediate): New int attribute.
161 * config/aarch64/aarch64-sve.md
162 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>): Use
163 sve_pred_fp_rhs1_operand and sve_pred_fp_rhs2_operand.
164 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_2_const)
165 (*cond_<SVE_COND_FP_BINARY_I1:optab><SVE_F:mode>_any_const)
166 (*cond_add<SVE_F:mode>_2_const, *cond_add<SVE_F:mode>_any_const)
167 (*cond_sub<mode>_3_const, *cond_sub<mode>_any_const): New patterns.
168
169 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
170 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
171
172 * config/aarch64/aarch64-sve.md (*aarch64_cond_abd<SVE_F:mode>_2)
173 (*aarch64_cond_abd<SVE_F:mode>_3)
174 (*aarch64_cond_abd<SVE_F:mode>_any): New patterns.
175
176 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
177 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
178
179 * config/aarch64/aarch64-sve.md (*aarch64_cond_<su>abd<mode>_2)
180 (*aarch64_cond_<su>abd<mode>_any): New patterns.
181
182 2019-08-15 Richard Sandiford <richard.sandiford@arm.com>
183 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
184
185 * internal-fn.def (IFN_COND_SHL, IFN_COND_SHR): New internal functions.
186 * internal-fn.c (FOR_EACH_CODE_MAPPING): Handle shifts.
187 * match.pd (UNCOND_BINARY, COND_BINARY): Likewise.
188 * optabs.def (cond_ashl_optab, cond_ashr_optab, cond_lshr_optab): New
189 optabs.
190 * optabs.h (create_convert_operand_from): Expand comment.
191 * optabs.c (maybe_legitimize_operand): Allow implicit broadcasts
192 when mapping scalar rtxes to vector operands.
193 * config/aarch64/iterators.md (SVE_INT_BINARY): Add ashift,
194 ashiftrt and lshiftrt.
195 (sve_int_op, sve_int_op_rev, sve_pred_int_rhs2_operand): Handle them.
196 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_2_const)
197 (*cond_<optab><mode>_any_const): New patterns.
198
199 2019-08-15 Martin Liska <mliska@suse.cz>
200
201 PR ipa/91438
202 * cgraph.c (cgraph_node::remove): When setting
203 n->origin = NULL for all nested functions, reset
204 also next_nested.
205
206 2019-08-15 Martin Liska <mliska@suse.cz>
207
208 * cgraph.c (cgraph_node::verify_node): Verify origin, nested
209 and next_nested.
210
211 2019-08-15 Martin Liska <mliska@suse.cz>
212
213 PR ipa/91404
214 * passes.c (order): Remove.
215 (uid_hash_t): Likewise).
216 (remove_cgraph_node_from_order): Remove from set
217 of pointers (cgraph_node *).
218 (insert_cgraph_node_to_order): New.
219 (duplicate_cgraph_node_to_order): New.
220 (do_per_function_toporder): Register all 3 cgraph hooks.
221 Skip removed_nodes now as we know about all of them.
222
223 2019-08-14 Uroš Bizjak <ubizjak@gmail.com>
224
225 * config/i386/i386-expand.c (ix86_expand_vector_init_one_nonzero)
226 <case E_V8QImode>: Use vector_set path for
227 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
228 (ix86_expand_vector_init_one_nonzero) <case E_V8QImode>:
229 Do not widen for TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
230
231 2019-08-14 Bernd Edlinger <bernd.edlinger@hotmail.de>
232
233 * builtins.c (expand_builtin_init_descriptor): Set memory alignment.
234
235 2019-08-14 Martin Sebor <msebor@redhat.com>
236
237 PR tree-optimization/91294
238 * tree-ssa-strlen.c (handle_store): Avoid treating lower bound of
239 source length as exact.
240
241 2019-08-14 Christophe Lyon <christophe.lyon@linaro.org>
242
243 * doc/extend.texi: Add "noinit" attribute documentation.
244 * doc/sourcebuild.texi: Add noinit effective target documentation.
245 * varasm.c (default_section_type_flags): Add support for "noinit"
246 section.
247 (default_elf_select_section): Add support for "noinit" attribute.
248 * config/msp430/msp430.c (msp430_attribute_table): Remove
249 "noinit" entry.
250
251 2019-08-14 Richard Biener <rguenther@suse.de>
252 Uroš Bizjak <ubizjak@gmail.com>
253
254 PR target/91154
255 * config/i386/i386-features.h (scalar_chain::scalar_chain): Add
256 mode arguments.
257 (scalar_chain::smode): New member.
258 (scalar_chain::vmode): Likewise.
259 (dimode_scalar_chain): Rename to...
260 (general_scalar_chain): ... this.
261 (general_scalar_chain::general_scalar_chain): Take mode arguments.
262 (timode_scalar_chain::timode_scalar_chain): Initialize scalar_chain
263 base with TImode and V1TImode.
264 * config/i386/i386-features.c (scalar_chain::scalar_chain): Adjust.
265 (general_scalar_chain::vector_const_cost): Adjust for SImode
266 chains.
267 (general_scalar_chain::compute_convert_gain): Likewise. Add
268 {S,U}{MIN,MAX} support.
269 (general_scalar_chain::replace_with_subreg): Use vmode/smode.
270 (general_scalar_chain::make_vector_copies): Likewise. Handle
271 non-DImode chains appropriately.
272 (general_scalar_chain::convert_reg): Likewise.
273 (general_scalar_chain::convert_op): Likewise.
274 (general_scalar_chain::convert_insn): Likewise. Add
275 fatal_insn_not_found if the result is not recognized.
276 (convertible_comparison_p): Pass in the scalar mode and use that.
277 (general_scalar_to_vector_candidate_p): Likewise. Rename from
278 dimode_scalar_to_vector_candidate_p. Add {S,U}{MIN,MAX} support.
279 (scalar_to_vector_candidate_p): Remove by inlining into single
280 caller.
281 (general_remove_non_convertible_regs): Rename from
282 dimode_remove_non_convertible_regs.
283 (remove_non_convertible_regs): Remove by inlining into single caller.
284 (convert_scalars_to_vector): Handle SImode and DImode chains
285 in addition to TImode chains.
286 * config/i386/i386.md (<maxmin><MAXMIN_IMODE>3): New expander.
287 (*<maxmin><MAXMIN_IMODE>3_1): New insn-and-split.
288 (*<maxmin>di3_doubleword): Likewise.
289
290 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
291 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
292
293 * config/aarch64/aarch64-sve.md (*cond_bic<mode>_2)
294 (*cond_bic<mode>_any): New patterns.
295
296 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
297
298 * config/aarch64/aarch64.c (aarch64_print_operand): Allow %e to
299 take the equivalent mask, as well as a bit count.
300 * config/aarch64/predicates.md (aarch64_sve_uxtb_immediate)
301 (aarch64_sve_uxth_immediate, aarch64_sve_uxt_immediate)
302 (aarch64_sve_pred_and_operand): New predicates.
303 * config/aarch64/iterators.md (sve_pred_int_rhs2_operand): New
304 code attribute.
305 * config/aarch64/aarch64-sve.md
306 (cond_<SVE_INT_BINARY:optab><SVE_I:mode>): Use it.
307 (*cond_uxt<mode>_2, *cond_uxt<mode>_any): New patterns.
308
309 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
310
311 * config/aarch64/aarch64-sve.md
312 (*cond_<SVE_COND_FCVTI:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
313 (*cond_<SVE_COND_ICVTF:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>):
314 New patterns.
315
316 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
317 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
318
319 * config/aarch64/aarch64-sve.md
320 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_2): New pattern.
321 (*cond_<SVE_COND_FP_UNARY:optab><SVE_F:mode>_any): Likewise.
322
323 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
324 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
325
326 * config/aarch64/aarch64-sve.md
327 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_2): New pattern.
328 (*cond_<SVE_INT_UNARY:optab><SVE_I:mode>_any): Likewise.
329
330 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
331
332 * config/aarch64/iterators.md (SVE_COND_FP_ABS_CMP): New iterator.
333 * config/aarch64/aarch64-sve.md (*aarch64_pred_fac<cmp_op><mode>):
334 New pattern.
335
336 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
337 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
338
339 * config/aarch64/aarch64-sve.md (*aarch64_sel_dup<mode>): New pattern.
340
341 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
342 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
343
344 * config/aarch64/aarch64.c (aarch64_bit_representation): New function.
345 (aarch64_print_vector_float_operand): Also handle 8-bit floats.
346 (aarch64_print_operand): Add support for %I.
347 (aarch64_sve_dup_immediate_p): Handle scalars as well as vectors.
348 Bitcast floating-point constants to the corresponding integer constant.
349 (aarch64_float_const_representable_p): Handle vectors as well
350 as scalars.
351 (aarch64_expand_sve_vcond): Make sure that the operands are valid
352 for the new vcond_mask_<mode><vpred> expander.
353 * config/aarch64/predicates.md (aarch64_sve_dup_immediate): Also
354 test aarch64_float_const_representable_p.
355 (aarch64_sve_reg_or_dup_imm): New predicate.
356 * config/aarch64/aarch64-sve.md (vec_extract<vpred><Vel>): Use
357 gen_vcond_mask_<mode><vpred> instead of
358 gen_aarch64_sve_dup<mode>_const.
359 (vcond_mask_<mode><vpred>): Turn into a define_expand that
360 accepts aarch64_sve_reg_or_dup_imm and aarch64_simd_reg_or_zero
361 for operands 1 and 2 respectively. Force operand 2 into a
362 register if operand 1 is a register. Fold old define_insn...
363 (aarch64_sve_dup<mode>_const): ...and this define_insn...
364 (*vcond_mask_<mode><vpred>): ...into this new pattern. Handle
365 floating-point constants that can be moved as integers. Add
366 alternatives for MOV /M and FMOV /M.
367 (vcond<mode><v_int_equiv>, vcondu<mode><v_int_equiv>)
368 (vcond<mode><v_fp_equiv>): Accept nonmemory_operand for operands
369 1 and 2 respectively.
370 * config/aarch64/constraints.md (Ufc): Handle vectors as well
371 as scalars.
372 (vss): New constraint.
373
374 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
375
376 * config/aarch64/predicates.md (aarch64_sve_float_maxmin_immediate)
377 (aarch64_sve_float_maxmin_operand): New predicates.
378 * config/aarch64/constraints.md (vsB): New constraint.
379 (vsM): Fix typo.
380 * config/aarch64/iterators.md (sve_pred_fp_rhs2_operand): Use
381 aarch64_sve_float_maxmin_operand for UNSPEC_COND_FMAXNM and
382 UNSPEC_COND_FMINNM.
383 * config/aarch64/aarch64-sve.md (<maxmin_uns><SVE_F:mode>3):
384 Use aarch64_sve_float_maxmin_operand for operand 2.
385 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Likewise.
386 Add alternatives for the constant forms.
387
388 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
389
390 * config/aarch64/constraints.md (vsb): New constraint.
391 (vsm): Generalize description.
392 * config/aarch64/iterators.md (SVE_INT_BINARY_IMM): New code
393 iterator.
394 (sve_imm_con): Handle smax, smin, umax and umin.
395 (sve_imm_prefix): New code attribute.
396 * config/aarch64/predicates.md (aarch64_sve_vsb_immediate)
397 (aarch64_sve_vsb_operand): New predicates.
398 (aarch64_sve_mul_immediate): Rename to...
399 (aarch64_sve_vsm_immediate): ...this.
400 (aarch64_sve_mul_operand): Rename to...
401 (aarch64_sve_vsm_operand): ...this.
402 * config/aarch64/aarch64-sve.md (mul<mode>3): Generalize to...
403 (<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...this.
404 (*mul<mode>3, *post_ra_mul<mode>3): Generalize to...
405 (*<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3)
406 (*post_ra_<SVE_INT_BINARY_IMM:optab><SVE_I:mode>3): ...these and
407 add movprfx support for the immediate alternatives.
408 (<su><maxmin><mode>3, *<su><maxmin><mode>3): Delete in favor
409 of the above.
410 (*<SVE_INT_BINARY_SD:optab><SVE_SDI:mode>3): Fix incorrect predicate
411 for operand 3.
412
413 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
414
415 * config/aarch64/predicates.md (aarch64_simd_imm_one): New predicate.
416 * config/aarch64/aarch64-sve.md (*cnot<mode>): New pattern.
417 (*cond_cnot<mode>_2, *cond_cnot<mode>_any): Likewise.
418
419 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
420
421 * config/aarch64/iterators.md (SVE_INT_UNARY): Add clrsb and clz.
422 (optab, sve_int_op): Handle them.
423 * config/aarch64/aarch64-sve.md: Expand comment.
424
425 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
426
427 * config/aarch64/predicates.md (const_1_to_3_operand): New predicate.
428 * config/aarch64/aarch64-sve.md (*aarch64_adr_uxtw)
429 (*aarch64_adr<mode>_shift, *aarch64_adr_shift_uxtw): New patterns.
430
431 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
432
433 * config/aarch64/aarch64.c (aarch64_expand_sve_const_pred_eor)
434 (aarch64_expand_sve_const_pred_trn): New functions.
435 (aarch64_expand_sve_const_pred_1): Add a recurse_p parameter and
436 use the above functions when the parameter is true.
437 (aarch64_expand_sve_const_pred): Update call accordingly.
438 * config/aarch64/aarch64-sve.md (*aarch64_sve_<perm_insn><mode>):
439 Rename to...
440 (@aarch64_sve_<perm_insn><mode>): ...this.
441
442 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
443
444 * config/aarch64/aarch64-protos.h (aarch64_sve_same_pred_for_ptest_p):
445 Declare.
446 * config/aarch64/aarch64.c (aarch64_sve_same_pred_for_ptest_p)
447 (aarch64_sve_emit_int_cmp): New functions.
448 (aarch64_convert_sve_data_to_pred): Use aarch64_sve_emit_int_cmp.
449 (aarch64_sve_cmp_operand_p, aarch64_emit_sve_ptrue_op_cc): Delete.
450 (aarch64_expand_sve_vec_cmp_int): Use aarch64_sve_emit_int_cmp.
451 * config/aarch64/aarch64.md (UNSPEC_MERGE_PTRUE): Delete.
452 (UNSPEC_PRED_Z): New unspec.
453 (set_clobber_cc_nzc): Delete.
454 * config/aarch64/aarch64-sve.md: Add a block comment about
455 UNSPEC_PRED_Z.
456 (*cmp<SVE_INT_CMP:cmp_op><mode>): Rename to...
457 (@aarch64_pred_cmp<SVE_INT_CMP:cmp_op><mode>): ...this, replacing
458 the old pattern with that name. Use UNSPEC_PRED_Z instead of
459 UNSPEC_MERGE_PTRUE.
460 (*cmp<SVE_INT_CMP:cmp_op><mode>_cc): Use UNSPEC_PRED_Z instead of
461 UNSPEC_MERGE_PTRUE. Use aarch64_sve_same_pred_for_ptest_p to
462 check for compatible predicates.
463 (*cmp<cmp_op><SVE_INT_CMP:mode>_ptest): Likewise.
464 (*cmp<cmp_op><mode>_and): Match a known-ptrue UNSPEC_PRED_Z instead
465 of UNSPEC_MERGE_PTRUE. Split into the new form of predicated
466 comparisons above.
467
468 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
469
470 * config/aarch64/aarch64.md (UNSPEC_PRED_X): New unspec.
471 * config/aarch64/aarch64-sve.md: Add a section describing it.
472 (@aarch64_pred_mov<mode>, @aarch64_pred_mov<mode>)
473 (<SVE_INT_UNARY:optab><mode>2, *<SVE_INT_UNARY:optab><mode>2)
474 (aarch64_<su>abd<mode>_3, mul<SVE_I:mode>3, *mul<SVE_I:mode>3)
475 (<su>mul<mode>3_highpart, *<su>mul<mode>3_highpart)
476 (<SVE_INT_BINARY:optab><mode>3, *<SVE_INT_BINARY:optab><mode>3)
477 (*bic<mode>3, v<ASHIFT:optab><mode>3, *v<ASHIFT:optab><mode>3)
478 (<su><maxmin><mode>3, *<su><maxmin><mode>3, *madd<SVE_I:mode>)
479 (*msub<SVE_I:mode>3, *aarch64_sve_rev64<mode>)
480 (*aarch64_sve_rev32<mode>, *aarch64_sve_rev16vnx16qi): Use
481 UNSPEC_PRED_X instead of UNSPEC_MERGE_PTRUE.
482 * config/aarch64/aarch64-sve2.md (<u>avg<mode>3_floor)
483 (<u>avg<mode>3_ceil, *<sur>h<addsub><mode>): Likewise.
484 * config/aarch64/aarch64.c (aarch64_split_sve_subreg_move)
485 (aarch64_evpc_rev_local): Update accordingly.
486
487 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
488
489 * config/aarch64/iterators.md (VNx4SI_ONLY, VNx2DF_ONLY): New mode
490 iterators.
491 (SVE_BHSI, SVE_SDI): Tweak comment.
492 (SVE_HSDI): Likewise. Fix definition.
493 (SVE_SDF): New mode iterator.
494 (elem_bits): New mode attribute.
495 (SVE_COND_FCVT): New int iterator.
496 * config/aarch64/aarch64-sve.md
497 (*<SVE_COND_ICVTF:optab>v16hsf<SVE_HSDI:mode>2)
498 (*<SVE_COND_ICVTF:optab>vnx4sf<SVE_SDI:mode>2)
499 (*<SVE_COND_ICVTF:optab>vnx2df<SVE_SDI:mode>2): Merge into...
500 (*aarch64_sve_<SVE_COND_ICVTF:optab>_nontrunc<SVE_F:mode><SVE_HSDI:mode>)
501 (*aarch64_sve_<SVE_COND_ICVTF:optab>_trunc<VNx2DF_ONLY:mode><VNx4SI_ONLY:mode>):
502 ...these new patterns.
503 (*<SVE_COND_FCVTI:optab><SVE_HSDI:mode>vnx8hf2)
504 (*<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx4sf2)
505 (aarch64_sve_<SVE_COND_FCVTI:optab><SVE_SDI:mode>vnx2df2):
506 Merge into...
507 (*aarch64_sve_<SVE_COND_FCVTI:optab>_nonextend<SVE_HSDI:mode><SVE_F:mode>)
508 (aarch64_sve_<SVE_COND_FCVTI:optab>_extend<VNx4SI_ONLY:mode><VNx2DF_ONLY:mode>):
509 ...these new patterns.
510 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Update accordingly.
511 (*trunc<Vwide><SVE_SDF:mode>2): Replace with...
512 (*aarch64_sve_<SVE_COND_FCVT:optab>_trunc<SVE_SDF:mode><SVE_HSF:mode>):
513 ...this new pattern.
514 (aarch64_sve_extend<SVE_HSDF:mode><Vwide>2): Replace with...
515 (aarch64_sve_<SVE_COND_FCVT:optab>_nontrunc<SVE_HSF:mode><SVE_SDF:mode>):
516 ...this new pattern.
517 (vec_unpacks_<perm_hilo>_<mode>): Update accordingly.
518
519 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
520
521 * config/aarch64/aarch64.md (UNSPEC_FLOAT_CONVERT): Delete.
522 * config/aarch64/iterators.md (UNSPEC_COND_FCVT, UNSPEC_COND_FCVTZS)
523 (UNSPEC_COND_FCVTZU, UNSPEC_COND_SCVTF, UNSPEC_COND_UCVTF): New
524 unspecs.
525 (optab, su): Handle them.
526 (SVE_COND_FCVTI, SVE_COND_ICVTF): New int iterators.
527 * config/aarch64/aarch64-sve.md
528 (<fix_trunc_optab><SVE_F:mode><v_int_equiv>2): Replace with...
529 (<SVE_COND_FCVTI:optab><SVE_F:mode><v_int_equiv>2): ...this.
530 (*<fix_trunc_optab>v16hsf<:SVE_HSDImode>2): Replace with...
531 (*<SVE_COND_FCVTI:optab>v16hsf<SVE_F:mode>2): ...this.
532 (*<fix_trunc_optab>vnx4sf<SVE_SDI:mode>2): Replace with...
533 (*<SVE_COND_FCVTI:optab>vnx4sf<SVE_SDI:mode>2): ...this.
534 (*<fix_trunc_optab>vnx2df<SVE_SDI:mode>2): Replace with...
535 (*<SVE_COND_FCVTI:optab>vnx2df<SVE_SDI:mode>2): ...this.
536 (vec_pack_<su>fix_trunc_vnx2df): Use SVE_COND_FCVTI instead of
537 FIXUORS.
538 (<FLOATUORS:optab><v_int_equiv><SVE_F:mode>2): Replace with...
539 (<SVE_COND_ICVTF:optab><v_int_equiv><SVE_F:mode>2): ...this.
540 (*<FLOATUORS:optab><SVE_HSDI:mode>vnx8hf2): Replace with...
541 (*<SVE_COND_ICVTF:optab><SVE_HSDI:mode>vnx8hf2): ...this.
542 (*<FLOATUORS:optab><SVE_SDI:mode>vnx4sf2): Replace with...
543 (*<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx4sf2): ...this.
544 (aarch64_sve_<FLOATUORS:optab><SVE_SDI:mode>vnx2df2): Replace with...
545 (aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2): ...this.
546 (vec_unpack<su_optab>_float_<perm_hilo>_vnx4si): Pass a GP strictness
547 operand to aarch64_sve_<SVE_COND_ICVTF:optab><SVE_SDI:mode>vnx2df2.
548 (vec_pack_trunc_<SVE_HSF:Vwide>, *trunc<Vwide><SVE_HSF:mode>2)
549 (aarch64_sve_extend<mode><Vwide>2): Use UNSPEC_COND_FCVT instead
550 of UNSPEC_FLOAT_CONVERT.
551 (vec_unpacks_<perm_hilo>_<mode>): Pass a GP strictness operand to
552 aarch64_sve_extend<mode><Vwide>2.
553
554 2019-08-14 Richard Biener <rguenther@suse.de>
555
556 PR target/91154
557 * config/i386/i386-features.c
558 (dimode_scalar_chain::compute_convert_gain): Compute and dump
559 individual instruction gain. Fix reg-reg copy GRP cost. Use
560 ix86_cost->sse_op for vector instruction costs.
561
562 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
563
564 * config/aarch64/iterators.md (UNSPEC_COND_FCMUO): New unspec.
565 (cmp_op): Handle it.
566 (SVE_COND_FP_CMP): Rename to...
567 (SVE_COND_FP_CMP_I0): ...this.
568 (SVE_FP_CMP): Remove.
569 * config/aarch64/aarch64-sve.md
570 (*fcm<SVE_FP_CMP:cmp_op><SVE_F:mode>): Replace with...
571 (*fcm<SVE_COND_FP_CMP_I0:cmp_op><SVE_F:mode>): ...this new pattern,
572 using unspecs to represent the comparison.
573 (*fcmuo<SVE_F:mode>): Use UNSPEC_COND_FCMUO.
574 (*fcm<cmp_op><mode>_and_combine, *fcmuo<mode>_and_combine): Update
575 accordingly.
576 * config/aarch64/aarch64.c (aarch64_emit_sve_ptrue_op): Delete.
577 (aarch64_unspec_cond_code): Move after integer code. Handle
578 UNORDERED.
579 (aarch64_emit_sve_predicated_cond): Replace with...
580 (aarch64_emit_sve_fp_cond): ...this new function.
581 (aarch64_emit_sve_or_conds): Replace with...
582 (aarch64_emit_sve_or_fp_conds): ...this new function.
583 (aarch64_emit_sve_inverted_cond): Replace with...
584 (aarch64_emit_sve_invert_fp_cond): ...this new function.
585 (aarch64_expand_sve_vec_cmp_float): Update accordingly.
586
587 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
588
589 * config/aarch64/iterators.md (SVE_HSD): New mode iterator.
590 (V_FP_EQUIV, v_fp_equiv): Handle VNx8HI and VNx8HF.
591 * config/aarch64/aarch64-sve.md (vcond<mode><v_fp_equiv>): Use
592 SVE_HSD instead of SVE_SD.
593
594 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
595 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
596
597 * config/aarch64/iterators.md (SVE_COND_FP_BINARY_REG): New int
598 iterator.
599 (sve_pred_fp_rhs1_operand, sve_pred_fp_rhs1_operand): New int
600 attributes.
601 * config/aarch64/aarch64-sve.md (add<SVE_F:mode>3, sub<SVE_F:mode>3)
602 (mul<SVE_F:mode>3, div<SVE_F:mode>3)
603 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): Merge into...
604 (<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this new expander.
605 (*div<SVE_F:mode>3): Generalize to...
606 (*<SVE_COND_FP_BINARY:optab><SVE_F:mode>3): ...this.
607
608 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
609 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
610
611 * config/aarch64/aarch64.md (SVE_RELAXED_GP, SVE_STRICT_GP): New
612 constants.
613 * config/aarch64/predicates.md (aarch64_sve_gp_strictness): New
614 predicate.
615 * config/aarch64/aarch64-protos.h (aarch64_sve_pred_dominates_p):
616 Declare.
617 * config/aarch64/aarch64.c (aarch64_sve_pred_dominates_p): New
618 function.
619 * config/aarch64/aarch64-sve.md: Add a block comment about the
620 handling of predicated FP operations.
621 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2, add<SVE_F:mode>3)
622 (sub<SVE_F:mode>3, mul<SVE_F:mode>3, div<SVE_F:mode>3)
623 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
624 (<SVE_COND_FP_MAXMIN_PUBLIC:maxmin_uns><SVE_F:mode>3)
625 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): Add an SVE_RELAXED_GP
626 operand.
627 (cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>)
628 (cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>): Add an SVE_STRICT_GP
629 operand.
630 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2)
631 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_2)
632 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_3)
633 (*cond_<SVE_COND_FP_BINARY:optab><SVE_F:mode>_any)
634 (*fabd<SVE_F:mode>3, *div<SVE_F:mode>3)
635 (*<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3)
636 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
637 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_2)
638 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_4)
639 (*cond_<SVE_COND_FP_TERNARY:optab><SVE_F:mode>_any): Match the
640 strictness operands. Use aarch64_sve_pred_dominates_p to check
641 whether the predicate on the conditional operation is suitable
642 for merging. Split patterns into the canonical equal-predicate form.
643 (*add<SVE_F:mode>3, *sub<SVE_F:mode>3, *mul<SVE_F:mode>3): Likewise.
644 Restrict the unpredicated alternatives to SVE_RELAXED_GP.
645
646 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
647 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
648
649 * config/aarch64/aarch64-sve.md (add<mode>3, *add<mode>3)
650 (sub<mode>3, *sub<mode>3, *fabd<mode>3, mul<mode>3, *mul<mode>3)
651 (div<mode>3, *div<mode>3): Use SVE_COND_FP_* unspecs instead of
652 rtx codes.
653 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_3)
654 (*cond_<optab><mode>_any): Add the predicate to the SVE_COND_FP_*
655 unspecs.
656
657 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
658 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
659
660 * config/aarch64/aarch64-sve.md (bic<mode>3): Rename to...
661 (*bic<SVE_I:mode>3): ...this. Match the form that an SVE inverse
662 actually has, rather than relying on REG_EQUAL notes.
663 Make the insn operand order match the SVE operand order.
664 (*<nlogical><PRED_ALL:mode>3): Make the insn operand order match
665 the SVE operand order.
666
667 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
668
669 * config/aarch64/aarch64.c (aarch64_target_reg): New function.
670 (aarch64_emit_set_immediate): Likewise.
671 (aarch64_ptrue_reg): Build a VNx16BI constant and then bitcast it.
672 (aarch64_pfalse_reg): Likewise.
673 (aarch64_convert_sve_data_to_pred): New function.
674 (aarch64_sve_move_pred_via_while): Take an optional target register
675 and the required register mode.
676 (aarch64_expand_sve_const_pred_1): New function.
677 (aarch64_expand_sve_const_pred): Likewise.
678 (aarch64_expand_mov_immediate): Build an all-true predicate
679 if the significant bits of the immediate are all true. Use
680 aarch64_expand_sve_const_pred for all compile-time predicate constants.
681 (aarch64_mov_operand_p): Force predicate constants to be VNx16BI
682 before register allocation.
683 * config/aarch64/aarch64-sve.md (*vec_duplicate<mode>_reg): Use
684 a VNx16BI PTRUE when splitting the memory alternative.
685 (vec_duplicate<mode>): Update accordingly.
686 (*pred_cmp<cmp_op><mode>): Rename to...
687 (@aarch64_pred_cmp<cmp_op><mode>): ...this.
688
689 2019-08-14 Richard Sandiford <richard.sandiford@arm.com>
690
691 * config/aarch64/aarch64-protos.h (aarch64_ptrue_all): Declare.
692 * config/aarch64/aarch64.c (aarch64_ptrue_all): New function.
693 * config/aarch64/aarch64.md (UNSPEC_PTEST_PTRUE): Delete.
694 (UNSPEC_PTEST): New unspec.
695 (SVE_MAYBE_NOT_PTRUE, SVE_KNOWN_PTRUE): New constants.
696 * config/aarch64/iterators.md (data_bytes): New mode attribute.
697 * config/aarch64/predicates.md (aarch64_sve_ptrue_flag): New predicate.
698 * config/aarch64/aarch64-sve.md: Add a new section describing the
699 handling of UNSPEC_PTEST.
700 (pred_<LOGICAL:optab><PRED_ALL:mode>3): Rename to...
701 (@aarch64_pred_<LOGICAL:optab><PRED_ALL:mode>_z): ...this.
702 (ptest_ptrue<mode>): Replace with...
703 (aarch64_ptest<mode>): ...this new pattern.
704 (cbranch<mode>4): Update after above changes.
705 (*<LOGICAL:optab><PRED_ALL:mode>3_cc): Use UNSPEC_PTEST instead of
706 UNSPEC_PTEST_PTRUE.
707 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_cc): Likewise.
708 (*cmp<SVE_INT_CMP:cmp_op><SVE_I:mode>_ptest): Likewise.
709 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): Likewise.
710
711 2019-08-14 Xiong Hu Luo <luoxhu@linux.ibm.com>
712
713 PR lto/91287
714 * builtins.c (builtin_with_linkage_p): New function.
715 * builtins.h (builtin_with_linkage_p): New function.
716 * symtab.c (write_symbol): Remove redundant assert.
717 * lto-streamer-out.c (symtab_node::output_to_lto_symbol_table_p):
718 Remove FIXME and use builtin_with_linkage_p.
719
720 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
721
722 PR middle-end/91421
723 * tree-core.h (function_decl::function_code): Change type to
724 unsigned int.
725 * tree.h (DECL_FUNCTION_CODE): Rename old definition to...
726 (DECL_UNCHECKED_FUNCTION_CODE): ...this.
727 (DECL_BUILT_IN_CLASS): Make an rvalue macro only.
728 (DECL_FUNCTION_CODE): New function. Assert that the built-in class
729 is BUILT_IN_NORMAL.
730 (DECL_MD_FUNCTION_CODE, DECL_FE_FUNCTION_CODE): New functions.
731 (set_decl_built_in_function, copy_decl_built_in_function): Likewise.
732 (fndecl_built_in_p): Change the type of the "name" argument to
733 unsigned int.
734 * builtins.c (expand_builtin): Move DECL_FUNCTION_CODE use
735 after check for DECL_BUILT_IN_CLASS.
736 * cgraphclones.c (build_function_decl_skip_args): Use
737 set_decl_built_in_function.
738 * ipa-param-manipulation.c (ipa_modify_formal_parameters): Likewise.
739 * ipa-split.c (split_function): Likewise.
740 * langhooks.c (add_builtin_function_common): Likewise.
741 * omp-simd-clone.c (simd_clone_create): Likewise.
742 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
743 * config/darwin.c (darwin_init_cfstring_builtins): Likewise.
744 (darwin_fold_builtin): Use DECL_MD_FUNCTION_CODE instead of
745 DECL_FUNCTION_CODE.
746 * fold-const.c (operand_equal_p): Compare DECL_UNCHECKED_FUNCTION_CODE
747 instead of DECL_FUNCTION_CODE.
748 * lto-streamer-out.c (hash_tree): Use DECL_UNCHECKED_FUNCTION_CODE
749 instead of DECL_FUNCTION_CODE.
750 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
751 * print-tree.c (print_node): Use DECL_MD_FUNCTION_CODE when
752 printing DECL_BUILT_IN_MD. Handle DECL_BUILT_IN_FRONTEND.
753 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin)
754 (aarch64_fold_builtin, aarch64_gimple_fold_builtin): Use
755 DECL_MD_FUNCTION_CODE instead of DECL_FUNCTION_CODE.
756 * config/aarch64/aarch64.c (aarch64_builtin_reciprocal): Likewise.
757 * config/alpha/alpha.c (alpha_expand_builtin, alpha_fold_builtin):
758 (alpha_gimple_fold_builtin): Likewise.
759 * config/arc/arc.c (arc_expand_builtin): Likewise.
760 * config/arm/arm-builtins.c (arm_expand_builtin): Likewise.
761 * config/avr/avr-c.c (avr_resolve_overloaded_builtin): Likewise.
762 * config/avr/avr.c (avr_expand_builtin, avr_fold_builtin): Likewise.
763 * config/bfin/bfin.c (bfin_expand_builtin): Likewise.
764 * config/c6x/c6x.c (c6x_expand_builtin): Likewise.
765 * config/frv/frv.c (frv_expand_builtin): Likewise.
766 * config/gcn/gcn.c (gcn_expand_builtin_1): Likewise.
767 (gcn_expand_builtin): Likewise.
768 * config/i386/i386-builtins.c (ix86_builtin_reciprocal): Likewise.
769 (fold_builtin_cpu): Likewise.
770 * config/i386/i386-expand.c (ix86_expand_builtin): Likewise.
771 * config/i386/i386.c (ix86_fold_builtin): Likewise.
772 (ix86_gimple_fold_builtin): Likewise.
773 * config/ia64/ia64.c (ia64_fold_builtin): Likewise.
774 (ia64_expand_builtin): Likewise.
775 * config/iq2000/iq2000.c (iq2000_expand_builtin): Likewise.
776 * config/mips/mips.c (mips_expand_builtin): Likewise.
777 * config/msp430/msp430.c (msp430_expand_builtin): Likewise.
778 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
779 * config/nios2/nios2.c (nios2_expand_builtin): Likewise.
780 * config/nvptx/nvptx.c (nvptx_expand_builtin): Likewise.
781 * config/pa/pa.c (pa_expand_builtin): Likewise.
782 * config/pru/pru.c (pru_expand_builtin): Likewise.
783 * config/riscv/riscv-builtins.c (riscv_expand_builtin): Likewise.
784 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
785 Likewise.
786 * config/rs6000/rs6000-call.c (htm_expand_builtin): Likewise.
787 (altivec_expand_dst_builtin, altivec_expand_builtin): Likewise.
788 (rs6000_gimple_fold_builtin, rs6000_expand_builtin): Likewise.
789 * config/rs6000/rs6000.c (rs6000_builtin_md_vectorized_function)
790 (rs6000_builtin_reciprocal): Likewise.
791 * config/rx/rx.c (rx_expand_builtin): Likewise.
792 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
793 * config/s390/s390.c (s390_expand_builtin): Likewise.
794 * config/sh/sh.c (sh_expand_builtin): Likewise.
795 * config/sparc/sparc.c (sparc_expand_builtin): Likewise.
796 (sparc_fold_builtin): Likewise.
797 * config/spu/spu-c.c (spu_resolve_overloaded_builtin): Likewise.
798 * config/spu/spu.c (spu_expand_builtin): Likewise.
799 * config/stormy16/stormy16.c (xstormy16_expand_builtin): Likewise.
800 * config/tilegx/tilegx.c (tilegx_expand_builtin): Likewise.
801 * config/tilepro/tilepro.c (tilepro_expand_builtin): Likewise.
802 * config/xtensa/xtensa.c (xtensa_fold_builtin): Likewise.
803 (xtensa_expand_builtin): Likewise.
804
805 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
806
807 PR middle-end/91421
808 * attribs.c (decl_attributes): Check the DECL_BUILT_IN_CLASS
809 before the DECL_FUNCTION_CODE.
810 * calls.c (maybe_warn_alloc_args_overflow): Use fndecl_built_in_p
811 to check for a BUILT_IN_ALLOCA call.
812 * ipa-cp.c (ipa_get_indirect_edge_target_1): Likewise for
813 BUILT_IN_UNREACHABLE. Don't check for a FUNCTION_TYPE.
814 * ipa-devirt.c (possible_polymorphic_call_target_p): Likewise.
815 * ipa-prop.c (try_make_edge_direct_virtual_call): Likewise.
816 * gimple-ssa-isolate-paths.c (is_addr_local): Check specifically
817 for BUILT_IN_NORMAL functions.
818 * trans-mem.c (expand_block_edges): Use gimple_call_builtin_p to
819 test for BUILT_IN_TM_ABORT.
820 * tree-ssa-ccp.c (optimize_stack_restore): Use fndecl_built_in_p
821 to check for a BUILT_IN_STACK_RESTORE call.
822 (optimize_stdarg_builtin): Remove redundant check for GIMPLE_CALL.
823 * tree-ssa-threadedge.c
824 (record_temporary_equivalences_from_stmts_at_dest): Check for a
825 BUILT_IN_NORMAL decl before checking its DECL_FUNCTION_CODE.
826 * tree-vect-patterns.c (vect_recog_pow_pattern): Use a positive
827 test for a BUILT_IN_NORMAL call instead of a negative test for
828 an internal function call.
829
830 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
831
832 * tree.h (build_vector_a_then_b): Declare.
833 * tree.c (build_vector_a_then_b): New function.
834 * fold-const-call.c (fold_while_ult): Likewise.
835 (fold_const_call): Use it to handle IFN_WHILE_ULT.
836 * config/aarch64/aarch64-protos.h (AARCH64_FOR_SVPATTERN): New macro.
837 (aarch64_svpattern): New enum.
838 * config/aarch64/aarch64-sve.md (mov<PRED_ALL:mode>): Pass
839 constants through aarch64_expand_mov_immediate.
840 (*aarch64_sve_mov<PRED_ALL:mode>): Use aarch64_mov_operand rather
841 than general_operand as the predicate for operand 1.
842 (while_ult<GPI:mode><PRED_ALL:mode>): Add a '@' marker.
843 * config/aarch64/aarch64.c (simd_immediate_info::PTRUE): New
844 insn_type.
845 (simd_immediate_info::simd_immediate_info): New overload that
846 takes a scalar_int_mode and an svpattern.
847 (simd_immediate_info::u): Add a "pattern" field.
848 (svpattern_token): New function.
849 (aarch64_get_sve_pred_bits, aarch64_widest_sve_pred_elt_size)
850 (aarch64_partial_ptrue_length, aarch64_svpattern_for_vl)
851 (aarch64_sve_move_pred_via_while): New functions.
852 (aarch64_expand_mov_immediate): Try using
853 aarch64_sve_move_pred_via_while for predicates that contain N ones
854 followed by M zeros but that do not correspond to a VLnnn pattern.
855 (aarch64_sve_pred_valid_immediate): New function.
856 (aarch64_simd_valid_immediate): Use it instead of dealing directly
857 with PTRUE and PFALSE.
858 (aarch64_output_sve_mov_immediate): Handle new simd_immediate_info
859 forms.
860
861 2019-08-13 Iain Sandoe <iain@sandoe.co.uk>
862
863 * config/darwin.c (machopic_indirect_call_target): Rename symbol stub
864 flag.
865 (darwin_override_options): Likewise.
866 * config/darwin.h: Likewise.
867 * config/darwin.opt: Likewise.
868 * config/i386/i386.c (output_pic_addr_const): Likewise.
869 * config/rs6000/darwin.h: Likewise.
870 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Likewise.
871 * config/i386/darwin.h (TARGET_MACHO_PICSYM_STUBS): Rename to ...
872 ... this TARGET_MACHO_SYMBOL_STUBS.
873 (FUNCTION_PROFILER):Likewise.
874 * config/i386/i386.h: Likewise.
875
876 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
877
878 * config/i386/i386-expand.c (ix86_expand_vector_extract)
879 <case E_V2SImode>: Use vec_extr path for
880 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
881 <case E_V8QImode>: Ditto.
882 * config/i386/mmx.md (*mmx_pextrw_zext): Rename from mmx_pextrw.
883 Use SWI48 mode iterator. Use %k to output operand 0.
884 (*mmx_pextrw): New insn pattern.
885 (*mmx_pextrb): Ditto.
886 (*mmx_pextrb_zext): Ditto.
887
888 2019-08-13 Jonathan Wakely <jwakely@redhat.com>
889
890 * target.def (libc_has_function, libc_has_fast_function): Improve
891 documentation strings.
892 * doc/tm.texi: Regenerate.
893
894 2019-08-13 Caroline Tice <cmtice@google.com>
895
896 PR other/91396
897 * config/gnu-user.h (GNU_USER_TARGET_ENDFILE_SPEC): Only add the
898 vtv_end.o or vtv_end_preinit.o files if !static.
899
900 2019-08-13 Olivier Hainque <hainque@adacore.com>
901
902 * rtl.h (tablejump_casesi_pattern): Move declaration to proper spot.
903
904 2019-08-13 Olivier Hainque <hainque@adacore.com>
905
906 * rtlanal.c (tablejump_casesi_pattern): New function, to
907 determine if a tablejump insn is a casesi dispatcher. Extracted
908 from patch_jump_insn.
909 * rtl.h (tablejump_casesi_pattern): Declare.
910 * cfgrtl.c (patch_jump_insn): Use it.
911 * dwarf2cfi.c (create_trace_edges): Use it.
912
913 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
914
915 PR target/81800
916 * gcc/config/aarch64/aarch64.md (lrint): Disable lrint pattern if GPF
917 operand is larger than a long int.
918
919 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
920
921 * machmode.h (opt_mode::else_mode): New function.
922 (opt_mode::else_blk): Use it.
923 * config/aarch64/aarch64-protos.h (aarch64_vq_mode): Declare.
924 (aarch64_full_sve_mode, aarch64_sve_ld1rq_operand_p): Likewise.
925 (aarch64_gen_stepped_int_parallel): Likewise.
926 (aarch64_stepped_int_parallel_p): Likewise.
927 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
928 argument.
929 * config/aarch64/aarch64.c
930 (aarch64_expand_sve_widened_duplicate): Delete.
931 (aarch64_expand_sve_dupq, aarch64_expand_sve_ld1rq): New functions.
932 (aarch64_expand_sve_const_vector): Rewrite to handle more cases.
933 (aarch64_expand_mov_immediate): Remove the optional gen_vec_duplicate
934 argument. Use early returns in the !CONST_INT_P handling.
935 Pass all SVE data vectors to aarch64_expand_sve_const_vector rather
936 than handling some inline.
937 (aarch64_full_sve_mode, aarch64_vq_mode): New functions, split out
938 from...
939 (aarch64_simd_container_mode): ...here.
940 (aarch64_gen_stepped_int_parallel, aarch64_stepped_int_parallel_p)
941 (aarch64_sve_ld1rq_operand_p): New functions.
942 * config/aarch64/predicates.md (descending_int_parallel)
943 (aarch64_sve_ld1rq_operand): New predicates.
944 * config/aarch64/constraints.md (UtQ): New constraint.
945 * config/aarch64/aarch64.md (UNSPEC_REINTERPRET): New unspec.
946 * config/aarch64/aarch64-sve.md (mov<SVE_ALL:mode>): Remove the
947 gen_vec_duplicate from call to aarch64_expand_mov_immediate.
948 (@aarch64_sve_reinterpret<mode>): New expander.
949 (*aarch64_sve_reinterpret<mode>): New pattern.
950 (@aarch64_vec_duplicate_vq<mode>_le): New pattern.
951 (@aarch64_vec_duplicate_vq<mode>_be): Likewise.
952 (*sve_ld1rq<Vesize>): Replace with...
953 (@aarch64_sve_ld1rq<mode>): ...this new pattern.
954
955 2019-08-13 Wilco Dijkstra <wdijkstr@arm.com>
956
957 * config/aarch64/aarch64.c (generic_tunings): Set function alignment to
958 16:12.
959
960 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
961
962 * config/msp430/driver-msp430.c (msp430_set_driver_var): New.
963 * config/msp430/msp430-devices.c (canonicalize_path_dirsep): New.
964 (msp430_check_path_for_devices): New.
965 (parse_devices_csv_1): New.
966 (parse_devices_csv): New.
967 (msp430_extract_mcu_data): Try to find devices.csv and search for the
968 MCU data in devices.csv before using the hard-coded data.
969 Warn if devices.csv isn't found and the MCU wasn't found in the
970 hard-coded data either.
971 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Call
972 msp430_set_driver_var for -mno-warn-devices-csv and -mdevices-csv-loc.
973 Search for devices.csv on -I and -L paths.
974 (EXTRA_SPEC_FUNCTIONS): Add msp430_check_path_for_devices and
975 msp430_set_driver_var.
976 * config/msp430/msp430.opt: Add -mwarn-devices-csv and
977 -mdevices-csv-loc=.
978 * doc/invoke.texi (-mmcu): Document that -I and -L paths are
979 searched for devices.csv.
980 (mwarn-devices-csv): Document option.
981
982 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
983
984 * config/aarch64/aarch64-protos.h (aarch64_output_ptrue): Delete.
985 * config/aarch64/aarch64-sve.md (*aarch64_sve_mov<PRED_ALL:mode>):
986 Use a single Dn alternative instead of separate Dz and Dm
987 alternatives. Use aarch64_output_sve_move_immediate.
988 * config/aarch64/aarch64.c (aarch64_sve_element_int_mode): New
989 function.
990 (aarch64_simd_valid_immediate): Fill in the simd_immediate_info
991 for predicates too.
992 (aarch64_output_sve_mov_immediate): Handle predicate modes.
993 (aarch64_output_ptrue): Delete.
994
995 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
996
997 * config/aarch64/aarch64.c (simd_immediate_info::insn_type): Add
998 INDEX.
999 (simd_immediate_info::value, simd_immediate_info::step)
1000 (simd_immediate_info::modifier, simd_immediate_info::shift): Replace
1001 with...
1002 (simd_immediate_info::u): ...this new union.
1003 (simd_immediate_info::simd_immediate_info): Update accordingly.
1004 (aarch64_output_simd_mov_immediate): Likewise.
1005 (aarch64_output_sve_mov_immediate): Likewise.
1006
1007 2019-08-13 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1008
1009 * config.gcc (msp430*-*-*): Add msp430-devices.o to extra_objs and
1010 extra_gcc_objs.
1011 * config/msp430/driver-msp430.c: Remove msp430_mcu_data.
1012 (msp430_select_cpu): New spec function.
1013 (msp430_select_hwmult_lib): Use msp430_extract_mcu_data to extract
1014 MCU data.
1015 * config/msp430/msp430-devices.c: New file.
1016 * config/msp430/msp430-devices.h: New file.
1017 * config/msp430/msp430.c: Remove msp430_mcu_data.
1018 (msp430_option_override): Use msp430_extract_mcu_data to extract
1019 MCU data.
1020 (msp430_use_f5_series_hwmult): Likewise.
1021 (use_32bit_hwmult): Likewise.
1022 (msp430_no_hwmult): Likewise.
1023 * config/msp430/msp430.h (ASM_SPEC): Don't pass -mmcu to the
1024 assembler.
1025 (DRIVER_SELF_SPECS): Call msp430_select_cpu if -mmcu is used without
1026 and -mcpu option.
1027 (EXTRA_SPEC_FUNCTIONS): Add msp430_select_cpu.
1028 * config/msp430/t-msp430: Add rule to build msp430-devices.o.
1029 Remove hard-coded MCU multilib data.
1030
1031 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1032
1033 * config/aarch64/aarch64.c (aarch64_classify_vector_mode): Switch
1034 based on the mode instead of testing properties of it.
1035
1036 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1037
1038 * doc/md.texi: Document the x and y constraints for AArch64.
1039 * config/aarch64/aarch64.h (FP_LO8_REGNUM_P): New macro.
1040 (FP_LO8_REGS): New reg_class.
1041 (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add an entry for FP_LO8_REGS.
1042 * config/aarch64/aarch64.c (aarch64_hard_regno_nregs)
1043 (aarch64_regno_regclass, aarch64_class_max_nregs): Handle FP_LO8_REGS.
1044 * config/aarch64/predicates.md (aarch64_simd_register): Use
1045 FP_REGNUM_P instead of checking the classes manually.
1046 * config/aarch64/constraints.md (y): New constraint.
1047
1048 2019-08-13 Richard Sandiford <richard.sandiford@arm.com>
1049
1050 * config/aarch64/iterators.md (perm_insn): Include the "1"/"2" suffix.
1051 (perm_hilo): Remove UNSPEC_ZIP*, UNSEPC_TRN* and UNSPEC_UZP*.
1052 * config/aarch64/aarch64-simd.md
1053 (aarch64_<PERMUTE:perm_insn><PERMUTE:perm_hilo><mode>): Rename to..
1054 (aarch64_<PERMUTE:perm_insn><mode>): ...this and remove perm_hilo
1055 from the asm template.
1056 * config/aarch64/aarch64-sve.md
1057 (aarch64_<perm_insn><perm_hilo><PRED_ALL:mode>): Rename to..
1058 (aarch64_<perm_insn><PRED_ALL:mode>): ...this and remove perm_hilo
1059 from the asm template.
1060 (aarch64_<perm_insn><perm_hilo><SVE_ALL:mode>): Rename to..
1061 (aarch64_<perm_insn><SVE_ALL:mode>): ...this and remove perm_hilo
1062 from the asm template.
1063 * config/aarch64/aarch64-simd-builtins.def: Update comment.
1064
1065 2019-08-13 Martin Liska <mliska@suse.cz>
1066
1067 * value-prof.c (gimple_ic_transform): Add new line.
1068 Print details with MSG_NOTE.
1069
1070 2019-08-13 Martin Liska <mliska@suse.cz>
1071
1072 * doc/invoke.texi: Document automatic detection of jobserver.
1073 * lto-wrapper.c (run_gcc): Detect jobserver always.
1074
1075 2019-08-13 Uroš Bizjak <ubizjak@gmail.com>
1076
1077 * config/i386/i386-expand.c (ix86_expand_vector_set)
1078 <case E_V2SImode>: Use vec_merge path for
1079 TARGET_MMX_WITH_SSE && TARGET_SSE4_1.
1080 <case E_V8QImode>: Ditto.
1081 * config/i386/mmx.md (*mmx_pinsrd): New insn pattern.
1082 (*mmx_pinsrb): Ditto.
1083
1084 2019-08-12 Jakub Jelinek <jakub@redhat.com>
1085
1086 PR target/83250
1087 PR target/91340
1088 * config/i386/avxintrin.h (_mm256_zextpd128_pd256,
1089 _mm256_zextps128_ps256, _mm256_zextsi128_si256): New intrinsics.
1090 * config/i386/avx512fintrin.h (_mm512_zextpd128_pd512,
1091 _mm512_zextps128_ps512, _mm512_zextsi128_si512, _mm512_zextpd256_pd512,
1092 _mm512_zextps256_ps512, _mm512_zextsi256_si512): Likewise.
1093
1094 2019-08-12 Richard Biener <rguenther@suse.de>
1095
1096 PR lto/91375
1097 * tree.c (free_lang_data_in_type): Do not free TYPE_BINFO dependent on
1098 flag_devirtualize.
1099
1100 2019-08-12 Richard Biener <rguenther@suse.de>
1101
1102 PR driver/91130
1103 * lto-wrapper.c (get_options_from_collect_gcc_options): Remove
1104 lang_mask option, always use CL_DRIVER.
1105 (get_options_from_collect_gcc_options): Adjust.
1106 (find_and_merge_options): Likewise.
1107 (run_gcc): Likewise.
1108
1109 2019-08-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1110
1111 * ipa-predicate.c (add_condition): Restore inverted test.
1112
1113 2019-08-10 Jakub Jelinek <jakub@redhat.com>
1114
1115 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_DEVICE_TYPE.
1116 (enum omp_clause_device_type_kind): New enum.
1117 (struct tree_omp_clause): Add subcode.device_type_kind.
1118 * tree.h (OMP_CLAUSE_DEVICE_TYPE_KIND): Define.
1119 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
1120 for device_type clause.
1121 (walk_tree_1): Handle OMP_CLAUSE_DEVICE_TYPE.
1122 * tree-pretty-print.c (dump_omp_clause): Likewise.
1123
1124 PR target/91408
1125 * config/i386/mmx.md (usadv8qi): Use register_operand instead of
1126 vector_operand.
1127
1128 2019-09-09 Vladimir Makarov <vmakarov@redhat.com>
1129
1130 * reload1.c (finish_spills): Do not check ira_conflicts_p when
1131 handling spilled pseudos.
1132
1133 2019-09-09 Richard Earnshaw <rearnsha@arm.com>
1134
1135 PR target/91386
1136 * config/aarch64/aarch64.c (aarch64_gen_adjusted_ldpstp): Use copy_rtx
1137 to preserve the contents of the original insns.
1138
1139 2019-08-09 Richard Earnshaw <rearnsha@arm.com>
1140
1141 * config/arm/arm.md (addsi3_compare_op1): Add 16-bit thumb-2 variants.
1142 (addsi3_compare_op2): Likewise.
1143
1144 2019-08-09 Martin Liska <mliska@suse.cz>
1145
1146 * alias.c (alias_ptr_types_compatible_p): Strengten
1147 type comparison in LTO mode.
1148
1149 2019-08-09 Richard Sandiford <richard.sandiford@arm.com>
1150
1151 PR middle-end/90313
1152 * tree-tailcall.c (find_tail_calls): Reject calls that might
1153 read from an escaped RESULT_DECL.
1154
1155 2019-08-09 Martin Liska <mliska@suse.cz>
1156
1157 * doc/invoke.texi: Document the option value.
1158 * lto-wrapper.c (run_gcc): Set auto_parallel
1159 only with -flto=auto.
1160
1161 2019-08-09 Martin Liska <mliska@suse.cz>
1162
1163 * opts.c (common_handle_option): Error for an invalid argument
1164 to -flto=.
1165
1166 2019-08-09 Martin Liska <mliska@suse.cz>
1167
1168 * ipa-icf.c (sem_function::merge): Define AUTO_DUMP_SCOPE and
1169 use dump_printf to report optimization.
1170 (sem_variable::merge): Likwise.
1171 (sem_item_optimizer::merge_classes): Use dump_printf to report
1172 ICF hits.
1173
1174 2019-08-09 Martin Liska <mliska@suse.cz>
1175
1176 * value-prof.c (gimple_divmod_fixed_value_transform):
1177 Use dump_printf_loc.
1178 (gimple_mod_pow2_value_transform): Likewise.
1179 (gimple_mod_subtract_transform): Likewise.
1180 (init_node_map): Likewise.
1181 (gimple_ic_transform): Likewise.
1182 (gimple_stringops_transform): Likewise.
1183
1184 2019-08-08 Mihailo Stojanovic <mistojanovic@wavecomp.com>
1185
1186 * doc/extend.texi: Add const qualifier to ld intrinsics.
1187
1188 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
1189
1190 * config/rs6000/dfp.md (D64_D128): Rename to ...
1191 (DDTD): ... this, throughout.
1192 (dfp_suffix): Rename to ...
1193 (q): ... this, throughout.
1194
1195 2019-08-08 Segher Boessenkool <segher@kernel.crashing.org>
1196
1197 * config/rs6000/dfp.md (D64_D128): Move earlier in the file.
1198 (dfp_suffix): Ditto.
1199 (adddd3, addtd3): Merge to ...
1200 (add<mode>3 for D64_D128): ... this.
1201 (subdd3, subtd3): Merge to ...
1202 (sub<mode>3 for D64_D128): ... this.
1203 (muldd3, multd3): Merge to ...
1204 (mul<mode>3 for D64_D128): ... this.
1205 (divdd3, divtd3): Merge to ...
1206 (div<mode>3 for D64_D128): ... this.
1207 (*cmpdd_internal1, *cmptd_internal1): Merge to ...
1208 (*cmp<mode>_internal1 for D64_D128): ... this.
1209 (ftruncdd2, ftrunctd2): Merge to ...
1210 (ftrunc<mode>2 for D64_D128): ... this.
1211 (fixdddi2, fixtddi2): Merge to ...
1212 (fix<mode>di2 for D64_D128): ... this.
1213
1214 2019-08-08 Jim Wilson <jimw@sifive.com>
1215
1216 PR target/91229
1217 * config/riscv/riscv.c (riscv_flatten_aggregate_field): New arg
1218 ignore_zero_width_bit_field_p. Skip zero size bitfields when true.
1219 Pass into recursive call.
1220 (riscv_flatten_aggregate_argument): New arg. Pass to
1221 riscv_flatten_aggregate_field.
1222 (riscv_pass_aggregate_in_fpr_pair_p): New local warned. Call
1223 riscv_flatten_aggregate_argument twice, with false and true as last
1224 arg. Process result twice. Compare results and warn if different.
1225 (riscv_pass_aggregate_in_fpr_and_gpr_p): Likewise.
1226
1227 2019-08-08 Martin Liska <mliska@suse.cz>
1228
1229 PR bootstrap/91352
1230 * gcc.c (driver::detect_jobserver): Use is_valid_fd.
1231 * lto-wrapper.c (jobserver_active_p): Likewise.
1232
1233 2019-08-08 Martin Liska <mliska@suse.cz>
1234
1235 * cgraphclones.c (set_new_clone_decl_and_node_flags): Drop
1236 IS_OPERATOR_NEW and IS_OPERATOR_DELETE.
1237 (create_version_clone_with_body): Likewise.
1238
1239 2019-08-08 Jakub Jelinek <jakub@redhat.com>
1240
1241 * gimplify.c (omp_add_variable): Use GOVD_PRIVATE | GOVD_EXPLICIT
1242 for VLA helper variables on target data even if not GOVD_FIRSTPRIVATE.
1243 (gimplify_scan_omp_clauses): For OMP_CLAUSE_USE_DEVICE_* use just
1244 GOVD_EXPLICIT flags.
1245 (gimplify_omp_workshare): For OMP_TARGET_DATA move all
1246 OMP_CLAUSE_USE_DEVICE_* clauses to the end of clauses chain.
1247 * omp-low.c (scan_sharing_clauses): For OMP_CLAUSE_USE_DEVICE_*
1248 call install_var_field with mask 11 instead of 3.
1249 (lower_omp_target): For OMP_CLAUSE_USE_DEVICE_* use pass
1250 (splay_tree_key) &DECL_UID (var) to build_sender_ref instead of var.
1251
1252 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1253
1254 * config/aarch64/constraints.md (Z): Handle floating-point zeros too.
1255 * config/aarch64/predicates.md (aarch64_reg_or_zero): Likewise.
1256
1257 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1258
1259 * config/aarch64/aarch64-sve.md (vec_shl_insert_<mode>): Add
1260 MOVPRFX alternatives. Make the GPR alternatives more expensive
1261 than the FPR ones.
1262
1263 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1264
1265 * config/aarch64/aarch64-sve.md (fold_extract_last_<mode>):
1266 Disparage the GPR alternative relative to the FPR one.
1267 Fix handling of 8-bit and 16-bit FPR values.
1268
1269 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1270
1271 * config/aarch64/iterators.md (BITWISEV): Delete.
1272 (SVE_INT_REDUCTION, SVE_FP_REDUCTION): New int iterators.
1273 (optab): Handle UNSPEC_UMAXV, UNSPEC_UMINV, UNSPEC_SMAXV,
1274 UNSPEC_SMINV, UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
1275 UNSPEC_FMINNMV, UNSPEC_FMINV.
1276 (bit_reduc_op): Delete.
1277 (sve_int_op): New int attribute.
1278 (sve_fp_op): Handle UNSPEC_FADDV, UNSPEC_FMAXNMV, UNSPEC_FMAXV,
1279 UNSPEC_FMINNMV, UNSPEC_FMINV.
1280 * config/aarch64/aarch64-sve.md
1281 (reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
1282 (*reduc_<MAXMINV:maxmin_uns>_scal_<SVE_I:mode>)
1283 (reduc_<BITWISEV:optab>_scal_<SVE_I:mode>)
1284 (*reduc_<BITWISEV:optab>_scal_<SVE_I:mode>): Merge into...
1285 (reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>)
1286 (*reduc_<SVE_INT_REDUCTION:optab>_scal_<SVE_I:mode>): ...these
1287 new patterns.
1288 (reduc_plus_scal_<SVE_F:mode>, *reduc_plus_scal_<SVE_I:mode>)
1289 (reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>)
1290 (*reduc_<FMAXMINV:optab>_scal_<SVE_F:mode>): Merge into...
1291 (reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>)
1292 (*reduc_<SVE_FP_REDUCTION:optab>_scal_<SVE_F:mode>): ...these
1293 new patterns.
1294
1295 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1296
1297 * config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
1298 (fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
1299 (fms<mode>4, *fms<mode>4): Replace with...
1300 (<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
1301 (*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
1302 Use unspecs instead of rtx codes.
1303 (cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
1304 (*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.
1305
1306 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1307
1308 * config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
1309 int iterator.
1310 (maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
1311 * config/aarch64/aarch64-sve.md
1312 (<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
1313 (<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
1314 use a single unspec for the rhs.
1315 (*<su><maxmin><mode>3): Delete.
1316 (<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.
1317
1318 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1319
1320 * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG)
1321 (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM)
1322 (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX)
1323 (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs.
1324 (optab, sve_fp_op): Handle them.
1325 (SVE_FP_UNARY): Delete.
1326 (optab): Remove sqrt entry.
1327 (sve_fp_op): Remove neg, abs and sqrt entries.
1328 (SVE_COND_FP_UNARY): New int iterator.
1329 * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2)
1330 (*<frint_pattern><mode>2): Delete.
1331 (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
1332 (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
1333 (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with...
1334 (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this.
1335
1336 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1337
1338 * config/aarch64/aarch64-sve.md (*pred_fold_left_plus_<mode>): Delete.
1339
1340 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1341
1342 * config/aarch64/iterators.md (UNSPEC_COND_ADD): Rename to...
1343 (UNSPEC_COND_FADD): ...this.
1344 (UNSPEC_COND_SUB): Rename to...
1345 (UNSPEC_COND_FSUB): ...this.
1346 (UNSPEC_COND_MUL): Rename to...
1347 (UNSPEC_COND_FMUL): ...this.
1348 (UNSPEC_COND_DIV): Rename to...
1349 (UNSPEC_COND_FDIV): ...this.
1350 (UNSPEC_COND_MAX): Rename to...
1351 (UNSPEC_COND_FMAXNM): ...this.
1352 (UNSPEC_COND_MIN): Rename to...
1353 (UNSPEC_COND_FMINNM): ...this.
1354 (UNSPEC_COND_LT): Rename to...
1355 (UNSPEC_COND_FCMLT): ...this.
1356 (UNSPEC_COND_LE): Rename to...
1357 (UNSPEC_COND_FCMLE): ...this.
1358 (UNSPEC_COND_EQ): Rename to...
1359 (UNSPEC_COND_FCMEQ): ...this.
1360 (UNSPEC_COND_NE): Rename to...
1361 (UNSPEC_COND_FCMNE): ...this.
1362 (UNSPEC_COND_GE): Rename to...
1363 (UNSPEC_COND_FCMGE): ...this.
1364 (UNSPEC_COND_GT): Rename to...
1365 (UNSPEC_COND_FCMGT): ...this.
1366 (SVE_COND_FP_BINARY, SVE_COND_FP_CMP, optab, cmp_op, sve_fp_op)
1367 (sve_fp_op_rev): Update accordingly.
1368 * config/aarch64/aarch64.c (aarch64_unspec_cond_code): Likewise.
1369
1370 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1371
1372 * config/aarch64/aarch64-sve.md: Reorganize contents and add
1373 banner comments.
1374 * config/aarch64/check-sve-md.awk: New file.
1375 * config/aarch64/t-aarch64 (s-check-sve-md): New rule.
1376 (insn-conditions.md): Depend on it.
1377
1378 2019-08-07 Uroš Bizjak <ubizjak@gmail.com>
1379
1380 PR target/91385
1381 * config/i386/sse.md (*negsi2_1_zext): Simplify insn pattern.
1382 (*negsi2_cmpz_zext): Ditto.
1383
1384 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1385
1386 * config/aarch64/iterators.md (commutative): Remove.
1387
1388 2019-08-07 Richard Earnshaw <rearnsha@arm.com>
1389
1390 PR driver/91130
1391 * lto-wrapper.c (find_and_merge_options): Use CL_DRIVER when
1392 processing COLLECT_GCC_OPTIONS.
1393 (run_gcc): Likewise.
1394
1395 2019-08-07 Bernd Edlinger <bernd.edlinger@hotmail.de>
1396
1397 PR tree-optimization/91109
1398 * lra-remat.c (update_scratch_ops): Remove assignment of the
1399 hard register.
1400
1401 2019-08-07 Richard Sandiford <richard.sandiford@arm.com>
1402
1403 * data-streamer.h (streamer_write_poly_uint64): Declare.
1404 (streamer_read_poly_uint64): Likewise.
1405 * data-streamer-in.c (streamer_read_poly_uint64): New function.
1406 * data-streamer-out.c (streamer_write_poly_uint64): Likewise.
1407 * ipa-predicate.h (condition::size): Turn into a poly_int64.
1408 (add_condition): Take a poly_int64 size.
1409 * ipa-predicate.c (add_condition): Likewise.
1410 * ipa-prop.h (ipa_load_from_parm_agg): Take a poly_int64 size pointer.
1411 * ipa-prop.c (ipa_load_from_parm_agg): Likewise.
1412 (ipcp_modif_dom_walker::before_dom_children): Update accordingly.
1413 * ipa-fnsummary.c (evaluate_conditions_for_known_args): Handle
1414 condition::size as a poly_int64.
1415 (unmodified_parm_1): Take a poly_int64 size pointer.
1416 (unmodified_parm): Likewise.
1417 (unmodified_parm_or_parm_agg_item): Likewise.
1418 (set_cond_stmt_execution_predicate): Update accordingly.
1419 (set_switch_stmt_execution_predicate): Likewise.
1420 (will_be_nonconstant_expr_predicate): Likewise.
1421 (will_be_nonconstant_predicate): Likewise.
1422 (inline_read_section): Stream condition::size as a poly_int.
1423 (ipa_fn_summary_write): Likewise.
1424
1425 2019-08-07 Martin Liska <mliska@suse.cz>
1426
1427 * fold-const.c (twoval_comparison_p): Replace int
1428 with bool as a return type.
1429 (simple_operand_p): Likewise.
1430 (operand_equal_p): Replace int with bool as a return type.
1431 * fold-const.h (operand_equal_p): Likewise.
1432
1433 2019-08-07 Jakub Jelinek <jakub@redhat.com>
1434
1435 * tree-core.h (enum omp_clause_code): Adjust OMP_CLAUSE_USE_DEVICE_PTR
1436 OpenMP description. Add OMP_CLAUSE_USE_DEVICE_ADDR clause.
1437 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries
1438 for OMP_CLAUSE_USE_DEVICE_ADDR clause.
1439 (walk_tree_1): Handle OMP_CLAUSE_USE_DEVICE_ADDR.
1440 * tree-pretty-print.c (dump_omp_clause): Likewise.
1441 * tree-nested.c (convert_nonlocal_omp_clauses,
1442 convert_local_omp_clauses): Likewise.
1443 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
1444 Likewise.
1445 * omp-low.c (scan_sharing_clauses, lower_omp_target): Likewise.
1446 Treat OMP_CLAUSE_USE_DEVICE_ADDR like OMP_CLAUSE_USE_DEVICE_PTR
1447 clause with array or reference to array types, no matter what type
1448 except for reference it has.
1449
1450 2019-08-07 Kewen Lin <linkw@gcc.gnu.org>
1451
1452 * config/rs6000/vector.md (vrotr<mode>3): New define_expand.
1453
1454 2019-08-07 Kito Cheng <kito.cheng@sifive.com>
1455
1456 * config/riscv/multilib-generator: (canonical_order): Add 'g'.
1457 (arch_canonicalize): Support rv32g and rv64g and fix error
1458 handling.
1459
1460 2019-08-06 Martin Liska <mliska@suse.cz>
1461
1462 * cgraph.c (cgraph_node::dump): Dump DECL_IS_OPERATOR_NEW_P
1463 and DECL_IS_OPERATOR_DELETE_P.
1464
1465 2019-08-06 Jakub Jelinek <jakub@redhat.com>
1466
1467 * tree.h (OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV): Rename to ...
1468 (OMP_CLAUSE_LASTPRIVATE_LOOP_IV): ... this. Adjust comment.
1469 * gimplify.c (gimple_add_tmp_var): In SIMD contexts, turn addressable
1470 new vars into GOVD_PRIVATE rather than GOVD_LOCAL.
1471 (gimplify_omp_for): Don't do C++ random access iterator clause
1472 adjustments on combined constructs from OMP_LOOP. For OMP_LOOP,
1473 don't predetermine the artificial iterator in case of C++ random
1474 access iterators as lastprivate, but private. For OMP_LOOP, force
1475 bind expr around simd body and force for_pre_body before the
1476 construct. Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV instead of
1477 OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV.
1478 (gimplify_omp_loop): Add firstprivate clauses on OMP_PARALLEL for
1479 diff var of C++ random access iterators. Handle
1480 OMP_CLAUSE_FIRSTPRIVATE. For OMP_CLAUSE_LASTPRIVATE_LOOP_IV, if
1481 not outermost also add OMP_CLAUSE_FIRSTPRIVATE, and in both cases
1482 clear OMP_CLAUSE_LASTPRIVATE_LOOP_IV on the lastprivate clause
1483 on the OMP_FOR and OMP_DISTRIBUTE constructs if any.
1484 * omp-low.c (lower_rec_input_clauses): For
1485 OMP_CLAUSE_LASTPRIVATE_LOOP_IV on simd copy construct the private
1486 variables instead of default constructing them.
1487 (lower_lastprivate_clauses): Use OMP_CLAUSE_LASTPRIVATE_LOOP_IV
1488 instead of OMP_CLAUSE_LASTPRIVATE_TASKLOOP_IV and move the
1489 is_taskloop_ctx check from the assert to the guarding condition.
1490
1491 2019-08-06 Kito Cheng <kito.cheng@sifive.com>
1492
1493 * config/riscv/multilib-generator: (canonical_order): New.
1494 (arch_canonicalize): Dito.
1495 Apply arch_canonicalize for alts.
1496
1497 2019-08-05 Martin Sebor <msebor@redhat.com>
1498
1499 * doc/extend.texi (Common Variable Attributes): Document alias
1500 attribute.
1501
1502 2019-08-05 Marek Polacek <polacek@redhat.com>
1503
1504 PR c++/91338 - Implement P1161R3: Deprecate a[b,c].
1505 * doc/invoke.texi: Document -Wcomma-subscript.
1506
1507 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
1508
1509 * tree-core.h (tree_function_decl): Make function_code an
1510 independent field. Group the remaining bitfields into bytes
1511 and move decl_type so that it contines to be at a byte boundary.
1512 Leave 12 bits for future expansion.
1513
1514 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
1515
1516 * gimple-fold.c (gimple_fold_mask_load_store_mem_ref)
1517 (gimple_fold_mask_load, gimple_fold_mask_store): New functions.
1518 (gimple_fold_call): Use them to fold IFN_MASK_LOAD and
1519 IFN_MASK_STORE.
1520
1521 2019-08-05 Richard Sandiford <richard.sandiford@arm.com>
1522
1523 * gimple.h (gimple_move_vops): Declare.
1524 * gimple.c (gimple_move_vops): New function
1525 * gimple-fold.c (replace_call_with_call_and_fold)
1526 (gimple_fold_builtin_memory_op, gimple_fold_builtin_memset)
1527 (gimple_fold_builtin_stpcpy, fold_builtin_atomic_compare_exchange)
1528 (gimple_fold_call): Use it.
1529 * ipa-param-manipulation.c (ipa_modify_call_arguments): Likewise.
1530 * tree-call-cdce.c (use_internal_fn): Likewise.
1531 * tree-if-conv.c (predicate_load_or_store): Likewise.
1532 * tree-ssa-ccp.c (optimize_atomic_bit_test_and): Likewise.
1533 * tree-ssa-math-opts.c (pass_cse_reciprocals::execute): Likewise.
1534 * tree-ssa-propagate.c (finish_update_gimple_call): Likewise.
1535 (update_call_from_tree): Likewise.
1536 * tree-vect-stmts.c (vectorizable_load): Likewise.
1537 * tree-vectorizer.c (adjust_simduid_builtins): Likewise.
1538
1539 2019-08-05 Martin Liska <mliska@suse.cz>
1540
1541 PR c++/91334
1542 * tree-ssa-dce.c (propagate_necessity): Handle new operators
1543 with not arguments.
1544 (eliminate_unnecessary_stmts): Likewise.
1545
1546 2019-08-05 Richard Biener <rguenther@suse.de>
1547
1548 PR middle-end/91169
1549 * fold-const.c (get_array_ctor_element_at_index): Create
1550 offset_ints according to the sign of the index type and treat
1551 that as signed if it is obviously so.
1552
1553 2019-08-05 Jakub Jelinek <jakub@redhat.com>
1554
1555 PR target/91341
1556 * config/i386/avxintrin.h (_mm256_loadu2_m128, _mm256_storeu2_m128,
1557 _mm256_loadu2_m128d, _mm256_storeu2_m128d, _mm256_loadu2_m128i,
1558 _mm256_storeu2_m128i): New function.
1559
1560 2019-08-05 Kito Cheng <kito.cheng@sifive.com>
1561
1562 * config/riscv/riscv.c (riscv_promote_function_mode): New.
1563 (TARGET_PROMOTE_FUNCTION_MODE): Use riscv_promote_function_mode.
1564
1565 2019-08-05 Alan Modra <amodra@gmail.com>
1566
1567 PR target/91349
1568 * config/rs6000/freebsd64.h (CPLUSPLUS_CPP_SPEC),
1569 (LINK_GCC_C_SEQUENCE_SPEC): Undef.
1570
1571 2019-08-04 Gerald Pfeifer <gerald@pfeifer.com>
1572
1573 * doc/install.texi (Prerequisites): Remove reference to Tcl 8.6
1574 bug that was fixed in Tcl 8.6.1.
1575
1576 2019-08-02 Michael Meissner <meissner@linux.ibm.com>
1577
1578 * config/rs6000/future.md: New file.
1579 * config/rs6000/rs6000.md: Include future.md.
1580 * config/rs6000/t-rs6000 (MD_INCLUDES): Add future.md.
1581
1582 2019-08-02 Bernd Edlinger <bernd.edlinger@hotmail.de>
1583
1584 * function.c (assign_parm_adjust_stack_rtl): Revise STRICT_ALIGNMENT
1585 check to use targetm.slow_unaligned_access instead.
1586
1587 * function.c (assign_param_data_one): Remove unused data members.
1588
1589 2019-08-02 Steve Ellcey <sellcey@marvell.com>
1590
1591 * omp-simd-clone.c (simd_clone_adjust_return_type): Remove call to
1592 build_distinct_type_copy.
1593 (simd_clone_adjust_argument_types): Ditto.
1594 (simd_clone_adjust): Call build_distinct_type_copy here.
1595 (expand_simd_clones): Ditto.
1596
1597 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
1598
1599 PR target/91201
1600 * config/i386/sse.md (*vec_extractv16qi_zext): New insn pattern.
1601
1602 2019-08-02 Alexander Monakov <amonakov@ispras.ru>
1603
1604 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Simplify casts
1605 from 'const void *'.
1606 (sort_locs_in_loop_postorder_cmp): Likewise.
1607
1608 2019-08-02 Eric Botcazou <ebotcazou@adacore.com>
1609
1610 * doc/invoke.texi (hot-bb-count-fraction): Rework description.
1611 (hot-bb-count-ws-permille): Likewise.
1612 (hot-bb-frequency-fraction): Likewise.
1613 (unlikely-bb-count-fraction): Likewise.
1614 * params.def (hot-bb-count-fraction): Rework description.
1615 (hot-bb-count-ws-permille): Likewise.
1616 (hot-bb-frequency-fraction): Likewise.
1617 (unlikely-bb-count-fraction): Likewise. Remove min and max values.
1618 * predict.c (get_hot_bb_threshold): Deal with 0 HOT_BB_COUNT_FRACTION.
1619
1620 2019-08-02 Uroš Bizjak <ubizjak@gmail.com>
1621
1622 PR target/91323
1623 * config/i386/i386-expand.c (ix86_unordered_fp_compare) <case LTGT>:
1624 Return false.
1625
1626 2019-08-02 Richard Biener <rguenther@suse.de>
1627
1628 * vec.h (vec::sort): Add gcc_qsort_r support.
1629 (vec::bsearch): Add an overload with gcc_qsort_r style callbacks.
1630 * tree-ssa-loop-im.c (sort_bbs_in_loop_postorder_cmp): Adjust
1631 to gcc_qsort_r style callback.
1632 (sort_locs_in_loop_postorder_cmp): Likewise.
1633 (analyze_memory_references): Use gcc_sort_r interfaces.
1634 (find_ref_loc_in_loop_cmp): Use new bsearch overload.
1635
1636 2019-08-02 Martin Liska <mliska@suse.cz>
1637
1638 PR lto/91313
1639 * gcc.c (driver::maybe_run_linker): Call detect_jobserver
1640 to detect working job server.
1641 (driver::detect_jobserver): Test whether jobserver
1642 is active from GCC driver. That will prevent situation where
1643 GCC is invoked from a LD plugin and the linker already uses
1644 file descriptors suggested by make. That leads to a wrong
1645 detection.
1646 * gcc.h (driver): Add detect_jobserver.
1647 * lto-wrapper.c (jobserver_active_p): Simplify sscanf by
1648 not scanning for --jobserver-auth prefix.
1649
1650 2019-08-02 Jakub Jelinek <jakub@redhat.com>
1651
1652 PR tree-optimization/91201
1653 * config/i386/i386-expand.c (ix86_expand_vector_extract): For elt == 0
1654 V16QImode extraction without sse4.1 try to use V4SImode lowpart
1655 extraction.
1656
1657 2019-08-01 Martin Sebor <msebor@redhat.com>
1658
1659 PR c++/90947
1660 * tree.c (type_initializer_zero_p): Define.
1661 * tree.h (type_initializer_zero_p): New function.
1662
1663 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
1664
1665 * cfgrtl.c (relink_block_chain): Add line returns in dump file.
1666
1667 2019-08-01 Eric Botcazou <ebotcazou@adacore.com>
1668
1669 * cgraph.h (cgraph_edge::maybe_hot_p): Tweak comment.
1670 * cgraph.c (cgraph_edge::maybe_hot_p): Likewise. Remove useless test.
1671 * predict.c (maybe_hot_count_p): Likewise.
1672 (maybe_hot_bb_p): Tweak comment.
1673 (maybe_hot_edge_p): Likewise.
1674 (probably_never_executed): Likewise. Minor tweak.
1675 (probably_never_executed_bb_p): Likewise.
1676 (unlikely_executed_edge_p): Likewise.
1677 (probably_never_executed_edge_p): Likewise.
1678 (optimize_function_for_size_p): Likewise.
1679 (optimize_function_for_speed_p): Likewise.
1680 (function_optimization_type): Likewise.
1681 (optimize_bb_for_size_p): Likewise.
1682 (optimize_bb_for_speed_p): Likewise.
1683 (bb_optimization_type): Likewise.
1684 (optimize_edge_for_size_p): Likewise.
1685 (optimize_edge_for_speed_p): Likewise.
1686 (optimize_insn_for_size_p): Likewise.
1687 (optimize_insn_for_speed_p): Likewise.
1688 (optimize_loop_for_size_p): Likewise.
1689 (optimize_loop_for_speed_p): Likewise.
1690 (optimize_loop_nest_for_speed_p): Likewise.
1691 (optimize_loop_nest_for_size_p): Likewise.
1692 (predictable_edge_p): Likewise.
1693 (handle_missing_profiles): Minor tweak.
1694
1695 2019-08-01 Michael Meissner <meissner@linux.ibm.com>
1696
1697 * config/rs6000/predicates.md (pcrel_external_address): Update
1698 comment.
1699
1700 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
1701
1702 PR target/85693
1703 * config/i386/mmx.md (usadv8qi): New expander.
1704
1705 2019-08-01 Matthew Beliveau <mbelivea@redhat.com>
1706
1707 PR c++/90590
1708 * c-warn.c (c_do_switch_warnings): Suppress warning for enumerators
1709 with reserved names that are in a system header.
1710
1711 2019-08-01 Uroš Bizjak <ubizjak@gmail.com>
1712
1713 * config/i386/mmx.md (vec_extractv2si_0): Add (r,x) alternative.
1714 (*vec_extractv2si_0_zext_sse4): New insn pattern.
1715 (*vec_extractv2si_0_zext): Ditto.
1716 (*vec_extractv2si_1): Add (rm,x) alternative.
1717 (*vec_extractv2si_1_zext): New insn pattern.
1718 (*vec_extractv2si_zext_mem): Add "TARGET_MMX || TARGET_MMX_WITH_SSE"
1719 insn constraint.
1720
1721 2019-08-01 Richard Biener <rguenther@suse.de>
1722
1723 * domwalk.c (bb_postorder): Remove static variable.
1724 (cmp_bb_postorder): Adjust.
1725 (sort_bbs_postorder): Adjust and use gcc_sort_r.
1726 (dom_walker::walk): Adjust.
1727
1728 2019-08-01 Alexander Monakov <amonakov@ispras.ru>
1729
1730 * sort.cc (sort_r_ctx): New struct.
1731 (reorder23): Make templated on context type.
1732 (reorder45): Ditto.
1733 (cmp1): Ditto. Adjust signature.
1734 (netsort): Ditto.
1735 (mergesort): Ditto.
1736 [CHECKING_P] (cmp2to3): New static function. Use it...
1737 (gcc_qsort) [CHECKING_P]: ...here.
1738 (gcc_sort_r): New function.
1739 * system.h (sort_r_cmp_fn): New function typedef.
1740 (qsort_chk): Adjust signature.
1741 (gcc_sort_r): Declare.
1742 * vec.c (qsort_chk_error): Adjust.
1743 (qsort_chk): Adjust.
1744
1745 2019-08-01 Richard Biener <rguenther@suse.de>
1746
1747 * tree-ssa-pre.c (has_abnormal_preds): Remove global var.
1748 (compute_antic): Localize it here.
1749
1750 2019-07-31 Maxim Blinov <maxim.blinov@embecosm.com>
1751
1752 * common/config/riscv/riscv-common.c: Check -march string ends
1753 with null.
1754
1755 2019-07-31 Alexander Monakov <amonakov@ispras.ru>
1756
1757 * ipa-devirt.c (type_warning_cmp): Make static.
1758 (decl_warning_cmp): Ditto.
1759
1760 2019-07-31 Peter Bergner <bergner@linux.ibm.com>
1761
1762 PR target/91050
1763 * config/rs6000/rs6000.opt (mdejagnu-cpu=): Delete option.
1764 * config/rs6000/rs6000.c (rs6000_option_override_internal): Remove
1765 use of deleted rs6000_dejagnu_cpu_index variable.
1766 * config/rs6000/rs6000.h (DRIVER_SELF_SPECS): Define.
1767 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
1768 * config/darwin.h (DRIVER_SELF_SPECS): Rename from this ...
1769 (SUBTARGET_DRIVER_SELF_SPECS): ...to this.
1770 * config/i386/i386.h (DRIVER_SELF_SPECS): Define.
1771 (SUBTARGET_DRIVER_SELF_SPECS): Likewise.
1772
1773 2019-07-31 Richard Biener <rguenther@suse.de>
1774
1775 PR tree-optimization/91280
1776 * tree-ssa-structalias.c (get_constraint_for_component_ref):
1777 Decompose MEM_REF manually for offset handling.
1778
1779 2019-07-31 Richard Biener <rguenther@suse.de>
1780
1781 PR tree-optimization/91293
1782 * tree-vect-slp.c (vect_build_slp_tree_2): Do not swap operands
1783 of reduction stmts.
1784
1785 2019-07-31 Matt Thomas <matt@3am-software.com>
1786 Nick Hudson <nick@nthcliff.demon.co.uk>
1787 Matthew Green <mrg@eterna.com.au>
1788 Maya Rashish <coypu@sdf.org>
1789
1790 * config.gcc (hppa*-*-netbsd*): New target.
1791 * config/pa/pa-netbsd.h: New file.
1792 * config/pa/pa32-netbsd.h: New file.
1793
1794 2019-07-31 Jakub Jelinek <jakub@redhat.com>
1795
1796 PR tree-optimization/91201
1797 * config/i386/mmx.md (reduc_plus_scal_v8qi): New expander.
1798
1799 2019-07-31 Andrew Stubbs <ams@codesourcery.com>
1800
1801 * config/gcn/gcn-valu.md
1802 (scatter<mode>_insn_1offset<exec_scatter>): Remove s_waitcnt.
1803 (scatter<mode>_insn_1offset_ds<exec_scatter>): Likewise.
1804 (scatter<mode>_insn_2offsets<exec_scatter>): Likewise.
1805 * config/gcn/gcn.c (gcn_md_reorg): Add delayeduse and reads to
1806 struct ilist. Add nops for delayeduse insns.
1807 * config/gcn/gcn.md (delayeduse): New attribute.
1808 (*movbi): Remove s_waitcnt from stores.
1809 (*mov<mode>_insn): Likewise.
1810 (*movti_insn): Likewise. Add delayeduse attribute.
1811 (sync_compare_and_swap<mode>_insn): Add delayeduse attribute.
1812 (atomic_store<mode>): Remove or adjust s_waitcnt.
1813
1814 2019-07-31 Richard Biener <rguenther@suse.de>
1815
1816 * vr-values.h (vr_values::swap_vr_value): New.
1817 (vr_values::free_value_range): likewise.
1818 * vr-values.c (vr_values::swap_vr_value): Implement.
1819 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::pop_value_range):
1820 Do not return a range or take a var.
1821 (evrp_range_analyzer::stack): Change back to recording a non-const
1822 value_range *.
1823 * gimple-ssa-evrp-analyze.c
1824 (evrp_range_analyzer::record_ranges_from_stmt): Free unused
1825 value-range.
1826 (evrp_range_analyzer::pop_to_marker): Adjust.
1827 (evrp_range_analyzer::push_value_range): Use new swap_vr_value.
1828 (evrp_range_analyzer::pop_value_range): Likewise. Free the
1829 no longer needed value-range.
1830
1831 2019-07-31 Martin Liska <mliska@suse.cz>
1832
1833 * tree-ssa-dce.c (propagate_necessity): Delete operator can
1834 have size and (or) alignment as 2nd and later arguments.
1835 Mark all of them as necessary.
1836
1837 2019-07-31 Richard Biener <rguenther@suse.de>
1838
1839 PR tree-optimization/91178
1840 * tree-ssa-sccvn.c (vn_reference_maybe_forwprop_address):
1841 Use tail-recursion.
1842
1843 2019-07-31 Jakub Jelinek <jakub@redhat.com>
1844
1845 PR tree-optimization/91201
1846 * config/i386/sse.md (reduc_plus_scal_v16qi): New expander.
1847 (REDUC_PLUS_MODE): Add V32QImode for TARGET_AVX and V64QImode for
1848 TARGET_AVX512F.
1849 (reduc_plus_scal_<mode>): Improve formatting by introducing
1850 a temporary.
1851
1852 2019-07-31 Sudakshina Das <sudi.das@arm.com>
1853
1854 * config/aarch64/aarch64-builtins.c (enum aarch64_builtins): Add
1855 AARCH64_TME_BUILTIN_TSTART, AARCH64_TME_BUILTIN_TCOMMIT,
1856 AARCH64_TME_BUILTIN_TTEST and AARCH64_TME_BUILTIN_TCANCEL.
1857 (aarch64_init_tme_builtins): New.
1858 (aarch64_init_builtins): Call aarch64_init_tme_builtins.
1859 (aarch64_expand_builtin_tme): New.
1860 (aarch64_expand_builtin): Handle TME builtins.
1861 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Define
1862 __ARM_FEATURE_TME when enabled.
1863 * config/aarch64/aarch64-option-extensions.def: Add "tme".
1864 * config/aarch64/aarch64.h (AARCH64_FL_TME, AARCH64_ISA_TME): New.
1865 (TARGET_TME): New.
1866 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add UNSPEC_TTEST.
1867 (define_c_enum "unspecv"): Add UNSPECV_TSTART, UNSPECV_TCOMMIT and
1868 UNSPECV_TCANCEL.
1869 (tstart, ttest, tcommit, tcancel): New instructions.
1870 * config/aarch64/arm_acle.h (__tstart, __tcommit): New.
1871 (__tcancel, __ttest): New.
1872 (_TMFAILURE_REASON, _TMFAILURE_RTRY, _TMFAILURE_CNCL): New macro.
1873 (_TMFAILURE_MEM, _TMFAILURE_IMP, _TMFAILURE_ERR): Likewise.
1874 (_TMFAILURE_SIZE, _TMFAILURE_NEST, _TMFAILURE_DBG): Likewise.
1875 (_TMFAILURE_INT, _TMFAILURE_TRIVIAL): Likewise.
1876 * config/arm/types.md: Add new tme type attr.
1877 * doc/invoke.texi: Document "tme".
1878
1879 2019-07-31 Joel Hutton <Joel.Hutton@arm.com>
1880
1881 * config/arm/arm_cmse.h (cmse_nonsecure_caller): Add
1882 warn_unused_result attribute.
1883 (cmse_check_address_range): Add warn_unused_result attribute.
1884
1885 2019-07-31 Richard Biener <rguenther@suse.de>
1886
1887 PR tree-optimization/91257
1888 * tree-vrp.c (union_ranges): Unify equality and less tests
1889 by using compare_values. Re-order cheap tests first.
1890
1891 2019-07-31 Jakub Jelinek <jakub@redhat.com>
1892
1893 PR middle-end/91301
1894 * gimplify.c (gimplify_omp_for): If for class iterator on
1895 distribute parallel for there is no data sharing clause
1896 on inner_for_stmt, look for private clause on combined
1897 parallel too and if found, move it to inner_for_stmt.
1898
1899 2019-07-31 Richard Sandiford <richard.sandiford@arm.com>
1900
1901 * lra-int.h (lra_operand_data): Remove early_clobber field.
1902 (lra_insn_reg): Likewise.
1903 * lra.c (debug_operand_data): Update accordingly.
1904 (setup_operand_alternative): Likewise.
1905 (new_insn_reg): Likewise. Remove early_clobber parameter.
1906 (collect_non_operand_hard_regs): Update call accordingly.
1907 Don't assign to lra_insn_reg::early_clobber.
1908 (add_regs_to_insn_regno_info): Remove early_clobber parameter
1909 and update calls to new_insn_reg.
1910 (lra_update_insn_regno_info): Update calls accordingly.
1911 * lra-constraints.c (update_and_check_small_class_inputs): Take the
1912 alternative number as a parameter and test whether the operand
1913 is earlyclobbered in that particular alternative.
1914 (process_alt_operands): Update call accordingly. Use per-alternative
1915 checks for earyclobber here too.
1916 * lra-lives.c (reg_early_clobber_p): Check early_clobber_alts
1917 against zero for IRA_UNKNOWN_ALT.
1918
1919 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
1920
1921 * config/alpha/alpha.c (alpha_option_override): Quote a C type.
1922
1923 2019-07-30 Wilco Dijkstra <wdijkstr@arm.com>
1924
1925 * config/arm/thumb2.md (thumb2_movsi_insn): Adjust literal offset.
1926 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
1927
1928 2019-07-30 Martin Liska <mliska@suse.cz>
1929
1930 PR ipa/89330
1931 * cgraph.c (cgraph_edge::make_direct): Use
1932 edge->indirect_unknown_callee as edge->resolve_speculation can
1933 deallocate edge which is this pointer.
1934
1935 2019-07-30 Richard Biener <rguenther@suse.de>
1936
1937 PR tree-optimization/91257
1938 * bitmap.c (bitmap_ior_and_compl_into): Open-code.
1939
1940 2019-07-30 Martin Liska <mliska@suse.cz>
1941
1942 * doc/invoke.texi: Document new behavior.
1943 * lto-wrapper.c (cpuset_popcount): New function
1944 is a copy of libgomp/config/linux/proc.c.
1945 (init_num_threads): Likewise.
1946 (run_gcc): Automatically detect core count for -flto.
1947 (jobserver_active_p): New function.
1948
1949 2019-07-30 Richard Biener <rguenther@suse.de>
1950
1951 PR tree-optimization/91257
1952 * bitmap.h (bitmap_ior_into_and_free): Declare.
1953 * bitmap.c (bitmap_list_unlink_element): Add defaulted param
1954 whether to add the unliked element to the freelist.
1955 (bitmap_list_insert_element_after): Add defaulted param for
1956 an already allocated element.
1957 (bitmap_ior_into_and_free): New function.
1958 * tree-ssa-structalias.c (condense_visit): Reduce the
1959 ponts-to and edge bitmaps of the SCC members in a
1960 logarithmic fashion rather than all to one.
1961
1962 2019-07-30 Richard Sandiford <richard.sandiford@arm.com>
1963
1964 * tree-ssa-math-opts.c (convert_mult_to_fma): Add a mul_cond
1965 parameter. When nonnull, make sure that the addition or subtraction
1966 has the same condition.
1967 (math_opts_dom_walker::after_dom_children): Try convert_mult_to_fma
1968 for CFN_COND_MUL too.
1969
1970 2019-07-30 Richard Biener <rguenther@suse.de>
1971
1972 PR tree-optimization/91291
1973 * tree-ssa-sccvn.c (rpo_elim::eliminate_push_avail): Ignore
1974 constant values.
1975
1976 2019-07-30 Jakub Jelinek <jakub@redhat.com>
1977
1978 PR middle-end/91216
1979 * omp-low.c (global_nonaddressable_vars): New variable.
1980 (use_pointer_for_field): For global decls, if they are non-addressable,
1981 remember it in the global_nonaddressable_vars bitmap, if they are
1982 addressable and in the global_nonaddressable_vars bitmap, ignore their
1983 TREE_ADDRESSABLE bit.
1984 (omp_copy_decl_2): Clear TREE_ADDRESSABLE also on private copies of
1985 vars in global_nonaddressable_vars bitmap.
1986 (execute_lower_omp): Free global_nonaddressable_vars bitmap.
1987
1988 PR target/91150
1989 * config/i386/i386-expand.c (expand_vec_perm_blend): Change mask type
1990 from unsigned to unsigned HOST_WIDE_INT. For E_V64QImode cast
1991 comparison to unsigned HOST_WIDE_INT before shifting it left.
1992
1993 2019-07-30 Uroš Bizjak <ubizjak@gmail.com>
1994
1995 * config/i386/i386.md (movstrict<mode>): Use register_operand
1996 predicate for operand 0. Add expander condition. Assert that
1997 operand 0 is a SUBREG RTX.
1998 (*movstrict<mode>_1): Use register_operand predicate for operand 0.
1999 Update operand constraints and insn condition.
2000 (zero_extend<mode>si2_and): Do not call gen_movstrict<mode>.
2001 (zero_extendqihi2_and): Do not call gen_movstrictqi.
2002 (*setcc_qi_slp): Use register_operand predicate for operand 0.
2003 Update operand 0 constraints.
2004 (setcc_qi_slp splitters): Use register_operand predicate for operand 0.
2005
2006 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2007
2008 * config/msp430/msp430.h (DRIVER_SELF_SPECS): Define and emit errors
2009 when -m{code,data}-region are used without -mlarge.
2010 * config/msp430/msp430.c (msp430_option_override): Error when a
2011 non-default code or data region is used without -mlarge.
2012 (msp430_section_attr): Emit a warning and do not add upper/lower/either
2013 attributes when they are used without -mlarge.
2014
2015 2019-07-29 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2016
2017 PR target/70320
2018 * config/msp430/msp430.h: Define ADDITIONAL_REGISTER_NAMES.
2019
2020 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2021
2022 PR middle-end/91242
2023 * wide-int.h (generic_wide_int::sext_elt): New function.
2024 * inchash.h (hash::add_wide_int): Use it instead of elt.
2025
2026 2019-07-29 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2027
2028 * config/arm/arm-builtins.c (acle_builtin_data): Expand VAR1 to
2029 CODE_FOR_arm_##.
2030 * config/arm/arm.md (<crc_variant>): Rename to...
2031 (arm_<crc_variant>): ... This.
2032 (<cdp>): Rename to...
2033 (arm_<cdp>): ... This.
2034 (<ldc>): Rename to...
2035 (arm_<ldc>): ... This.
2036 (<stc>): Rename to...
2037 (arm_<stc>): ... This.
2038 (<mcr>): Rename to...
2039 (arm_<mcr>): ... This.
2040 (<mrc>): Rename to...
2041 (arm_<mrc>): ... This.
2042 (<mcrr>): Rename to...
2043 (arm_<mcrr>): ... This.
2044 (<mrrc>): Rename to...
2045 (arm_<mrrc>): ... This.
2046
2047 2019-07-29 Richard Biener <rguenther@suse.de>
2048
2049 PR tree-optimization/91257
2050 * tree-ssa-sccvn.h (struct vn_avail): New.
2051 (struct vn_ssa_aux): Add avail member.
2052 * tree-ssa-sccvn.c (class rpo_elim): Remove m_rpo_avail
2053 member, add m_avail_freelist one.
2054 (rpo_elim::~rpo_elim): Remove.
2055 (rpo_elim::eliminate_avail): Adjust to new avail tracking
2056 data structure.
2057 (rpo_elim::eliminate_push_avail): Likewise.
2058 (do_unwind): Likewise.
2059 (do_rpo_vn): Likewise.
2060
2061 2019-07-29 Richard Biener <rguenther@suse.de>
2062
2063 PR tree-optimization/91257
2064 * tree-vrp.c (operand_less_p): Avoid dispatching to fold for
2065 most cases, instead call compare_values which handles the
2066 symbolic ranges we handle specially.
2067 (compare_values_warnv): Do not call operand_less_p but open-code
2068 the effective fold calls. Avoid converting so much.
2069
2070 2019-07-29 Martin Liska <mliska@suse.cz>
2071
2072 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Do not
2073 remove LHS of operator new call. It's handled latter.
2074
2075 2019-07-29 Richard Biener <rguenther@suse.de>
2076
2077 PR tree-optimization/91267
2078 * vr-values.c (vr_values::update_value_range): Add early return
2079 for effectively VARYING lattice entry.
2080
2081 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2082
2083 PR debug/86638
2084 * tree-ssa-dce.c (keep_all_vdefs_p): New function.
2085 (mark_stmt_if_obviously_necessary): Mark all stmts with vdefs as
2086 necessary if keep_all_vdefs_p is true.
2087 (mark_aliased_reaching_defs_necessary): Add a gcc_checking_assert
2088 that keep_all_vdefs_p is false.
2089 (mark_all_reaching_defs_necessary): Likewise.
2090 (propagate_necessity): Skip the vuse scan if keep_all_vdefs_p is true.
2091
2092 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2093
2094 * common.opt (Og): Change the initial value of flag_dse to 0.
2095 * opts.c (default_options_table): Move OPT_ftree_dse from
2096 OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
2097 OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
2098 entry before the OPT_ftree_sra entry.
2099 * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
2100 of flags disabled by Og.
2101
2102 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2103
2104 * tree-cfg.c (execute_fixup_cfg): Don't delete stores to write-only
2105 variables for -Og.
2106
2107 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2108
2109 * doc/sourcebuild.texi (check-function-bodies): Document.
2110
2111 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2112
2113 * simplify-rtx.c (simplify_const_unary_operation): Fold a
2114 VEC_DUPLICATE of a fixed-length vector even if the result
2115 is variable-length. Likewise fold a duplicate of a
2116 variable-length vector if the variable-length vector is
2117 itself a duplicate of a fixed-length sequence.
2118 (test_vector_ops_duplicate): Test more cases.
2119
2120 2019-07-29 Richard Sandiford <richard.sandiford@arm.com>
2121
2122 * vector-builder.h (vector_builder): Add a shape template parameter.
2123 (vector_builder::new_unary_operation): New function, generalizing
2124 the old tree_vector_builder function.
2125 (vector_builder::new_binary_operation): Likewise.
2126 (vector_builder::binary_encoded_nelts): Likewise.
2127 * int-vector-builder.h (int_vector_builder): Update template
2128 parameters to vector_builder.
2129 (int_vector_builder::shape_nelts): New function.
2130 * rtx-vector-builder.h (rtx_vector_builder): Update template
2131 parameters to vector_builder.
2132 (rtx_vector_builder::shape_nelts): New function.
2133 (rtx_vector_builder::nelts_of): Likewise.
2134 (rtx_vector_builder::npatterns_of): Likewise.
2135 (rtx_vector_builder::nelts_per_pattern_of): Likewise.
2136 * tree-vector-builder.h (tree_vector_builder): Update template
2137 parameters to vector_builder.
2138 (tree_vector_builder::shape_nelts): New function.
2139 (tree_vector_builder::nelts_of): Likewise.
2140 (tree_vector_builder::npatterns_of): Likewise.
2141 (tree_vector_builder::nelts_per_pattern_of): Likewise.
2142 * tree-vector-builder.c (tree_vector_builder::new_unary_operation)
2143 (tree_vector_builder::new_binary_operation): Delete.
2144 (tree_vector_builder::binary_encoded_nelts): Likewise.
2145 * simplify-rtx.c: Include rtx-vector-builder.h.
2146 (distributes_over_addition_p): New function.
2147 (simplify_const_unary_operation)
2148 (simplify_const_binary_operation): Generalize handling of vector
2149 constants to include variable-length vectors.
2150 (test_vector_ops_series): Add more tests.
2151
2152 2019-07-28 Jan Hubicka <hubicka@ucw.cz>
2153
2154 PR lto/91222
2155 * ipa-devirt.c (warn_types_mismatch): Compare indentifiers
2156 than INDENTIFIER_POINTER.
2157
2158 2019-07-28 Martin Liska <mliska@suse.cz>
2159
2160 PR ipa/89330
2161 * cgraph.c (symbol_table::create_edge): Always allocate
2162 a cgraph_edge.
2163 (symbol_table::free_edge): Store summary_id to
2164 edge_released_summary_ids if != -1;
2165 * cgraph.h (NEXT_FREE_NODE): Remove.
2166 (SET_NEXT_FREE_NODE): Likewise.
2167 (NEXT_FREE_EDGE): Likewise.
2168 (symbol_table::release_symbol): Store summary_id to
2169 cgraph_released_summary_ids if != -1;
2170 (symbol_table::allocate_cgraph_symbol): Always allocate
2171 a cgraph_node.
2172
2173 2019-07-28 Alan Modra <amodra@gmail.com>
2174
2175 * config/rs6000/rs6000-call.c (rs6000_output_mi_thunk): Use
2176 gen_sibcall.
2177
2178 2019-07-28 Alan Modra <amodra@gmail.com>
2179
2180 PR target/91135
2181 * config/rs6000/linux.h (GNU_USER_TARGET_D_OS_VERSIONS): Don't
2182 define.
2183 * config/rs6000/linux64.h (TARGET_OS_CPP_BUILTINS): Invoke
2184 GNU_USER_TARGET_OS_CPP_BUILTINS for aixdesc abi.
2185 (GNU_USER_TARGET_D_OS_VERSIONS): Don't define.
2186
2187 2019-07-28 Alan Modra <amodra@gmail.com>
2188
2189 PR target/91050
2190 * config/rs6000/sysv4.h (ASM_DEFAULT_SPEC): Modify if -m64.
2191 * config/rs6000/default64.h (ASM_DEFAULT_SPEC): Define.
2192 * config/rs6000/freebsd64.h (ASM_DEFAULT_SPEC): Don't define.
2193 * config/rs6000/linux64.h (ASM_DEFAULT_SPEC): Likewise.
2194 * config/rs6000/rtems.h (ASM_DEFAULT_SPEC): Likewise.
2195 * config/rs6000/rs6000.h (ASM_DEFAULT_EXTRA): Define and use
2196 in asm_default spec.
2197 * config/rs6000/eabialtivec.h (ASM_DEFAULT_EXTRA): Redefine.
2198 * config/rs6000/linuxaltivec.h (ASM_DEFAULT_EXTRA): Redefine.
2199
2200 2019-07-28 Gerald Pfeifer <gerald@pfeifer.com>
2201
2202 * doc/include/gpl_v3.texi (Copying): Use https for www.gnu.org.
2203
2204 2019-07-26 Tamar Christina <tamar.christina@arm.com>
2205
2206 PR target/89517
2207 * config.gcc: Relax parsing of AARCH64_OPT_EXTENSION.
2208 * config/aarch64/aarch64-option-extensions.def: Add new comments
2209 and restore easier to read options.
2210
2211 2019-07-26 Tamar Christina <tamar.christina@arm.com>
2212
2213 * convert.c (convert_to_real_1): Move part of conversion code...
2214 * match.pd: ...To here.
2215
2216 2019-07-26 Martin Jambor <mjambor@suse.cz>
2217
2218 PR ipa/89330
2219 * ipa-inline-transform.c (check_speculations_1): New function.
2220 (push_all_edges_in_set_to_vec): Likewise.
2221 (check_speculations): Use check_speculations_1, new parameter
2222 new_edges.
2223 (inline_call): Pass new_edges to check_speculations.
2224 * ipa-inline.c (add_new_edges_to_heap): Assert edge_callee is not
2225 NULL.
2226 (speculation_useful_p): Early return true if edge is inlined, remove
2227 later checks for inline_failed.
2228
2229 2019-07-25 Vladimir Makarov <vmakarov@redhat.com>
2230
2231 PR rtl-optimization/91223
2232 * lra-constraints.c (process_alt_operands): Fail for unsuccessful
2233 matching with INOUT operand.
2234
2235 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
2236
2237 * stmt.c (expand_case): Try to narrow the index type if it's larger
2238 than a word. Tidy up.
2239
2240 2019-07-25 Eric Botcazou <ebotcazou@adacore.com>
2241
2242 * cif-code.def (NEVER_CALL): New code.
2243 * ipa-inline.c (want_inline_small_function_p): Fix formatting issues.
2244 Set the failure to CIF_NEVER_CALL if the IPA count is zero.
2245
2246 2019-07-25 Wilco Dijkstra <wdijkstr@arm.com>
2247
2248 * config/arm/thumb2.md (thumb2_movsi_insn): Fix load/store low reg.
2249 * config/arm/vfp.md (thumb2_movsi_vfp): Likewise.
2250
2251 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2252
2253 * ipa-devirt.c (add_type_duplicate): Fix return value.
2254
2255 2019-07-25 Richard Biener <rguenther@suse.de>
2256
2257 * tree-vrp.c (extract_range_from_multiplicative_op): Add
2258 type parameter and use it instead of guessing expression
2259 type from the first operand.
2260 (extract_range_from_binary_expr): Pass expr_type down.
2261
2262 2019-07-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2263
2264 * config/arm/arm.md (SATrev): Change to code attribute.
2265 (*satsi_<SAT:code>): Adjust for the above.
2266 (*satsi_<SAT:code>_shift): Likewise.
2267
2268 2019-07-25 Richard Biener <rguenther@suse.de>
2269
2270 * gimple-loop-versioning.cc (loop_versioning::prune_loop_conditions):
2271 Make value_range * temporary const.
2272 * gimple-ssa-evrp-analyze.c (evrp_range_analyzer::try_find_new_range):
2273 Likewise.
2274 (evrp_range_analyzer::record_ranges_from_): Likewise.
2275 (evrp_range_analyzer::pop_value_range): Return a const value_range *,
2276 deal with having recorded a const one.
2277 * gimple-ssa-evrp-analyze.h (evrp_range_analyzer::get_value_range):
2278 Return a const value_range *.
2279 (evrp_range_analyzer::pop_value_range): Likewise.
2280 (evrp_range_analyzer::stack): Record const value_range *s.
2281 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
2282 Adjust.
2283 * gimple-ssa-sprintf.c (get_int_range): Likewise.
2284 (format_integer): Likewise.
2285 (sprintf_dom_walker::handle_gimple_call): Likewise.
2286 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Likewise.
2287 * tree-vrp.c (vrp_prop::set_def_to_varying): Add.
2288 (vrp_prop::get_value_range): Adjust.
2289 (vrp_prop::vrp_initialize): Use set_def_to_varying instead of
2290 modifying the lattice in-place.
2291 (vrp_prop::visit_stmt): Likewise.
2292 * vr-values.c (vr_values::get_lattice_entry): New private method.
2293 (vr_values::get_value_range): Wrap it and return a const
2294 value_range *.
2295 (vr_values::set_def_to_varying): New.
2296 (vr_values::set_defs_to_varying): Use it.
2297 (vr_values::update_value_range): Likewise.
2298 (vr_values::vrp_stmt_computes_nonzero): Adjust.
2299 (values::op_with_constant_singleton_va): Likewise.
2300 (vr_values::extract_range_for_var_from_co): Likewise.
2301 (vr_values::extract_range_from_ssa_name): Likewise.
2302 (vr_values::extract_range_from_cond_expr): Likewise.
2303 (vr_values::extract_range_basic): Likewise.
2304 (compare_ranges): Take const value_range *, adjust.
2305 (compare_range_with_value): Likewise.
2306 (vrp_valueize): Adjust.
2307 (vrp_valueize_1): Likewise.
2308 (vr_values::get_vr_for_comparison): Return a const value_range *.
2309 (vr_values::compare_name_with_value): Adjust.
2310 (vr_values::compare_names): Likewise.
2311 (vr_values::vrp_evaluate_conditional_warnv_with_ops_using_ranges):
2312 Likewise.
2313 (vr_values::vrp_evaluate_conditional): Likewise.
2314 (find_case_label_ranges): Take a const value_range *.
2315 (vr_values::vrp_visit_switch_stmt): Adjust.
2316 (vr_values::extract_range_from_phi_node): Likewise.
2317 (vr_values::simplify_div_or_mod_using_ran): Likewise.
2318 (vr_values::simplify_abs_using_ranges): Likewise.
2319 (test_for_singularity): Take a const value_range *.
2320 (range_fits_type_p): Likewise.
2321 (vr_values::simplify_cond_using_ranges_1): Adjust.
2322 (vr_values::simplify_cond_using_ranges_2): Likewise.
2323 (vr_values::simplify_switch_using_ranges): Likewise.
2324 (vr_values::simplify_float_conversion_usi): Likewise.
2325 (vr_values::two_valued_val_range_p): Likewise.
2326 * vr-values.h (vr_values::get_value_range): Return a const
2327 value_range *.
2328 (vr_values::set_def_to_varying): New.
2329 (vr_values::get_lattice_entry): New private method.
2330 (vr_values::get_vr_for_comparison): Return a const value_range *.
2331
2332 2019-07-25 Martin Liska <mliska@suse.cz>
2333 Dominik Infuhr <dominik.infuehr@theobroma-systems.com>
2334
2335 PR c++/23383
2336 * common.opt: Add -fallocation-dce
2337 * gimple.c (gimple_call_operator_delete_p): New.
2338 * gimple.h (gimple_call_operator_delete_p): Likewise.
2339 * tree-core.h (enum function_decl_type): Add OPERATOR_DELETE.
2340 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Handle
2341 DECL_IS_OPERATOR_DELETE_P.
2342 (mark_all_reaching_defs_necessary_1): Likewise.
2343 (propagate_necessity): Likewise.
2344 (eliminate_unnecessary_stmts): Handle
2345 gimple_call_operator_delete_p.
2346 * tree-streamer-in.c (unpack_ts_function_decl_value_fields):
2347 Add packing of OPERATOR_DELETE.
2348 * tree-streamer-out.c (pack_ts_function_decl_value_fields):
2349 Similarly here.
2350 * tree.h (DECL_IS_OPERATOR_DELETE_P): New.
2351 (DECL_SET_IS_OPERATOR_DELETE): New.
2352 (DECL_IS_REPLACEABLE_OPERATOR_NEW_P): Likewise.
2353
2354 2019-07-25 Martin Liska <mliska@suse.cz>
2355
2356 * calls.c (maybe_warn_alloc_args_overflow): Use new macros
2357 (e.g. DECL_SET_LAMBDA_FUNCTION and DECL_LAMBDA_FUNCTION_P).
2358 * coverage.c (coverage_begin_function): Likewise.
2359 * fold-const.c (tree_expr_nonzero_warnv_p): Likewise.
2360 * gimple.c (gimple_call_nonnull_result_p): Likewise.
2361 * ipa-icf.c (sem_item::compare_referenced_symbol_properties): Likewise.
2362 (sem_item::hash_referenced_symbol_properties): Likewise.
2363 * lto-streamer-out.c (hash_tree): Likewise.
2364 * predict.c (expr_expected_value_1): Likewise.
2365 * tree-inline.c (expand_call_inline): Likewise.
2366 * tree-streamer-in.c (unpack_ts_function_decl_value_fields): Likewise.
2367 * tree-streamer-out.c (pack_ts_function_decl_value_fields): Likewise.
2368 * tree-core.h (enum function_decl_type): New enum.
2369 (struct tree_function_decl): Remove operator_new_flag and lambda_function.
2370 * tree.h (FUNCTION_DECL_DECL_TYPE): New.
2371 (set_function_decl_type): Likewise.
2372 (DECL_IS_OPERATOR_NEW_P): New.
2373 (DECL_SET_IS_OPERATOR_NEW): Likewise.
2374 (DECL_LAMBDA_FUNCTION): Likewise.
2375 (DECL_LAMBDA_FUNCTION_P): Likewise.
2376 (DECL_IS_OPERATOR_NEW): Remove.
2377 (DECL_SET_LAMBDA_FUNCTION): Likewise.
2378
2379 2019-07-25 Xiong Hu Luo <luoxhu@linux.ibm.com>
2380
2381 * ipa-profile.c (get_most_common_single_value): Use
2382 get_nth_most_common_value.
2383 * profile.c (sort_hist_value): New function.
2384 (compute_value_histograms): Call sort_hist_value to sort the
2385 values after loading from disk.
2386 * value-prof.c (get_most_common_single_value): Rename to ...
2387 get_nth_most_common_value. Add input params n, return
2388 the n_th value and count.
2389 (gimple_divmod_fixed_value_transform): Use
2390 get_nth_most_common_value.
2391 (gimple_ic_transform): Likewise.
2392 (gimple_stringops_transform): Likewise.
2393 * value-prof.h (get_most_common_single_value): Add input params
2394 n, default to 0.
2395
2396 2019-07-25 Richard Biener <rguenther@suse.de>
2397
2398 PR tree-optimization/91236
2399 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
2400 size of CONSTRUCTOR write. Fix buffer size we pass to
2401 native_encode_expr.
2402
2403 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2404
2405 * config.gcc (msp430*-*-*): Fix non-GNU style in r273774.
2406 * config/msp430/msp430.h (ENDFILE_SPEC): Fix non-GNU style in
2407 r273773.
2408
2409 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2410
2411 * config.gcc (msp430*-*-*): Enable initfini_array by default unless
2412 explicitly disabled with --disable-initfini-array.
2413
2414 2019-07-24 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2415
2416 * config/msp430/msp430.h (ENDFILE_SPEC): Wrap uses of crtn*.o in
2417 if-exists.
2418
2419 2019-07-24 Martin Sebor <msebor@redhat.com>
2420
2421 PR tree-optimization/91183
2422 PR tree-optimization/86688
2423 * builtins.c (compute_objsize): Handle MEM_REF.
2424 * tree-ssa-strlen.c (class ssa_name_limit_t): New.
2425 (get_min_string_length): Remove.
2426 (count_nonzero_bytes): New function.
2427 (handle_char_store): Rename...
2428 (handle_store): to this. Handle multibyte stores via integer types.
2429 (strlen_check_and_optimize_stmt): Adjust conditional and the called
2430 function name.
2431
2432 2019-07-24 Martin Sebor <msebor@redhat.com>
2433
2434 PR driver/80545
2435 * diagnostic.c (diagnostic_classify_diagnostic): Use lang_mask.
2436 (diagnostic_report_diagnostic): Same.
2437 * diagnostic.h (diagnostic_context::option_enabled): Add an argument.
2438 (diagnostic_context::lang_mask): New data member.
2439 * ipa-pure-const.c (suggest_attribute): Use
2440 lang_hooks.option_lang_mask ().
2441 * opts-common.c (option_enabled): Handle new argument.
2442 (get_option_state): Pass an additional argument.
2443 * opts.c (print_filtered_help): Print supported languages for
2444 unsupported options. Adjust printing of current state.
2445 * opts.h (option_enabled): Add argument.
2446 * toplev.c (print_switch_values): Use lang_mask.
2447 (general_init): Set global_dc->lang_mask.
2448
2449 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
2450
2451 PR bootstrap/87030
2452 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Revert change from r273749.
2453
2454 2019-07-24 Giuliano Belinassi <giuliano.belinassi@usp.br>
2455
2456 * cgraphunit.c (symbol_table::compile): Start and stop
2457 TV_CGRAPH_IPA_PASSES and TV_CGRAPH_FUNC_EXPANSION timers.
2458 * timevar.def (TV_CGRAPH_IPA_PASSES, TV_CGRAPH_FUNC_EXPANSION): New.
2459
2460 2019-07-24 Oliver Browne <oliverbrowne62@gmail.com>
2461
2462 * gimplify.c (flag_instrument_functions_exclude_p): Include
2463 namespace/class information in the printable name.
2464 * opts.c (add_comma_separated_to_vector): Add NUL terminator
2465 to tokens entered into the vector.
2466
2467 2019-07-24 Eric Botcazou <ebotcazou@adacore.com>
2468
2469 * tree-nested.c (build_simple_mem_ref_notrap): New function.
2470 (get_static_chain): Call it instead of build_simple_mem_ref.
2471 (get_frame_field): Likewise.
2472 (get_nonlocal_debug_decl): Likewise.
2473 (convert_nonlocal_reference_op): Likewise.
2474
2475 2019-07-24 Claudiu Zissulescu <claziss@synopsys.com>
2476
2477 * config/arc/arc-protos.h (arc_output_function_epilogue): Delete
2478 declaration.
2479 (arc_compute_frame_size): Millicode is disabled when compiling
2480 ISR.
2481 (arc_return_address_register): Likewise.
2482 (arc_compute_function_type): Likewise.
2483 (arc_compute_frame_size): Likewise.
2484 (secondary_reload_info): Likewise.
2485 (arc_get_unalign): Likewise.
2486 (arc_can_use_return_insn): Declare.
2487 * config/arc/arc.c (AUX_LP_START): Define
2488 (AUX_LP_END): Likewise.
2489 (arc_frame_info): Update gmask member to 64-bit datum.
2490 (GMASK_LEN): Update.
2491 (arc_compute_function_type): Make it static, move it forward.
2492 (arc_must_save_register): Update, consider the extra regs.
2493 (arc_compute_millicode_save_restore_regs): Update to use the 64
2494 bit gmask.
2495 (arc_compute_frame_size): Likewise.
2496 (arc_enter_leave_p): Likewise.
2497 (arc_save_callee_saves): Likewise.
2498 (arc_restore_callee_saves): Likewise.
2499 (arc_save_callee_enter): Likewise.
2500 (arc_restore_callee_leave): Likewise.
2501 (arc_save_callee_milli): Likewise.
2502 (arc_restore_callee_milli): Likewise.
2503 (arc_expand_prologue): Add new interrupt handling.
2504 (arc_return_address_register): Make it static, move it forward.
2505 (arc_expand_epilogue): Add new interrupt handling.
2506 (arc_get_unalign): Delete.
2507 (arc_epilogue_uses): Make sure we do not remove the extra
2508 saved/restored registers when interrupt.
2509 (arc_can_use_return_insn): New function.
2510 (push_reg): Likewise.
2511 (pop_reg): Likewise.
2512 (arc_save_callee_saves): Add ZOL and FPX aux registers saving
2513 procedures.
2514 (arc_restore_callee_saves): Likewise, but restoring.
2515 * config/arc/arc.md (VUNSPEC_ARC_ARC600_RTIE): Define.
2516 (R33_REG): Likewise.
2517 (R34_REG): Likewise.
2518 (R35_REG): Likewise.
2519 (R36_REG): Likewise.
2520 (R37_REG): Likewise.
2521 (R38_REG): Likewise.
2522 (R39_REG): Likewise.
2523 (R45_REG): Likewise.
2524 (R46_REG): Likewise.
2525 (R47_REG): Likewise.
2526 (R48_REG): Likewise.
2527 (R49_REG): Likewise.
2528 (R50_REG): Likewise.
2529 (R51_REG): Likewise.
2530 (R52_REG): Likewise.
2531 (R53_REG): Likewise.
2532 (R54_REG): Likewise.
2533 (R55_REG): Likewise.
2534 (R56_REG): Likewise.
2535 (R58_REG): Likewise.
2536 (type): Add rtie attribute.
2537 (in_call_delay_slot): Use RETURN_ADDR_REGNUM.
2538 (movsi_insn): Accept moves to lp_count.
2539 (rtie): Update pattern.
2540 (simple_return): Simplify it, don't use this pattern as a return
2541 from an interrupt.
2542 (arc600_rtie): New pattern.
2543 (p_return_i): Clean up.
2544 (return): Likewise.
2545 * config/arc/builtins.def (rtie): Only available for non ARC6xx
2546 family CPUs.
2547 * config/arc/predicates.md (move_src_operand): Consider lp_count
2548 as a register.
2549
2550 2019-07-24 Andreas Krebbel <krebbel@linux.ibm.com>
2551
2552 * config/s390/predicates.md (addv_const_operand): New predicate.
2553 * config/s390/s390-modes.def (CCO): New condition code mode.
2554 * config/s390/s390.c (s390_match_ccmode_set): Handle E_CCOmode.
2555 (s390_branch_condition_mask): Likewise.
2556 * config/s390/s390.md ("addv<mode>4", "subv<mode>4")
2557 ("mulv<mode>4"): New expanders.
2558 ("*addv<mode>3_ccoverflow", "*addv<mode>3_ccoverflow_const")
2559 ("*subv<mode>3_ccoverflow", "*mulv<mode>3_ccoverflow"): New
2560 pattern definitions.
2561
2562 2019-07-24 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2563
2564 PR middle-end/91166
2565 * match.pd (vec_perm_expr(v, v, mask) -> v): New pattern.
2566 (define_predicates): Add entry for uniform_vector_p.
2567 (vec_same_elem_p): New match pattern.
2568
2569 2019-07-24 Iain Sandoe <iain@sandoe.co.uk>
2570
2571 PR bootstrap/87030
2572 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move from here...
2573 * config/i386/darwin32-biarch.h .. to here.
2574 * config/i386/darwin64-biarch.h: Adjust comments.
2575 * config/rs6000/darwin32-biarch.h: Likewise.
2576 * config/rs6000/darwin64-biarch.h: Likewise.
2577 * config.gcc: Missed commit from r273746
2578 (*-*-darwin*): Don't include CPU t-darwin here.
2579 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
2580 an error message if i686-darwin configuration is attempted for
2581 Darwin >= 18.
2582
2583 2019-07-23 Iain Sandoe <iain@sandoe.co.uk>
2584
2585 PR bootstrap/87030
2586 * config.gcc (*-*-darwin*): Don't include CPU t-darwin here.
2587 (i[34567]86-*-darwin*): Adjust to use biarch files. Produce
2588 an error message if i686-darwin configuration is attempted for
2589 Darwin >= 18.
2590 (x86_64-*-darwin*): Switch to single multilib for Darwin >= 18.
2591 (powerpc-*-darwin*): Use biarch files where needed.
2592 (powerpc64-*-darwin*): Likewise.
2593 * config/i386/darwin.h (REAL_LIBGCC_SPEC): Move to new biarch file.
2594 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
2595 arch case.
2596 * config/i386/darwin32-biarch.h: New.
2597 * config/i386/darwin64.h: Rename.
2598 * config/i386/darwin64-biarch.h: To this.
2599 * config/i386/t-darwin: Rename.
2600 * config/i386/t-darwin32-biarch: To this.
2601 * config/i386/t-darwin64: Rename.
2602 * config/i386/t-darwin64-biarch: To this.
2603 * config/rs6000/darwin32-biarch.h: New.
2604 * config/rs6000/darwin64.h: Rename.
2605 * config/rs6000/darwin64-biarch.h: To this.
2606 (DARWIN_ARCH_SPEC, DARWIN_SUBARCH_SPEC): Revise for default single
2607 arch case.
2608 * config/rs6000/t-darwin8: Rename.
2609 * config/rs6000/t-darwin32-biarch: To this.
2610 * config/rs6000/t-darwin64 Rename.
2611 * config/rs6000/t-darwin64-biarch: To this.
2612
2613 2019-07-23 Martin Sebor <msebor@redhat.com>
2614
2615 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Revert r273311.
2616
2617 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
2618
2619 * gdbinit.in (reload-gdbhooks): New command with an attached doc string.
2620 (rh): New alias for it.
2621
2622 2019-07-23 Vladislav Ivanishin <vlad@ispras.ru>
2623
2624 * gdbhooks.py: Pass replace=True to
2625 gdb.printing.register_pretty_printer.
2626
2627 2019-07-23 Richard Biener <rguenther@suse.de>
2628
2629 PR debug/91231
2630 * lto-streamer-in.c (input_function): Drop inline-entry markers
2631 that ended up with an unknown location block.
2632
2633 2019-07-23 Richard Biener <rguenther@suse.de>
2634
2635 PR tree-optimization/83518
2636 * tree-ssa-sccvn.c (vn_reference_lookup_3): Handle aggregate
2637 init from a constant even when partial defs are already recorded.
2638
2639 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2640
2641 * i386-common.c: Use PROCESSOR_ZNVER2 scheduler for znver2.
2642 * config/i386/znver1.md: Enable patterns for znver2 and add store
2643 variants which use extra AGU unit.
2644
2645 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2646
2647 * config/i386/i386-options.c (ix86_option_override_internal): Default
2648 PARAM_AVOID_FMA_MAX_BITS to 256 for znver2.
2649 * config/i386/x86-tune.def (X86_TUNE_AVOID_256FMA_CHAINS): Set
2650 for ZNVER2.
2651
2652 2019-07-23 Jan Hubicka <hubicka@ucw.cz>
2653
2654 * config/i386/x86-tune-costs.h (znver2_memcpy): Update.
2655 (znver2_costs): Update 256 bit SSE costs and multiplication.
2656
2657 2019-07-23 Jan Beulich <jbeulich@suse.com>
2658
2659 * config/i386/sse.md (<avx512>_cvtmask2<ssemodesuffix><mode>):
2660 Require only AVX512F.
2661 (*<avx512>_cvtmask2<ssemodesuffix><mode>): Likewise. Add
2662 alternative expanding to vpternlog.
2663
2664 2019-07-23 Martin Liska <mliska@suse.cz>
2665
2666 * dwarf2out.c (gen_producer_string): Canonize -flto=N
2667 to -flto in dwarf producer string.
2668
2669 2019-07-23 Richard Biener <rguenther@suse.de>
2670
2671 * tree-cfg.c (label_for_bb): Remove global var.
2672 (main_block_label): Take label_for_bb as argument.
2673 (cleanup_dead_labels_eh): Likewise, adjust.
2674 (cleanup_dead_labels): Adjust.
2675
2676 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
2677
2678 * doc/extend.texi (Basic PowerPC Built-in Functions Available on all
2679 Configurations): Add documentation for __builtin_mtfsf.
2680
2681 2019-07-22 Ilia Diachkov <ilia.diachkov@optimitech.com>
2682
2683 * config/riscv/riscv-opts.h (struct riscv_align_data): New.
2684 * config/riscv/riscv.c (riscv_constant_alignment): Use
2685 riscv_align_data_type.
2686 * config/riscv/riscv.h (RISCV_EXPAND_ALIGNMENT): New.
2687 (DATA_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
2688 (LOCAL_ALIGNMENT): Use RISCV_EXPAND_ALIGNMENT.
2689 * config/riscv/riscv.opt (malign-data): New.
2690 * doc/invoke.texi (RISC-V Options): Document -malign-data=.
2691
2692 2019-07-02 Giuliano Belinassi <giuliano.belinassi@usp.br>
2693
2694 * cgraph.c (dump_graphviz): New function.
2695 * cgraph.h (dump_graphviz): New function.
2696 * symtab.c (dump_graphviz): New function.
2697
2698 2019-07-22 Sylvia Taylor <sylvia.taylor@arm.com>
2699
2700 * config/aarch64/aarch64-simd.md
2701 (*aarch64_simd_sra<mode>): New.
2702 * config/aarch64/iterators.md
2703 (SHIFTRT): New iterator.
2704 (sra_op): New attribute.
2705
2706 2019-07-22 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2707
2708 * config/msp430/msp430.c (msp430_preserve_reg_p): Don't save
2709 callee-saved regs R4->R10 in an interrupt function that calls another
2710 function.
2711
2712 2019-07-22 Paul A. Clarke <pc@us.ibm.com>
2713
2714 * config/rs6000/smmintrin.h (_mm_blend_epi16): New.
2715 (_mm_blendv_epi8): New.
2716
2717 2019-07-22 Richard Biener <rguenther@suse.de>
2718
2719 PR tree-optimization/91221
2720 * tree-ssa-sccvn.c (vn_reference_lookup_3): Appropriately
2721 restrict partial-def handling of empty constructors and
2722 memset to refs with known offset.
2723
2724 2019-07-22 Jan Beulich <jbeulich@suse.com>
2725
2726 * config/i386/sse.md (ternlogsuffix): New.
2727 (one_cmpl<mode>2): Don't force CONSTM1_RTX into a register when
2728 AVX512F is in use.
2729 (<mask_codefor>one_cmpl<mode>2<mask_name>): New.
2730
2731 2019-07-22 Martin Liska <mliska@suse.cz>
2732
2733 * config/avr/avr.c (avr_asm_output_aligned_decl_common): Update
2734 comment.
2735 * toplev.c (compile_file): Do not emit __gnu_lto_v1 symbol.
2736
2737 2019-07-22 Martin Liska <mliska@suse.cz>
2738
2739 * lto-section-in.c (lto_get_section_data):
2740 Use new function get_compression.
2741 * lto-streamer-out.c (produce_lto_section): Use
2742 set_compression to encode compression algorithm.
2743 * lto-streamer.h (struct lto_section): Do not
2744 use bitfields in the format.
2745
2746 2019-07-22 Martin Liska <mliska@suse.cz>
2747
2748 PR driver/91172
2749 * opts-common.c (decode_cmdline_option): Decode
2750 argument of -Werror and check it for a wrong language.
2751 * opts-global.c (complain_wrong_lang): Remove such case.
2752
2753 2019-07-22 Claudiu Zissulescu <claziss@synopsys.com>
2754
2755 * config/arc/arc.c (prepare_move_operands): Always use an
2756 intermediate register when storing a TLS symbols.
2757
2758 2019-07-22 Stafford Horne <shorne@gmail.com>
2759
2760 * config/or1k/or1k.c (or1k_expand_compare): Check for int before
2761 force_reg.
2762
2763 2019-07-22 Stafford Horne <shorne@gmail.com>
2764
2765 * config.gcc (or1k*-*-*): Add mhard-float, mdouble-float, msoft-float
2766 and munordered-float validations.
2767 * config/or1k/constraints.md (d): New register constraint.
2768 * config/or1k/predicates.md (fp_comparison_operator): New.
2769 * config/or1k/or1k.c (or1k_print_operand): Add support for printing 'd'
2770 operands.
2771 (or1k_expand_compare): Normalize unordered comparisons.
2772 * config/or1k/or1k.h (reg_class): Define DOUBLE_REGS.
2773 (REG_CLASS_NAMES): Add "DOUBLE_REGS".
2774 (REG_CLASS_CONTENTS): Add contents for DOUBLE_REGS.
2775 * config/or1k/or1k.md (type): Add fpu.
2776 (fpu): New instruction reservation.
2777 (F, f, fr, fi, FI, FOP, fop): New.
2778 (<fop><F:mode>3): New ALU instruction definition.
2779 (float<fi><F:mode>2): New conversion instruction definition.
2780 (fix_trunc<F:mode><fi>2): New conversion instruction definition.
2781 (fpcmpcc): New code iterator.
2782 (*sf_fp_insn): New instruction definition.
2783 (cstore<F:mode>4): New expand definition.
2784 (cbranch<F:mode>4): New expand definition.
2785 * config/or1k/or1k.opt (msoft-float, mhard-float, mdouble-float,
2786 munordered-float): New options.
2787 * doc/invoke.texi: Document msoft-float, mhard-float, mdouble-float and
2788 munordered-float.
2789
2790 2019-07-22 Stafford Horne <shorne@gmail.com>
2791
2792 * config.gcc (or1k*-*-*): Add mrori and mror to validation.
2793 * doc/invoke.texi (OpenRISC Options): Add mrori option, rewrite all
2794 documenation to be more clear.
2795 * config/or1k/elf.opt (mboard=, mnewlib): Rewrite documentation to be
2796 more clear.
2797 * config/or1k/or1k.opt (mrori): New option.
2798 (mhard-div, msoft-div, mhard-mul, msoft-mul, mcmov, mror, msext,
2799 msfimm, mshftimm): Rewrite documentation to be more clear.
2800 * config/or1k/or1k.md (insn_support): Add ror and rori.
2801 (enabled): Add conditions for ror and rori.
2802 (rotrsi3): Replace condition for shftimm with ror and rori.
2803
2804 2019-07-22 Stafford Horne <shorne@gmail.com>
2805
2806 PR target/90363
2807 * config/or1k/or1k.md (zero_extend<mode>si2): Update predicate.
2808 (extend<mode>si2): Update predicate.
2809 * config/or1k/predicates.md (volatile_mem_operand): New.
2810 (reg_or_mem_operand): New.
2811
2812 2019-07-21 Iain Sandoe <iain@sandoe.co.uk>
2813
2814 * config/rs6000/rs6000.c (TARGET_NO_PROTOTYPE): Move from here...
2815 * config/rs6000/rs6000-call.c: ... to here.
2816
2817 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
2818
2819 * config/rs6000/predicates.md (offsettable_mem_operand): Allow volatile
2820 memory.
2821
2822 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
2823
2824 * config/rs6000/predicates.md (input_operand): Allow volatile memory.
2825
2826 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
2827
2828 * config/rs6000/predicates.md (lwa_operand): Allow volatile memory.
2829
2830 2019-07-20 Segher Boessenkool <segher@kernel.crashing.org>
2831
2832 * config/rs6000/predicates.md (volatile_mem_operand): Modernize syntax.
2833 (any_memory_operand): New predicate.
2834 (reg_or_mem_operand): Use it.
2835
2836 2019-07-20 Jakub Jelinek <jakub@redhat.com>
2837
2838 PR target/91204
2839 * optabs.c (expand_unop): As fallback, expand ~op0 as op0 ^ -1.
2840
2841 2019-07-20 John David Anglin <danglin@gcc.gnu.org>
2842
2843 * config/pa/pa.h (hppa_profile_hook): Delete declaration.
2844 * config/pa/pa-protos.h (hppa_profile_hook): Add declaration.
2845
2846 2019-07-20 Jakub Jelinek <jakub@redhat.com>
2847
2848 * tree.def (OMP_LOOP): New tree code.
2849 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_BIND.
2850 (enum omp_clause_bind_kind): New enum.
2851 (struct tree_omp_clause): Add subcode.bind_kind.
2852 * tree.h (OMP_LOOP_CHECK): Rename to ...
2853 (OMP_LOOPING_CHECK): ... this.
2854 (OMP_FOR_BODY, OMP_FOR_CLAUSES, OMP_FOR_INIT, OMP_FOR_COND,
2855 OMP_FOR_INCR, OMP_FOR_PRE_BODY, OMP_FOR_ORIG_DECLS): Use
2856 OMP_LOOPING_CHECK instead of OMP_LOOP_CHECK.
2857 (OMP_CLAUSE_BIND_KIND): Define.
2858 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
2859 bind clause entries.
2860 (walk_tree_1): Handle OMP_CLAUSE_BIND.
2861 * tree-pretty-print.c (dump_omp_clause): Likewise.
2862 (dump_generic_node): Handle OMP_LOOP.
2863 * gimplify.c (enum omp_region_type): Add ORT_IMPLICIT_TARGET.
2864 (in_omp_construct): New variable.
2865 (is_gimple_stmt): Handle OMP_LOOP.
2866 (gimplify_scan_omp_clauses): For lastprivate don't set
2867 check_non_private if code == OMP_LOOP. For reduction clause
2868 on OMP_LOOP combined with parallel or teams propagate as shared
2869 on the combined construct. Handle OMP_CLAUSE_BIND.
2870 (gimplify_adjust_omp_clauses): Handle OMP_CLAUSE_BIND.
2871 (gimplify_omp_for): Pass OMP_LOOP instead of OMP_{FOR,DISTRIBUTE}
2872 for constructs from a loop construct to gimplify_scan_omp_clauses.
2873 Don't predetermine iterator linear on OMP_SIMD from loop construct.
2874 (replace_reduction_placeholders, gimplify_omp_loop): New functions.
2875 (gimplify_omp_workshare): Use ORT_IMPLICIT_TARGET instead of trying
2876 to match the implicit ORT_TARGET construct around whole body.
2877 Temporarily clear in_omp_construct when processing body.
2878 (gimplify_expr): Handle OMP_LOOP. For OMP_MASTER, OMP_TASKGROUP
2879 etc. temporarily set in_omp_construct when processing body.
2880 (gimplify_body): Create ORT_IMPLICIT_TARGET instead of ORT_TARGET.
2881 * omp-low.c (struct omp_context): Add loop_p.
2882 (build_outer_var_ref): Treat ctx->loop_p similarly to simd construct
2883 in that the original var might be private.
2884 (scan_sharing_clauses): Handle OMP_CLAUSE_BIND.
2885 (check_omp_nesting_restrictions): Adjust nesting restrictions for
2886 addition of loop construct.
2887 (scan_omp_1_stmt): Allow setjmp inside of loop construct.
2888
2889 * omp-low.c (lower_rec_input_clauses): Don't force simd arrays for
2890 lastprivate non-addressable iterator of a collapse(1) simd.
2891
2892 2019-07-17 Bill Seurer <seurer@linux.vnet.ibm.com>
2893
2894 * config/rs6000/rs6000-call.c (HAVE_AS_GNU_ATTRIBUTE): define value
2895 as in rs6000.c.
2896
2897 2019-07-19 Iain Sandoe <iain@sandoe.co.uk>
2898
2899 * config/darwin.h (DRIVER_SELF_SPECS): Ignore X and Mach specs which
2900 refer to default conditions. Warn for the 'y' spec which is ignored
2901 by current linkers.
2902
2903 2019-07-19 Bill Seurer <seurer@linux.vnet.ibm.com>
2904
2905 * config/rs6000/rs6000.c (builtin_description, cpu_is_info,
2906 cpu_supports_info, builtin_hash_struct, builtin_hasher,
2907 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
2908 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
2909 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
2910 init_cumulative_args, rs6000_promote_function_mode,
2911 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
2912 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
2913 rs6000_function_arg_boundary, rs6000_parm_offset,
2914 rs6000_parm_start, rs6000_arg_size,
2915 rs6000_darwin64_record_arg_advance_flush,
2916 rs6000_darwin64_record_arg_advance_recurse,
2917 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
2918 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
2919 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
2920 rs6000_mixed_function_arg, rs6000_psave_function_arg,
2921 rs6000_finish_function_arg, rs6000_function_arg,
2922 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
2923 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
2924 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
2925 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
2926 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
2927 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
2928 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
2929 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
2930 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
2931 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
2932 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
2933 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
2934 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
2935 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
2936 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
2937 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
2938 get_element_number, altivec_expand_vec_set_builtin,
2939 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
2940 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
2941 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
2942 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
2943 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
2944 rs6000_expand_builtin, rs6000_vector_type,
2945 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
2946 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
2947 rs6000_internal_arg_pointer, rs6000_output_mi_thunk): Move
2948 to rs6000-call.c.
2949 * config/rs6000/rs6000-call.c (builtin_description, cpu_is_info,
2950 cpu_supports_info, builtin_hash_struct, builtin_hasher,
2951 builtin_hash_table, rs6000_builtin_info_type, rs6000_builtin_info,
2952 rs6000_aggregate_candidate, rs6000_discover_homogeneous_aggregate,
2953 rs6000_return_in_memory, rs6000_return_in_msb, call_ABI_of_interest,
2954 init_cumulative_args, rs6000_promote_function_mode,
2955 rs6000_must_pass_in_stack, is_complex_IBM_long_double,
2956 abi_v4_pass_in_fpr, rs6000_function_arg_padding,
2957 rs6000_function_arg_boundary, rs6000_parm_offset,
2958 rs6000_parm_start, rs6000_arg_size,
2959 rs6000_darwin64_record_arg_advance_flush,
2960 rs6000_darwin64_record_arg_advance_recurse,
2961 rs6000_darwin64_struct_check_p, rs6000_function_arg_advance_1,
2962 rs6000_function_arg_advance, rs6000_darwin64_record_arg_flush,
2963 rs6000_darwin64_record_arg_recurse, rs6000_darwin64_record_arg,
2964 rs6000_mixed_function_arg, rs6000_psave_function_arg,
2965 rs6000_finish_function_arg, rs6000_function_arg,
2966 rs6000_arg_partial_bytes, rs6000_pass_by_reference,
2967 rs6000_parm_needs_stack, rs6000_function_parms_need_stack,
2968 rs6000_reg_parm_stack_space, rs6000_move_block_from_reg,
2969 setup_incoming_varargs, rs6000_build_builtin_va_list, rs6000_va_start,
2970 rs6000_gimplify_va_arg, def_builtin, bdesc_3arg, bdesc_dst,
2971 bdesc_2arg, bdesc_altivec_preds, bdesc_abs, bdesc_1arg, bdesc_0arg,
2972 bdesc_htm, rs6000_overloaded_builtin_p, rs6000_overloaded_builtin_name,
2973 rs6000_expand_zeroop_builtin, rs6000_expand_mtfsf_builtin,
2974 rs6000_expand_mtfsb_builtin, rs6000_expand_set_fpscr_rn_builtin,
2975 rs6000_expand_set_fpscr_drn_builtin, rs6000_expand_unop_builtin,
2976 altivec_expand_abs_builtin, rs6000_expand_binop_builtin,
2977 altivec_expand_predicate_builtin, swap_endian_selector_for_mode,
2978 altivec_expand_lv_builtin, altivec_expand_stxvl_builtin,
2979 altivec_expand_stv_builtin, htm_spr_num, rs6000_htm_spr_icode,
2980 htm_expand_builtin, cpu_expand_builtin, rs6000_expand_ternop_builtin,
2981 altivec_expand_dst_builtin, altivec_expand_vec_init_builtin,
2982 get_element_number, altivec_expand_vec_set_builtin,
2983 altivec_expand_vec_ext_builtin, altivec_expand_builtin,
2984 rs6000_builtin_is_supported_p, rs6000_invalid_builtin,
2985 rs6000_fold_builtin, rs6000_builtin_valid_without_lhs,
2986 fold_build_vec_cmp, fold_compare_helper, fold_mergehl_helper,
2987 fold_mergeeo_helper, rs6000_gimple_fold_builtin,
2988 rs6000_expand_builtin, rs6000_vector_type,
2989 rs6000_init_builtins, rs6000_builtin_decl, altivec_init_builtins,
2990 htm_init_builtins, builtin_function_type, rs6000_common_init_builtins,
2991 rs6000_internal_arg_pointer, rs6000_output_mi_thunk: Move
2992 to here from rs6000.c.
2993 * config/rs6000/rs6000-internal.h: (rs6000_darwin64_struct_check_p,
2994 rs6000_discover_homogeneous_aggregate, rs6000_output_mi_thunk,
2995 rs6000_output_addr_const_extra, rs6000_gimple_fold_builtin,
2996 rs6000_invalid_builtin, rs6000_build_builtin_va_list, rs6000_va_start,
2997 rs6000_gimplify_va_arg, rs6000_promote_function_mode,
2998 rs6000_return_in_memory, rs6000_return_in_msb,
2999 rs6000_pass_by_reference, setup_incoming_varargs,
3000 rs6000_function_arg_boundary, rs6000_must_pass_in_stack,
3001 rs6000_arg_partial_bytes, rs6000_function_arg_advance,
3002 rs6000_function_arg_padding, rs6000_function_arg,
3003 rs6000_darwin64_record_arg, rs6000_internal_arg_pointer,
3004 rs6000_init_builtins, rs6000_builtin_decl, rs6000_expand_builtin,
3005 rs6000_fold_builtin, rs6000_passes_ieee128, rs6000_passes_float,
3006 rs6000_passes_long_double, rs6000_passes_vector,
3007 rs6000_returns_struct, cpu_builtin_p, tree builtin_mode_to_type,
3008 altivec_builtin_mask_for_load) Add declarations.
3009 * config/rs6000/t-rs6000: Add new source file rs6000-call.c.
3010 * config/config.gcc: Add new source file rs6000-call.c to garbage
3011 collector and extra_objs.
3012
3013 2019-07-19 Jeff Law <law@redhat.com>
3014
3015 PR tree-optimization/86061
3016 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle
3017 strncpy. Drop some trivial dead code.
3018 (maybe_trim_memstar_call): Handle strncpy.
3019
3020 2019-07-19 Richard Biener <rguenther@suse.de>
3021
3022 PR tree-optimization/91211
3023 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Fix
3024 memset encoding size.
3025
3026 2019-07-19 Uroš Bizjak <ubizjak@gmail.com>
3027
3028 PR target/91204
3029 * config/i386/mmx.md (one_cmpl<mode>2): New expander.
3030
3031 2019-07-19 Jan Hubicka <hubicka@ucw.cz>
3032
3033 PR ipa/91194
3034 * ipa-inline.c (recursive_inlining): Fix limits check.
3035
3036 2019-07-19 Richard Biener <rguenther@suse.de>
3037
3038 PR tree-optimization/91200
3039 * tree-ssa-phiopt.c (cond_store_replacement): Check we have
3040 no PHI nodes in middle-bb.
3041
3042 2019-07-19 Richard Sandiford <richard.sandiford@arm.com>
3043
3044 * doc/invoke.texi: Rename the AArch64 +bitperm extension flag
3045 to +sve-bitperm.
3046 * config/aarch64/aarch64-option-extensions.def: Likewise.
3047
3048 2019-07-19 Jakub Jelinek <jakub@redhat.com>
3049
3050 PR middle-end/91190
3051 * function.c (insert_temp_slot_address): Store into the hash table
3052 a copy of address to avoid RTL sharing issues.
3053
3054 2019-07-19 Richard Biener <rguenther@suse.de>
3055
3056 PR tree-optimization/91207
3057 Revert
3058 2019-07-17 Richard Biener <rguenther@suse.de>
3059
3060 PR tree-optimization/91178
3061 * tree-vect-stmts.c (get_group_load_store_type): For SLP
3062 loads with a gap larger than the vector size always use
3063 VMAT_STRIDED_SLP.
3064 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
3065 avoid loading vectors that are only contained in the gap
3066 and thus are not needed.
3067
3068 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
3069
3070 * config/i386/i386.md (*addqi_2_slp): Remove.
3071 (*<code>qi_2_slp): Ditto.
3072
3073 2019-07-18 Michael Meissner <meissner@linux.ibm.com>
3074
3075 * config/rs6000/predicates.md (prefixed_mem_operand): Call
3076 rs6000_prefixed_address_mode_p instead of rs6000_prefixed_address.
3077 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address_mode_p):
3078 Rename function from rs6000_prefixed_address.
3079 * config/rs6000/aix.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3080 TARGET_HAS_TOC.
3081 (TARGET_TOC): Likewise.
3082 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
3083 rs6000.h.
3084 * config/rs6000/darwin.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3085 TARGET_HAS_TOC.
3086 (TARGET_TOC): Likewise.
3087 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
3088 rs6000.h.
3089 * config/rs6000/linux64.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3090 TARGET_HAS_TOC.
3091 (TARGET_TOC): Likewise.
3092 * config/rs6000/rs6000.c (rs6000_option_override_internal): Add
3093 check to require -mcmodel=medium for pc-relative addressing.
3094 (create_TOC_reference): Add assertion for TARGET_TOC.
3095 (rs6000_legitimize_address): Use TARGET_NO_TOC_OR_PCREL instead of
3096 TARGET_NO_TOC.
3097 (rs6000_emit_move): Likewise.
3098 (TOC_alias_set): Rename TOC alias set static variable from 'set'
3099 to 'TOC_alias_set'.
3100 (get_TOC_alias_set): Likewise.
3101 (output_toc): Use TARGET_NO_TOC_OR_PCREL instead of
3102 TARGET_NO_TOC.
3103 (rs6000_can_eliminate): Likewise.
3104 (rs6000_prefixed_address_mode_p): Rename function from
3105 rs6000_prefixed_address.
3106 * config/rs6000/rs6000.h (TARGET_TOC): Define in terms of
3107 TARGET_HAS_TOC and not pc-relative.
3108 (TARGET_NO_TOC_OR_PCREL): New macro to replace TARGET_NO_TOC.
3109 * config/rs6000/sysv4.h (TARGET_HAS_TOC): Rename TARGET_TOC to
3110 TARGET_HAS_TOC.
3111 (TARGET_TOC): Likewise.
3112 (TARGET_NO_TOC): Delete here, define TARGET_NO_TOC_OR_PCREL in
3113 rs6000.h.
3114
3115 2019-07-18 Uroš Bizjak <ubizjak@gmail.com>
3116
3117 PR target/91188
3118 * config/i386/i386.md (*addqi_1_slp): Use register_operand predicate
3119 for operand 0. Do not use (match_dup) to match operand 1 with
3120 operand 0. Add check in insn constraint that either input operand
3121 matches operand 0. Use SWI12 mode iterator to also handle
3122 HImode operands.
3123 (*and<mode>_1_slp): Ditto.
3124 (*<code>qi_1_slp): Ditto.
3125 (*sub<mode>_1_slp): Use register_operand predicate for operand 0.
3126 Do not use (match_dup) to match operand 1 with operand 0. Add
3127 check in insn constraint that operand 1 matches operand 0.
3128 Use SWI12 mode iterator to also handle HImode operands.
3129 (*ashl<mode>3_1_slp): Ditto.
3130 (*<shift_insn><mode>3_1_slp): Ditto.
3131 (*<rotate_insn><mode>3_1_slp): Ditto.
3132
3133 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
3134
3135 * config/arm/arm-builtins.c
3136 (arm_expand_ternop_builtin): Remove explicit sha1 builtin handling.
3137 (arm_expand_unop_builtin): Likewise.
3138 * config/arm/crypto.md
3139 (crypto_sha1h): Convert from define_insn to define_expand.
3140 (crypto_<crypto_pattern>): Likewise.
3141 (crypto_sha1h_lb): New define_insn.
3142 (crypto_<crypto_pattern>_lb): Likewise.
3143
3144 2019-07-18 Sylvia Taylor <sylvia.taylor@arm.com>
3145
3146 PR target/90317
3147 * config/arm/arm_neon.h (vsha1h_u32): Refactor.
3148 (vsha1cq_u32): Likewise.
3149 (vsha1pq_u32): Likewise.
3150 (vsha1mq_u32): Likewise.
3151 * config/arm/crypto.md (crypto_sha1h): Remove zero extend, correct
3152 vec select.
3153 (crypto_sha1c): Correct vec select.
3154 (crypto_sha1m): Likewise.
3155 (crypto_sha1p): Likewise.
3156
3157 2019-07-18 Richard Earnshaw <rearnsha@arm.com>
3158
3159 * config/arm/predicates.md (arm_borrow_operation): New predicate.
3160 * config/arm/arm.c (subdi3_compare1): Use CCmode for the split.
3161 (arm_subdi3, subdi_di_zesidi, subdi_di_sesidi): Likewise.
3162 (subdi_zesidi_zesidi): Likewise.
3163 (negdi2_compare, negdi2_insn): Likewise.
3164 (negdi_extensidi): Likewise.
3165 (negdi_zero_extendsidi): Likewise.
3166 (arm_cmpdi_insn): Likewise.
3167 (subsi3_carryin): Use arm_borrow_operation.
3168 (subsi3_carryin_const): Likewise.
3169 (subsi3_carryin_const0): Likewise.
3170 (subsi3_carryin_compare): Likewise.
3171 (subsi3_carryin_compare_const): Likewise.
3172 (subsi3_carryin_compare_const0): Likewise.
3173 (subsi3_carryin_shift): Likewise.
3174 (rsbsi3_carryin_shift): Likewise.
3175 (negsi2_carryin_compare): Likewise.
3176
3177 2019-07-18 Bin Cheng <bin.cheng@linux.alibaba.com>
3178
3179 PR tree-optimization/91137
3180 * tree-ssa-loop-ivopts.c (struct ivopts_data): New field.
3181 (tree_ssa_iv_optimize_init, alloc_iv, tree_ssa_iv_optimize_finalize):
3182 Init, use and fini the above new field.
3183 (determine_base_object_1): New function.
3184 (determine_base_object): Reimplement using walk_tree.
3185
3186 2019-07-18 Richard Sandiford <richard.sandiford@arm.com>
3187
3188 * basic-block.h (CLEANUP_FORCE_FAST_DCE): New macro.
3189 * cfgcleanup.c (cleanup_cfg): Call run_fast_dce if
3190 CLEANUP_FORCE_FAST_DCE is set.
3191 * ifcvt.c (rest_of_handle_if_conversion): Pass
3192 CLEANUP_FORCE_FAST_DCE to the final cleanup_cfg call if
3193 if-conversion succeeded.
3194
3195 2019-07-18 Richard Biener <rguenther@suse.de>
3196
3197 * tree-ssa-sccvn.c (vn_walk_cb_data::push_partial_def): Refactor
3198 branches to make code less indented.
3199
3200 2019-07-17 Alexandre Oliva <oliva@adacore.com>
3201
3202 PR middle-end/81824
3203 * attribs.c (decls_mismatched_attributes): Simplify the logic
3204 that avoids duplicates and false positives.
3205
3206 2019-07-17 John David Anglin <danglin@gcc.gnu.org>
3207
3208 * config/pa/pa.c (pa_som_asm_init_sections): Don't force all constant
3209 data into data section when generating PIC code.
3210 (pa_select_section): Use pa_reloc_rw_mask() to qualify relocs.
3211 (pa_reloc_rw_mask): Return 3 when generating PIC code and when
3212 generating code for SOM targets earlier than HP-UX 11. Otherwise,
3213 return 2 for SOM and 0 for other targets.
3214
3215 2019-07-17 Jeff Law <law@redhat.com>
3216
3217 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Fix formatting.
3218 (dse_walker::dse_optimize_stmt): Likewise. Add missing return to
3219 avoid unexpected switch statement fallthru.
3220
3221 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
3222
3223 * config/i386/i386.md (*add<dwi>3_doubleword):
3224 Remove redundant constraints.
3225 (*add<mode>_1): Ditto.
3226 (*addhi_1): Ditto.
3227 (*addqi_1): Ditto.
3228 (*addqi_1_slp): Ditto.
3229 (*add<mode>_2): Ditto.
3230 (*addv<mode>4): Ditto.
3231 (*sub<dwi>3_doubleword): Ditto.
3232 (*sub<mode>_1): Ditto.
3233 (*subqi_1_slp): Ditto.
3234 (*sub<mode>_2): Ditto.
3235 (*subv<mode>4): Ditto.
3236 (*sub<mode>_3): Ditto.
3237 (@add<mode>3_carry): Ditto.
3238 (@sub<mode>3_carry): Ditto.
3239 (*add<mode>3_cc_overflow_1): Ditto.
3240 (*add<mode>3_zext_cc_overflow_2): Ditto.
3241 (*anddi_1): Ditto.
3242 (*and<mode>_1): Ditto.
3243 (*andqi_1): Ditto.
3244 (*andqi_1_slp): Ditto.
3245 (*anddi_2): Ditto.
3246 (*andqi_2_maybe_si): Ditto.
3247 (*and<mode>_2): Ditto.
3248 (*andqi_2_slp): Ditto.
3249 (*<code><mode>_1): Ditto.
3250 (*<code>qi_1): Ditto.
3251 (*<code>qi_1_slp): Ditto.
3252 (*<code><mode>_2): Ditto.
3253 (*<code>qi_2_slp): Ditto.
3254
3255 2019-07-17 Jan Hubicka <hubicka@ucw.cz>
3256
3257 * alias.c (record_component_aliases): Do not simplify pointed-to
3258 types of ODR types.
3259
3260 2019-07-17 Uroš Bizjak <ubizjak@gmail.com>
3261
3262 * config/i386/i386.md (*andqi_2_maybe_si): Handle potential
3263 partial reg stall on alternative 2.
3264
3265 2019-07-17 Richard Biener <rguenther@suse.de>
3266
3267 PR tree-optimization/91178
3268 * tree-ssa.c (release_defs_bitset): Iterate from higher to
3269 lower SSA names to avoid quadratic behavior in the common case.
3270 * tree-data-ref.c (split_constant_offset): Add limit argument
3271 and pass it down. Initialize it from PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
3272 (split_constant_offset_1): Add limit argument and use it to
3273 limit SSA def walking. Optimize the common plus/minus case.
3274
3275 2019-07-17 Richard Biener <rguenther@suse.de>
3276
3277 PR tree-optimization/91178
3278 * tree-vect-stmts.c (get_group_load_store_type): For SLP
3279 loads with a gap larger than the vector size always use
3280 VMAT_STRIDED_SLP.
3281 (vectorizable_load): For VMAT_STRIDED_SLP with a permutation
3282 avoid loading vectors that are only contained in the gap
3283 and thus are not needed.
3284
3285 2019-07-17 Richard Biener <rguenther@suse.de>
3286
3287 PR tree-optimization/91180
3288 * tree-ssa-sccvn.c (vn_reference_lookup_3): Fix offset
3289 computation for memset partial defs.
3290
3291 2019-07-17 Jakub Jelinek <jakub@redhat.com>
3292
3293 * gimple.h (enum gf_mask): Remove GF_OMP_FOR_SIMD, change
3294 GF_OMP_FOR_KIND_SIMD to a value serially after other kinds,
3295 divide GF_OMP_FOR_KIND_MASK, GF_OMP_FOR_COMBINED,
3296 GF_OMP_FOR_COMBINED_INTO, GF_OMP_FOR_GRID_PHONY,
3297 GF_OMP_FOR_GRID_INTRA_GROUP and GF_OMP_FOR_GRID_GROUP_ITER by two.
3298 * omp-grid.c (grid_process_grid_body,
3299 grid_eliminate_combined_simd_part): Use GF_OMP_FOR_KIND_SIMD instead
3300 of GF_OMP_FOR_SIMD, don't test & GF_OMP_FOR_SIMD but
3301 == GF_OMP_FOR_KIND_SIMD.
3302 * omp-low.c (build_outer_var_ref, scan_sharing_clauses,
3303 check_omp_nesting_restrictions, scan_omp_1_stmt,
3304 lower_rec_input_clauses, lower_lastprivate_conditional_clauses,
3305 lower_lastprivate_clauses, lower_reduction_clauses, lower_omp_scan,
3306 omp_find_scan): Likewise.
3307 * omp-expand.c (expand_omp_for): Likewise.
3308 * omp-general.c (omp_extract_for_data): Likewise.
3309
3310 PR tree-optimization/91157
3311 * tree-vect-generic.c (expand_vector_comparison): Handle lhs being
3312 a vector boolean with scalar mode.
3313 (expand_vector_condition): Handle first operand being a vector boolean
3314 with scalar mode.
3315 (expand_vector_operations_1): For comparisons, don't bail out early
3316 if the return type is vector boolean with scalar mode, but comparison
3317 operand type is not.
3318
3319 2019-07-17 Richard Biener <rguenther@suse.de>
3320
3321 PR tree-optimization/91181
3322 * tree-vect-slp.c (vect_build_slp_tree_1): Do not compare
3323 IFN_LOADs as calls.
3324
3325 2019-07-16 Uroš Bizjak <ubizjak@gmail.com>
3326
3327 * config/i386/i386.md (*testdi_1): Match CCZmode for
3328 constants that might have the SImode sign bit set.
3329 (*testqi_1_maybe_si): Remove "!" constraint modifier.
3330 Use correct constraints for pentium pairing.
3331 (*test<mode>_1): Ditto.
3332
3333 2019-07-16 Jeff Law <law@redhat.com>
3334
3335 PR rtl-optimization/91173
3336 * tree-ssa-address.c (addr_for_mem_ref): If the base is an
3337 SSA_NAME with a constant value, fold its value into the offset
3338 and clear the base before calling gen_addr_rtx.
3339
3340 2019-07-16 Jakub Jelinek <jakub@redhat.com>
3341
3342 PR rtl-optimization/91164
3343 * dse.c (rest_of_handle_dse): If dead edges have been purged,
3344 invalidate dominance info.
3345
3346 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3347
3348 * read-md.h (md_reader::record_potential_iterator_use): Add a
3349 file_location parameter.
3350 * read-rtl.c (attribute_use::loc): New field.
3351 (map_attr_string): Take a file_location parameter. Report cases
3352 in which attributes map to multiple distinct values.
3353 (apply_attribute_uses): Update call accordingly.
3354 (md_reader::handle_overloaded_name): Likewise.
3355 (md_reader::apply_iterator_to_string): Likewise. Skip empty
3356 nonnull strings.
3357 (record_attribute_use): Take a file_location parameter.
3358 Initialize attribute_use::loc.
3359 (md_reader::record_potential_iterator_use): Take a file_location
3360 parameter. Update call to record_attribute_use.
3361 (rtx_reader::rtx_alloc_for_name): Update call accordingly.
3362 (rtx_reader::read_rtx_code): Likewise.
3363 (rtx_reader::read_rtx_operand): Likewise. Record a location
3364 for implicitly-expanded empty strings.
3365
3366 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3367
3368 * read-md.h (md_reader::ptr_loc): Moved from read-md.c.
3369 Use file_location instead of separate fields.
3370 (md_reader::set_md_ptr_loc): Take a file_location instead of a
3371 separate filename and line number.
3372 * read-md.c (ptr_loc): As above.
3373 (md_reader::copy_md_ptr_loc): Update for new ptr_loc layout.
3374 (md_reader::fprint_md_ptr_loc): Likewise.
3375 (md_reader::set_md_ptr_loc): Likewise. Take a file_location
3376 instead of a separate filename and line number.
3377 (md_reader::read_string): Update call accordingly.
3378
3379 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3380
3381 * config/rs6000/rs6000.md (*mov<mode>_update1): Explicitly
3382 use <SFDF:mode>, <SFDF:MODE>, <SFDF:Ff> and <SFDF:bits> rather than
3383 leaving the choice between SFDF and P implicit.
3384 (*mov<mode>_update2): Likewise.
3385 (*cmp<IBM128:mode>_internal2): Explicitly use <IBM128:MODE>
3386 rather than leaving the choice betweem IBM128 and GPR implicit.
3387 (*fix<uns>_trunc<IEEE128:mode><QHSI:mode>2_mem): Explicitly use
3388 <IEEE128:MODE> rather than leaving the choice between IEEE128 and
3389 QHSI implicit.
3390 (AltiVec define_peephole2s): Explicitly use <ALTIVEC_DFORM:MODE>
3391 rather than leaving the choice between ALTIVEC_DFORM and P implicit.
3392 * config/rs6000/vsx.md
3393 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_fl_<FL_CONV:mode>)
3394 (*vsx_ext_<VSX_EXTRACT_I:VS_scalar>_ufl_<FL_CONV:mode>): Explicitly
3395 use <FL_CONV:VSisa> rather than leaving the choice between FL_CONV
3396 and VSX_EXTRACT_I implicit.
3397
3398 2019-07-16 Richard Sandiford <richard.sandiford@arm.com>
3399
3400 * config/mips/micromips.md (*movep<MOVEP1:mode><MOVEP2:mode>):
3401 Explicitly use <MOVEP1:MODE> for the mode attribute.
3402
3403 2019-07-16 Jan Hubicka <hubicka@ucw.cz>
3404
3405 PR bootstrap/91176
3406 * ipa-fnsummary.c (analyze_function_body): Skip debug stmts
3407
3408 2019-07-15 Segher Boessenkool <segher@kernel.crashing.org>
3409
3410 PR target/91050
3411 * config/rs6000/rs6000.c (rs6000_file_start): Never skip emitting a
3412 .machine directive.
3413
3414 2019-07-15 Uroš Bizjak <ubizjak@gmail.com>
3415
3416 * config/i386/i386.md (@test<mode>_ccno_1):
3417 Rename from test<mode>_ccno_1.
3418 (*testdi_1): Remove redundant alternatives. Remove modrm attribute.
3419 (*testqi_1_maybe_si): Remove modrm attribute.
3420 (*test<mode>_1): Ditto.
3421 * config/i386/i386-expand.c (ix86_split_idivmod): Use
3422 gen_test_ccno_1 and gen_extend_insn.
3423
3424 2019-07-15 Jan Hubicka <hubicka@ucw.cz>
3425
3426 * tree-ssa-alias.c (aliasing_component_refs_walk): Initialize same_p
3427 to 0.
3428
3429 2019-07-15 Richard Biener <rguenther@suse.de>
3430
3431 PR middle-end/91162
3432 * tree-cfg.c (move_block_to_fn): When releasing a virtual PHI
3433 node make sure to replace all uses with something valid.
3434
3435 2019-07-15 Kewen Lin <linkw@gcc.gnu.org>
3436
3437 PR tree-optimization/88497
3438 * tree-ssa-reassoc.c (reassociate_bb): Swap the positions of
3439 GIMPLE_BINARY_RHS check and gimple_visited_p check, call new
3440 function undistribute_bitref_for_vector.
3441 (undistribute_bitref_for_vector): New function.
3442 (cleanup_vinfo_map): Likewise.
3443 (sort_by_mach_mode): Likewise.
3444
3445 2019-07-14 Uroš Bizjak <ubizjak@gmail.com>
3446
3447 * config/i386/i386.md (nonmemory_szext_operand): New mode attribute.
3448 (test<mode>_ccno_1): Macroize insn pattern from testsi_ccno_1
3449 and testdi_ccno_1 using SWI48 mode attribute.
3450 (*testdi_1): Use x86_64_szext_nonmemory_operand instead of
3451 x86_64_szext_general_operand.
3452 (*testqi_1_maybe_si): Use nonmemory_operand instead of general_operand.
3453 (*test<mode>_1): Use nonmemory_szext_operand mode attribute
3454 instead of genera_operand mode attribute.
3455
3456 2019-07-14 Vladislav Ivanishin <vlad@ispras.ru>
3457
3458 * gdbhooks.py (DumpFn.invoke): Add explicit casts of return values of
3459 fopen and fclose to their respective types.
3460 (DotFn.invoke): Ditto.
3461
3462 2019-07-14 Jan Hubicka <hubicka@ucw.cz>
3463
3464 * ipa-fnsummary.c (ipa_dump_hints): Do not dump array_index.
3465 (ipa_fn_summary::~ipa_fn_summary): Do not destroy array_index.
3466 (ipa_fn_summary_t::duplicate): Do not duplicate array_index.
3467 (array_index_predicate): Remove.
3468 (analyze_function_body): Account cost for variable ofsetted array
3469 indexing.
3470 (estimate_node_size_and_time): Do not compute array index hint.
3471 (ipa_merge_fn_summary_after_inlining): Do not merge array index hint.
3472 (inline_read_section): Do not read array index hint.
3473 (ipa_fn_summary_write): Do not write array index hint.
3474 * doc/invoke.texi (ipa-cp-array-index-hint-bonus): Remove.
3475 * ipa-cp.c (hint_time_bonus): Remove.
3476 * ipa-fnsummary.h (ipa_hints_vals): Remove array_index.
3477 (ipa_fnsummary): Remove array_index.
3478 * ipa-inline.c (want_inline_small_function_p): Do not use
3479 array_index.
3480 (edge_badness): Likewise.
3481 * params.def (PARAM_IPA_CP_ARRAY_INDEX_HINT_BONUS): Remove.
3482
3483 2019-07-14 Segher Boessenkool <segher@kernel.crashing.org>
3484
3485 PR target/91148
3486 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin): Remove
3487 superfluous "builtin function" phrasing.
3488
3489 2019-07-13 Jan Hubicka <hubicka@ucw.cz>
3490
3491 * tree-ssa-alias.c (component_ref_to_zero_sized_trailing_array_p):
3492 Break out from ...
3493 (aliasing_component_refs_walk): Break out from ...
3494 (aliasing_component_refs_p): ... here.
3495
3496 2019-07-13 Segher Boessenkool <segher@kernel.crashing.org>
3497
3498 PR target/91148
3499 * config/rs6000/rs6000.c (rs6000_invalid_builtin): Remove superfluous
3500 "builtin function" phrasing.
3501
3502 2019-07-13 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3503
3504 PR target/90723
3505 * recog.h (temporary_volatile_ok): New class.
3506 * config/aarch64/aarch64.c (aarch64_emit_sve_pred_move): Set
3507 volatile_ok temporarily to true using temporary_volatile_ok.
3508 * expr.c (emit_block_move_via_cpymem): Likewise.
3509 * optabs.c (maybe_legitimize_operand): Likewise.
3510
3511 2019-07-13 Jakub Jelinek <jakub@redhat.com>
3512
3513 * gimplify.c (struct gimplify_omp_ctx): Add order_concurrent member.
3514 (omp_notice_threadprivate_variable): Diagnose threadprivate variable
3515 uses inside of order(concurrent) constructs.
3516 (gimplify_scan_omp_clauses): Set ctx->order_concurrent if
3517 OMP_CLAUSE_ORDER is seen.
3518 * omp-low.c (struct omp_context): Add order_concurrent member.
3519 (scan_sharing_clauses): Set ctx->order_concurrent if
3520 OMP_CLAUSE_ORDER is seen.
3521 (check_omp_nesting_restrictions): Diagnose ordered or atomic inside
3522 of simd order(concurrent). Diagnose constructs not allowed inside of
3523 for order(concurrent).
3524 (setjmp_or_longjmp_p): Add a context and TREE_PUBLIC check to avoid
3525 complaining about static double setjmp (double); or class static
3526 methods or non-global namespace setjmps.
3527 (omp_runtime_api_call): New function.
3528 (scan_omp_1_stmt): Diagnose OpenMP runtime API calls inside of
3529 order(concurrent) loops.
3530
3531 2019-07-12 Martin Sebor <msebor@redhat.com>
3532
3533 * doc/invoke.texi (ssa-name-def-chain-limit): Document new --param.
3534 * params.def (PARAM_SSA_NAME_DEF_CHAIN_LIMIT): Add new --param.
3535 * tree-vrp.c (vrp_prop::check_mem_ref): Use
3536 PARAM_SSA_NAME_DEF_CHAIN_LIMIT.
3537
3538 2019-07-12 Jan Hubicka <jh@suse.cz>
3539
3540 * tree-ssa-alias.c (same_tmr_indexing_p): Break out from ...
3541 (indirect_refs_may_alias_p): ... here.
3542 (nonoverlapping_component_refs_since_match_p): Support also non-trivial
3543 mem refs in the access paths.
3544
3545 2019-07-12 Jiangning Liu <jiangning.liu@amperecomputing.com>
3546
3547 PR tree-optimization/89430
3548 * tree-ssa-phiopt.c (cond_store_replacement): Support conditional
3549 store elimination for local variable without address escape.
3550
3551 2019-07-12 Jeff Law <law@redhat.com>
3552
3553 * config/c6x/c6x.c (c6x_section_type): Clear SECTION_NOTYPE
3554 for the ".far" section.
3555
3556 2019-07-12 Richard Biener <rguenther@suse.de>
3557
3558 PR tree-optimization/91145
3559 * tree-vect-slp.c (vect_build_slp_tree_2): Fix reduction
3560 chain check.
3561
3562 2019-07-12 Alexandre Oliva <oliva@adacore.com>
3563
3564 * tree-eh.c (honor_protect_cleanup_actions): Use outer_
3565 rather than this_state as the lowering context for the ELSE
3566 seq in a GIMPLE_EH_ELSE.
3567
3568 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
3569
3570 * vector-builder.h (vector_builder::elt): Allow already-supplied
3571 elements to be read back before building is complete.
3572
3573 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
3574
3575 PR rtl-optimization/91136
3576 * df-core.c (ACCESSING REFS): Fix typos in comment.
3577 * resource.c (mark_target_live_reg): Add artificial defs that occur at
3578 the beginning of the block to the initial set of live registers.
3579
3580 2019-07-12 Richard Biener <rguenther@suse.de>
3581
3582 * fold-const.h (get_array_ctor_element_at_index): Adjust.
3583 * fold-const.c (get_array_ctor_element_at_index): Add
3584 ctor_idx output parameter informing the caller where in
3585 the constructor the element was (not) found. Add early exit
3586 for when the ctor is sorted.
3587 * gimple-fold.c (fold_array_ctor_reference): Support constant
3588 folding across multiple array elements.
3589
3590 2019-07-12 Eric Botcazou <ebotcazou@adacore.com>
3591
3592 * cfgexpand.c (expand_gimple_stmt_1) <GIMPLE_RETURN>: If the statement
3593 doesn't have location, set the current location to the function's end.
3594
3595 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
3596
3597 * config/aarch64/aarch64.md (*compare_condjump<mode>)
3598 (loadwb_pair<GPI:mode>_<P:mode>, loadwb_pair<GPF:mode>_<P:mode>)
3599 (storewb_pair<GPI:mode>_<P:mode>, storewb_pair<GPF:mode>_<P:mode>)
3600 (*ands<mode>_compare0): Fix ambiguous uses of .md attributes.
3601 * config/aarch64/aarch64-simd.md
3602 (*aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): Likewise.
3603 (*aarch64_get_lane_zero_extend<GPI:mode><VDQQH:mode>): Likewise.
3604 * config/aarch64/aarch64-sve.md
3605 (while_ult<GPI:mode><PRED_ALL:mode>): Likewise.
3606 (*cond_<optab><mode>_any): Fix SVE_I/SVE_SDI typo.
3607
3608 2019-07-12 Richard Sandiford <richard.sandiford@arm.com>
3609
3610 * doc/md.texi: Document that @ patterns can have different
3611 numbers of operands.
3612 * genemit.c (handle_overloaded_gen): Handle this case.
3613 * genopinit.c (handle_overloaded_gen): Likewise.
3614 * gensupport.c (replace_operands_with_dups): Iterate over
3615 the new rtx's format rather than the old one's.
3616
3617 2019-07-12 Jakub Jelinek <jakub@redhat.com>
3618
3619 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_ORDER.
3620 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
3621 order clause entries.
3622 (walk_tree_1): Handle OMP_CLAUSE_ORDER.
3623 * tree-pretty-print.c (dump_omp_clause): Likewise.
3624 * gimplify.c (gimplify_scan_omp_clauses, gimplify_adjust_omp_clauses):
3625 Likewise.
3626 * omp-low.c (scan_sharing_clauses): Likewise.
3627 * tree-nested.c (convert_nonlocal_omp_clauses,
3628 convert_local_omp_clauses): Likewise.
3629
3630 2019-07-12 Kewen Lin <linkw@gcc.gnu.org>
3631
3632 * cfgrtl.c (print_rtl_with_bb): Emit a hint if the
3633 fallthrough target of current basic block isn't the placed
3634 right next.
3635
3636 2019-07-11 Sunil K Pandey <sunil.k.pandey@intel.com>
3637
3638 PR target/90980
3639 * config/i386/avx512fintrin.h (_mm512_loadu_epi64): New.
3640 (_mm512_storeu_epi64): Likewise.
3641 (_mm512_loadu_epi32): Likewise.
3642 (_mm512_storeu_epi32): Likewise.
3643 * config/i386/avx512vlintrin.h (_mm256_storeu_epi64): New.
3644 (_mm_storeu_epi64): Likewise.
3645 (_mm256_storeu_epi32): Likewise.
3646 (_mm_storeu_epi32): Likewise.
3647
3648 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
3649
3650 * config/rs6000/rs6000-logue.c: Add Modula-2 to comment.
3651
3652 2019-07-11 Segher Boessenkool <segher@kernel.crashing.org>
3653
3654 * config/rs6000/rs6000-logue.c (rs6000_output_function_epilogue):
3655 Handle Modula-2.
3656
3657 2019-07-11 Jakub Jelinek <jakub@redhat.com>
3658
3659 PR target/91124
3660 * config/i386/sse.md (sse2_cvtpd2dq<mask_name>): Change into ...
3661 (sse2_cvtpd2dq): ... this. Remove mask substitution macros.
3662 (sse2_cvtpd2dq_mask, sse2_cvtpd2dq_mask_1): New define_insns.
3663 (ufix_notruncv2dfv2si2<mask_name>): Change into ...
3664 (ufix_notruncv2dfv2si2): ... this. Remove mask substitution macros.
3665 (ufix_notruncv2dfv2si2_mask, ufix_notruncv2dfv2si2_mask_1): New
3666 define_insns.
3667 (ufix_truncv2dfv2si2<mask_name>): Change into ...
3668 (ufix_truncv2dfv2si2): ... this. Remove mask substitution macros.
3669 (ufix_truncv2dfv2si2_mask, ufix_truncv2dfv2si2_mask_1): New
3670 define_insns.
3671 (sse2_cvttpd2dq<mask_name>): Change into ...
3672 (sse2_cvttpd2dq): ... this. Remove mask substitution macros.
3673 (sse2_cvttpd2dq_mask, sse2_cvttpd2dq_mask_1): New define_insns.
3674 (*sse2_cvtpd2dq<mask_name>): Change into ...
3675 (*sse2_cvtpd2dq): ... this. Remove mask substitution macros.
3676 Add "C" constraint to const0_operand.
3677 (*sse2_cvtpd2dq_mask, *sse2_cvtpd2dq_mask_1): New define_insns.
3678 (sse2_cvtpd2ps_mask): Adjust expand to match *sse2_cvtpd2ps_mask
3679 changes.
3680
3681 PR target/91124
3682 * config/i386/i386-builtin-types.def
3683 (V32HI_FTYPE_V32HI_V32HI_V32HI_INT,
3684 V16HI_FTYPE_V16HI_V16HI_V16HI_INT, V8HI_FTYPE_V8HI_V8HI_V8HI_INT,
3685 V8SI_FTYPE_V8SI_V8SI_V8SI_INT, V4DI_FTYPE_V4DI_V4DI_V4DI_INT,
3686 V8DI_FTYPE_V8DI_V8DI_V8DI_INT, V16SI_FTYPE_V16SI_V16SI_V16SI_INT,
3687 V2DI_FTYPE_V2DI_V2DI_V2DI_INT, V4SI_FTYPE_V4SI_V4SI_V4SI_INT): Remove.
3688 * config/i386/i386-builtin.def (__builtin_ia32_vpshrdv_v32hi_mask,
3689 __builtin_ia32_vpshrdv_v32hi_maskz, __builtin_ia32_vpshrdv_v16hi_mask,
3690 __builtin_ia32_vpshrdv_v16hi_maskz, __builtin_ia32_vpshrdv_v8hi_mask,
3691 __builtin_ia32_vpshrdv_v8hi_maskz, __builtin_ia32_vpshrdv_v16si_mask,
3692 __builtin_ia32_vpshrdv_v16si_maskz, __builtin_ia32_vpshrdv_v8si_mask,
3693 __builtin_ia32_vpshrdv_v8si_maskz, __builtin_ia32_vpshrdv_v4si_mask,
3694 __builtin_ia32_vpshrdv_v4si_maskz, __builtin_ia32_vpshrdv_v8di_mask,
3695 __builtin_ia32_vpshrdv_v8di_maskz, __builtin_ia32_vpshrdv_v4di_mask,
3696 __builtin_ia32_vpshrdv_v4di_maskz, __builtin_ia32_vpshrdv_v2di_mask,
3697 __builtin_ia32_vpshrdv_v2di_maskz, __builtin_ia32_vpshldv_v32hi_mask,
3698 __builtin_ia32_vpshldv_v32hi_maskz, __builtin_ia32_vpshldv_v16hi_mask,
3699 __builtin_ia32_vpshldv_v16hi_maskz, __builtin_ia32_vpshldv_v8hi_mask,
3700 __builtin_ia32_vpshldv_v8hi_maskz, __builtin_ia32_vpshldv_v16si_mask,
3701 __builtin_ia32_vpshldv_v16si_maskz, __builtin_ia32_vpshldv_v8si_mask,
3702 __builtin_ia32_vpshldv_v8si_maskz, __builtin_ia32_vpshldv_v4si_mask,
3703 __builtin_ia32_vpshldv_v4si_maskz, __builtin_ia32_vpshldv_v8di_mask,
3704 __builtin_ia32_vpshldv_v8di_maskz, __builtin_ia32_vpshldv_v4di_mask,
3705 __builtin_ia32_vpshldv_v4di_maskz, __builtin_ia32_vpshldv_v2di_mask,
3706 __builtin_ia32_vpshldv_v2di_maskz, __builtin_ia32_vpdpbusd_v16si_mask,
3707 __builtin_ia32_vpdpbusd_v16si_maskz, __builtin_ia32_vpdpbusd_v8si_mask,
3708 __builtin_ia32_vpdpbusd_v8si_maskz, __builtin_ia32_vpdpbusd_v4si_mask,
3709 __builtin_ia32_vpdpbusd_v4si_maskz,
3710 __builtin_ia32_vpdpbusds_v16si_mask,
3711 __builtin_ia32_vpdpbusds_v16si_maskz,
3712 __builtin_ia32_vpdpbusds_v8si_mask,
3713 __builtin_ia32_vpdpbusds_v8si_maskz,
3714 __builtin_ia32_vpdpbusds_v4si_mask,
3715 __builtin_ia32_vpdpbusds_v4si_maskz,
3716 __builtin_ia32_vpdpwssd_v16si_mask,
3717 __builtin_ia32_vpdpwssd_v16si_maskz, __builtin_ia32_vpdpwssd_v8si_mask,
3718 __builtin_ia32_vpdpwssd_v8si_maskz, __builtin_ia32_vpdpwssd_v4si_mask,
3719 __builtin_ia32_vpdpwssd_v4si_maskz,
3720 __builtin_ia32_vpdpwssds_v16si_mask,
3721 __builtin_ia32_vpdpwssds_v16si_maskz,
3722 __builtin_ia32_vpdpwssds_v8si_mask,
3723 __builtin_ia32_vpdpwssds_v8si_maskz,
3724 __builtin_ia32_vpdpwssds_v4si_mask,
3725 __builtin_ia32_vpdpwssds_v4si_maskz): Use *_USI, *_UHI or *_UQI
3726 suffixed types rather than *_INT.
3727 * config/i386/i386-expand.c (ix86_expand_args_builtin): Don't handle
3728 V32HI_FTYPE_V32HI_V32HI_V32HI_INT, V16HI_FTYPE_V16HI_V16HI_V16HI_INT,
3729 V8HI_FTYPE_V8HI_V8HI_V8HI_INT, V8SI_FTYPE_V8SI_V8SI_V8SI_INT,
3730 V4DI_FTYPE_V4DI_V4DI_V4DI_INT, V8DI_FTYPE_V8DI_V8DI_V8DI_INT,
3731 V16SI_FTYPE_V16SI_V16SI_V16SI_INT, V2DI_FTYPE_V2DI_V2DI_V2DI_INT
3732 and V4SI_FTYPE_V4SI_V4SI_V4SI_INT.
3733
3734 2019-07-11 Aldy Hernandez <aldyh@redhat.com>
3735
3736 * tree-vrp.c (intersect_ranges): If we know the intersection is
3737 empty, there is no need to conservatively add anything else to
3738 the set.
3739
3740 2019-07-11 Richard Biener <rguenther@suse.de>
3741
3742 PR middle-end/91131
3743 * gimplify.c (gimplify_compound_literal_expr): Force a temporary
3744 when the object is volatile and we have not cleared it even though
3745 there are no nonzero elements.
3746
3747 2019-07-10 Michael Meissner <meissner@linux.ibm.com>
3748
3749 * config/rs6000/predicates.md (cint34_operand): Update
3750 SIGNED_34BIT_OFFSET_P call.
3751 (pcrel_address): Update SIGNED_34BIT_OFFSET_P call.
3752 (pcrel_external_address): Update SIGNED_34BIT_OFFSET_P call.
3753 * config/rs6000/rs6000.c (rs6000_prefixed_address): Update
3754 SIGNED_16BIT_OFFSET_P and SIGNED_34BIT_OFFSET_P calls.
3755 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): Remove EXTRA
3756 argument.
3757 (SIGNED_34BIT_OFFSET_P): Remove EXTRA argument.
3758 (SIGNED_16BIT_OFFSET_EXTRA_P): New macro, like
3759 SIGNED_16BIT_OFFSET_P with an EXTRA argument.
3760 (SIGNED_34BIT_OFFSET_EXTRA_P): New macro, like
3761 SIGNED_34BIT_OFFSET_P with an EXTRA argument.
3762
3763 2019-07-10 Iain Sandoe <iain@sandoe.co.uk>
3764
3765 * config/rs6000/darwin.h (LIB_SPEC): Collate this spec here.
3766 * config/rs6000/darwin7.h (LIB_SPEC): Remove.
3767 * config/rs6000/darwin8.h (LIB_SPEC): Remove.
3768 (DEF_MIN_OSX_VERSION): New.
3769
3770 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
3771
3772 * fold-const.c (fold_relational_const): Fix folding of
3773 vector-to-scalar NE_EXPRs.
3774 (test_vector_folding): Add more tests.
3775
3776 2019-07-10 Richard Sandiford <richard.sandiford@arm.com>
3777
3778 PR target/91060
3779 * config/arm/iterators.md (V2DI_ONLY): New mode iterator.
3780 * config/arm/neon.md (vec_set<mode>_internal): Add a '@' prefix.
3781 (vec_setv2di_internal): Reexpress as...
3782 (@vec_set<V2DI_ONLY:mode>_internal): ...this.
3783 * config/arm/arm.c (neon_expand_vector_init): Use gen_vec_set_internal
3784 rather than gen_neon_vset_lane<mode>.
3785
3786 2019-07-10 Vladimir Makarov <vmakarov@redhat.com>
3787
3788 PR target/91102
3789 * lra-constraints.c (process_alt_operands): Don't match user
3790 defined regs only if they are early clobbers.
3791
3792 2019-07-10 Marc Glisse <marc.glisse@inria.fr>
3793
3794 * wide-int.h (wi::lshift): Reject negative values for the fast path.
3795
3796 2019-07-10 Richard Biener <rguenther@suse.de>
3797
3798 PR tree-optimization/91126
3799 * tree-ssa-sccvn.c (n_walk_cb_data::push_partial_def): Adjust
3800 native encoding offset for BYTES_BIG_ENDIAN.
3801 (vn_reference_lookup_3): Likewise.
3802
3803 2019-07-10 Richard Biener <rguenther@suse.de>
3804
3805 * tree-ssa-sccvn.c (vn_reference_lookup_3): Look at valueized
3806 LHS whenever possible.
3807
3808 2019-07-09 Jan Hubicka <hubicka@ucw.cz>
3809
3810 * tree-ssa-alias.c (nonoverlapping_component_refs_p_1): Break out
3811 from ...; work also on duplicated types.
3812 (nonoverlapping_component_refs_since_match): ... here
3813 (ncr_type_uid): Break out from ...
3814 (ncr_compar): ... here; look for TYPE_UID of canonical type if
3815 available.
3816 (nonoverlapping_component_refs_p): Use same_type_for_tbaa to match
3817 the types and nonoverlapping_component_refs_p_1 to disambiguate.
3818
3819 2019-07-09 Martin Sebor <msebor@redhat.com>
3820
3821 PR tree-optimization/90989
3822 * tree-ssa-strlen.c (handle_char_store): Constrain a single character
3823 optimization to just single character stores.
3824
3825 2019-07-09 Joern Rennecke <joern.rennecke@riscy-ip.com>
3826
3827 * tree-vect-stmts.c (vectorizable_comparison) <!slp_node>:
3828 Swap operands only once.
3829
3830 2019-07-09 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
3831
3832 * cfgcleanup.c (old_insns_match_p): Check if used hard regs set is equal
3833 for both call instructions.
3834
3835 2019-07-09 John Darrington <john@darrington.wattle.id.au>
3836
3837 * simplify-rtx.c (simplify_unary_operation_1): Use GET_MODE_PRECISION
3838 rather than GET_MODE_BITSIZE to better handle partial integer modes.
3839
3840 2019-07-09 Michael Meissner <meissner@linux.ibm.com>
3841
3842 * config/rs6000/rs6000-internal.h (create_TOC_reference): Delete.
3843 * config/rs6000/rs6000-logue.c (create_TOC_reference): Move
3844 function from rs6000-logue.c back to rs6000.c.
3845 * config/rs6000/rs6000.c (create_TOC_reference): Likewise.
3846
3847 2019-07-09 Martin Sebor <msebor@redhat.com>
3848
3849 PR c++/61339
3850 * auto-profile.c: Change class-key of PODs to struct and others
3851 to class.
3852 * basic-block.h: Same.
3853 * bitmap.c (bitmap_alloc): Same.
3854 * bitmap.h: Same.
3855 * builtins.c (expand_builtin_prefetch): Same.
3856 (expand_builtin_interclass_mathfn): Same.
3857 (expand_builtin_strlen): Same.
3858 (expand_builtin_mempcpy_args): Same.
3859 (expand_cmpstr): Same.
3860 (expand_builtin___clear_cache): Same.
3861 (expand_ifn_atomic_bit_test_and): Same.
3862 (expand_builtin_thread_pointer): Same.
3863 (expand_builtin_set_thread_pointer): Same.
3864 * caller-save.c (setup_save_areas): Same.
3865 (replace_reg_with_saved_mem): Same.
3866 (insert_restore): Same.
3867 (insert_save): Same.
3868 (add_used_regs): Same.
3869 * cfg.c (get_bb_copy): Same.
3870 (set_loop_copy): Same.
3871 * cfg.h: Same.
3872 * cfganal.h: Same.
3873 * cfgexpand.c (alloc_stack_frame_space): Same.
3874 (add_stack_var): Same.
3875 (add_stack_var_conflict): Same.
3876 (add_scope_conflicts_1): Same.
3877 (update_alias_info_with_stack_vars): Same.
3878 (expand_used_vars): Same.
3879 * cfghooks.c (redirect_edge_and_branch_force): Same.
3880 (delete_basic_block): Same.
3881 (split_edge): Same.
3882 (make_forwarder_block): Same.
3883 (force_nonfallthru): Same.
3884 (duplicate_block): Same.
3885 (lv_flush_pending_stmts): Same.
3886 * cfghooks.h: Same.
3887 * cfgloop.c (flow_loops_cfg_dump): Same.
3888 (flow_loop_nested_p): Same.
3889 (superloop_at_depth): Same.
3890 (get_loop_latch_edges): Same.
3891 (flow_loop_dump): Same.
3892 (flow_loops_dump): Same.
3893 (flow_loops_free): Same.
3894 (flow_loop_nodes_find): Same.
3895 (establish_preds): Same.
3896 (flow_loop_tree_node_add): Same.
3897 (flow_loop_tree_node_remove): Same.
3898 (flow_loops_find): Same.
3899 (find_subloop_latch_edge_by_profile): Same.
3900 (find_subloop_latch_edge_by_ivs): Same.
3901 (mfb_redirect_edges_in_set): Same.
3902 (form_subloop): Same.
3903 (merge_latch_edges): Same.
3904 (disambiguate_multiple_latches): Same.
3905 (disambiguate_loops_with_multiple_latches): Same.
3906 (flow_bb_inside_loop_p): Same.
3907 (glb_enum_p): Same.
3908 (get_loop_body_with_size): Same.
3909 (get_loop_body): Same.
3910 (fill_sons_in_loop): Same.
3911 (get_loop_body_in_dom_order): Same.
3912 (get_loop_body_in_custom_order): Same.
3913 (release_recorded_exits): Same.
3914 (get_loop_exit_edges): Same.
3915 (num_loop_branches): Same.
3916 (remove_bb_from_loops): Same.
3917 (find_common_loop): Same.
3918 (delete_loop): Same.
3919 (cancel_loop): Same.
3920 (verify_loop_structure): Same.
3921 (loop_preheader_edge): Same.
3922 (loop_exit_edge_p): Same.
3923 (single_exit): Same.
3924 (loop_exits_to_bb_p): Same.
3925 (loop_exits_from_bb_p): Same.
3926 (get_loop_location): Same.
3927 (record_niter_bound): Same.
3928 (get_estimated_loop_iterations_int): Same.
3929 (max_stmt_executions_int): Same.
3930 (likely_max_stmt_executions_int): Same.
3931 (get_estimated_loop_iterations): Same.
3932 (get_max_loop_iterations): Same.
3933 (get_max_loop_iterations_int): Same.
3934 (get_likely_max_loop_iterations): Same.
3935 * cfgloop.h (simple_loop_desc): Same.
3936 (get_loop): Same.
3937 (loop_depth): Same.
3938 (loop_outer): Same.
3939 (loop_iterator::next): Same.
3940 (loop_outermost): Same.
3941 * cfgloopanal.c (mark_irreducible_loops): Same.
3942 (num_loop_insns): Same.
3943 (average_num_loop_insns): Same.
3944 (expected_loop_iterations_unbounded): Same.
3945 (expected_loop_iterations): Same.
3946 (mark_loop_exit_edges): Same.
3947 (single_likely_exit): Same.
3948 * cfgloopmanip.c (fix_bb_placement): Same.
3949 (fix_bb_placements): Same.
3950 (remove_path): Same.
3951 (place_new_loop): Same.
3952 (add_loop): Same.
3953 (scale_loop_frequencies): Same.
3954 (scale_loop_profile): Same.
3955 (create_empty_if_region_on_edge): Same.
3956 (create_empty_loop_on_edge): Same.
3957 (loopify): Same.
3958 (unloop): Same.
3959 (fix_loop_placements): Same.
3960 (copy_loop_info): Same.
3961 (duplicate_loop): Same.
3962 (duplicate_subloops): Same.
3963 (loop_redirect_edge): Same.
3964 (can_duplicate_loop_p): Same.
3965 (duplicate_loop_to_header_edge): Same.
3966 (mfb_keep_just): Same.
3967 (has_preds_from_loop): Same.
3968 (create_preheader): Same.
3969 (create_preheaders): Same.
3970 (lv_adjust_loop_entry_edge): Same.
3971 (loop_version): Same.
3972 * cfgloopmanip.h: Same.
3973 * cgraph.h: Same.
3974 * cgraphbuild.c: Same.
3975 * combine.c (make_extraction): Same.
3976 * config/i386/i386-features.c: Same.
3977 * config/i386/i386-features.h: Same.
3978 * config/i386/i386.c (ix86_emit_outlined_ms2sysv_save): Same.
3979 (ix86_emit_outlined_ms2sysv_restore): Same.
3980 (ix86_noce_conversion_profitable_p): Same.
3981 (ix86_init_cost): Same.
3982 (ix86_simd_clone_usable): Same.
3983 * configure.ac (ACX_PROG_CXX_WARNING_OPTS): Add -Wclass-is-pod and
3984 Wstruct-not-pod.
3985 * coretypes.h: Same.
3986 * data-streamer-in.c (string_for_index): Change class-key of PODs
3987 to struct and others to class.
3988 (streamer_read_indexed_string): Same.
3989 (streamer_read_string): Same.
3990 (bp_unpack_indexed_string): Same.
3991 (bp_unpack_string): Same.
3992 (streamer_read_uhwi): Same.
3993 (streamer_read_hwi): Same.
3994 (streamer_read_gcov_count): Same.
3995 (streamer_read_wide_int): Same.
3996 * data-streamer.h (streamer_write_bitpack): Same.
3997 (bp_unpack_value): Same.
3998 (streamer_write_char_stream): Same.
3999 (streamer_write_hwi_in_range): Same.
4000 (streamer_write_record_start): Same.
4001 * ddg.c (create_ddg_dep_from_intra_loop_link): Same.
4002 (add_cross_iteration_register_deps): Same.
4003 (build_intra_loop_deps): Same.
4004 * df-core.c (df_analyze): Same.
4005 (loop_post_order_compute): Same.
4006 (loop_inverted_post_order_compute): Same.
4007 * df-problems.c (df_rd_alloc): Same.
4008 (df_rd_simulate_one_insn): Same.
4009 (df_rd_local_compute): Same.
4010 (df_rd_init_solution): Same.
4011 (df_rd_confluence_n): Same.
4012 (df_rd_transfer_function): Same.
4013 (df_rd_free): Same.
4014 (df_rd_dump_defs_set): Same.
4015 (df_rd_top_dump): Same.
4016 (df_lr_alloc): Same.
4017 (df_lr_reset): Same.
4018 (df_lr_local_compute): Same.
4019 (df_lr_init): Same.
4020 (df_lr_confluence_n): Same.
4021 (df_lr_free): Same.
4022 (df_lr_top_dump): Same.
4023 (df_lr_verify_transfer_functions): Same.
4024 (df_live_alloc): Same.
4025 (df_live_reset): Same.
4026 (df_live_init): Same.
4027 (df_live_confluence_n): Same.
4028 (df_live_finalize): Same.
4029 (df_live_free): Same.
4030 (df_live_top_dump): Same.
4031 (df_live_verify_transfer_functions): Same.
4032 (df_mir_alloc): Same.
4033 (df_mir_reset): Same.
4034 (df_mir_init): Same.
4035 (df_mir_confluence_n): Same.
4036 (df_mir_free): Same.
4037 (df_mir_top_dump): Same.
4038 (df_word_lr_alloc): Same.
4039 (df_word_lr_reset): Same.
4040 (df_word_lr_init): Same.
4041 (df_word_lr_confluence_n): Same.
4042 (df_word_lr_free): Same.
4043 (df_word_lr_top_dump): Same.
4044 (df_md_alloc): Same.
4045 (df_md_simulate_one_insn): Same.
4046 (df_md_reset): Same.
4047 (df_md_init): Same.
4048 (df_md_free): Same.
4049 (df_md_top_dump): Same.
4050 * df-scan.c (df_insn_delete): Same.
4051 (df_insn_rescan): Same.
4052 (df_notes_rescan): Same.
4053 (df_sort_and_compress_mws): Same.
4054 (df_install_mws): Same.
4055 (df_refs_add_to_chains): Same.
4056 (df_ref_create_structure): Same.
4057 (df_ref_record): Same.
4058 (df_def_record_1): Same.
4059 (df_find_hard_reg_defs): Same.
4060 (df_uses_record): Same.
4061 (df_get_conditional_uses): Same.
4062 (df_get_call_refs): Same.
4063 (df_recompute_luids): Same.
4064 (df_get_entry_block_def_set): Same.
4065 (df_entry_block_defs_collect): Same.
4066 (df_get_exit_block_use_set): Same.
4067 (df_exit_block_uses_collect): Same.
4068 (df_mws_verify): Same.
4069 (df_bb_verify): Same.
4070 * df.h (df_scan_get_bb_info): Same.
4071 * doc/tm.texi: Same.
4072 * dse.c (record_store): Same.
4073 * dumpfile.h: Same.
4074 * emit-rtl.c (const_fixed_hasher::equal): Same.
4075 (set_mem_attributes_minus_bitpos): Same.
4076 (change_address): Same.
4077 (adjust_address_1): Same.
4078 (offset_address): Same.
4079 * emit-rtl.h: Same.
4080 * except.c (dw2_build_landing_pads): Same.
4081 (sjlj_emit_dispatch_table): Same.
4082 * explow.c (allocate_dynamic_stack_space): Same.
4083 (emit_stack_probe): Same.
4084 (probe_stack_range): Same.
4085 * expmed.c (store_bit_field_using_insv): Same.
4086 (store_bit_field_1): Same.
4087 (store_integral_bit_field): Same.
4088 (extract_bit_field_using_extv): Same.
4089 (extract_bit_field_1): Same.
4090 (emit_cstore): Same.
4091 * expr.c (emit_block_move_via_cpymem): Same.
4092 (expand_cmpstrn_or_cmpmem): Same.
4093 (set_storage_via_setmem): Same.
4094 (emit_single_push_insn_1): Same.
4095 (expand_assignment): Same.
4096 (store_constructor): Same.
4097 (expand_expr_real_2): Same.
4098 (expand_expr_real_1): Same.
4099 (try_casesi): Same.
4100 * flags.h: Same.
4101 * function.c (try_fit_stack_local): Same.
4102 (assign_stack_local_1): Same.
4103 (assign_stack_local): Same.
4104 (cut_slot_from_list): Same.
4105 (insert_slot_to_list): Same.
4106 (max_slot_level): Same.
4107 (move_slot_to_level): Same.
4108 (temp_address_hasher::equal): Same.
4109 (remove_unused_temp_slot_addresses): Same.
4110 (assign_temp): Same.
4111 (combine_temp_slots): Same.
4112 (update_temp_slot_address): Same.
4113 (preserve_temp_slots): Same.
4114 * function.h: Same.
4115 * fwprop.c: Same.
4116 * gcc-rich-location.h: Same.
4117 * gcov.c: Same.
4118 * genattrtab.c (check_attr_test): Same.
4119 (check_attr_value): Same.
4120 (convert_set_attr_alternative): Same.
4121 (convert_set_attr): Same.
4122 (check_defs): Same.
4123 (copy_boolean): Same.
4124 (get_attr_value): Same.
4125 (expand_delays): Same.
4126 (make_length_attrs): Same.
4127 (min_fn): Same.
4128 (make_alternative_compare): Same.
4129 (simplify_test_exp): Same.
4130 (tests_attr_p): Same.
4131 (get_attr_order): Same.
4132 (clear_struct_flag): Same.
4133 (gen_attr): Same.
4134 (compares_alternatives_p): Same.
4135 (gen_insn): Same.
4136 (gen_delay): Same.
4137 (find_attrs_to_cache): Same.
4138 (write_test_expr): Same.
4139 (walk_attr_value): Same.
4140 (write_attr_get): Same.
4141 (eliminate_known_true): Same.
4142 (write_insn_cases): Same.
4143 (write_attr_case): Same.
4144 (write_attr_valueq): Same.
4145 (write_attr_value): Same.
4146 (write_dummy_eligible_delay): Same.
4147 (next_comma_elt): Same.
4148 (find_attr): Same.
4149 (make_internal_attr): Same.
4150 (copy_rtx_unchanging): Same.
4151 (gen_insn_reserv): Same.
4152 (check_tune_attr): Same.
4153 (make_automaton_attrs): Same.
4154 (handle_arg): Same.
4155 * genextract.c (gen_insn): Same.
4156 (VEC_char_to_string): Same.
4157 * genmatch.c (print_operand): Same.
4158 (lower): Same.
4159 (parser::parse_operation): Same.
4160 (parser::parse_capture): Same.
4161 (parser::parse_c_expr): Same.
4162 (parser::parse_simplify): Same.
4163 (main): Same.
4164 * genoutput.c (output_operand_data): Same.
4165 (output_get_insn_name): Same.
4166 (compare_operands): Same.
4167 (place_operands): Same.
4168 (process_template): Same.
4169 (validate_insn_alternatives): Same.
4170 (validate_insn_operands): Same.
4171 (gen_expand): Same.
4172 (note_constraint): Same.
4173 * genpreds.c (write_one_predicate_function): Same.
4174 (add_constraint): Same.
4175 (process_define_register_constraint): Same.
4176 (write_lookup_constraint_1): Same.
4177 (write_lookup_constraint_array): Same.
4178 (write_insn_constraint_len): Same.
4179 (write_reg_class_for_constraint_1): Same.
4180 (write_constraint_satisfied_p_array): Same.
4181 * genrecog.c (optimize_subroutine_group): Same.
4182 * gensupport.c (process_define_predicate): Same.
4183 (queue_pattern): Same.
4184 (remove_from_queue): Same.
4185 (process_rtx): Same.
4186 (is_predicable): Same.
4187 (change_subst_attribute): Same.
4188 (subst_pattern_match): Same.
4189 (alter_constraints): Same.
4190 (alter_attrs_for_insn): Same.
4191 (shift_output_template): Same.
4192 (alter_output_for_subst_insn): Same.
4193 (process_one_cond_exec): Same.
4194 (subst_dup): Same.
4195 (process_define_cond_exec): Same.
4196 (mnemonic_htab_callback): Same.
4197 (gen_mnemonic_attr): Same.
4198 (read_md_rtx): Same.
4199 * ggc-page.c: Same.
4200 * gimple-loop-interchange.cc (dump_reduction): Same.
4201 (dump_induction): Same.
4202 (loop_cand::~loop_cand): Same.
4203 (free_data_refs_with_aux): Same.
4204 (tree_loop_interchange::interchange_loops): Same.
4205 (tree_loop_interchange::map_inductions_to_loop): Same.
4206 (tree_loop_interchange::move_code_to_inner_loop): Same.
4207 (compute_access_stride): Same.
4208 (compute_access_strides): Same.
4209 (proper_loop_form_for_interchange): Same.
4210 (tree_loop_interchange_compute_ddrs): Same.
4211 (prune_datarefs_not_in_loop): Same.
4212 (prepare_data_references): Same.
4213 (pass_linterchange::execute): Same.
4214 * gimple-loop-jam.c (bb_prevents_fusion_p): Same.
4215 (unroll_jam_possible_p): Same.
4216 (fuse_loops): Same.
4217 (adjust_unroll_factor): Same.
4218 (tree_loop_unroll_and_jam): Same.
4219 * gimple-loop-versioning.cc (loop_versioning::~loop_versioning): Same.
4220 (loop_versioning::expensive_stmt_p): Same.
4221 (loop_versioning::version_for_unity): Same.
4222 (loop_versioning::dump_inner_likelihood): Same.
4223 (loop_versioning::find_per_loop_multiplication): Same.
4224 (loop_versioning::analyze_term_using_scevs): Same.
4225 (loop_versioning::record_address_fragment): Same.
4226 (loop_versioning::analyze_expr): Same.
4227 (loop_versioning::analyze_blocks): Same.
4228 (loop_versioning::prune_conditions): Same.
4229 (loop_versioning::merge_loop_info): Same.
4230 (loop_versioning::add_loop_to_queue): Same.
4231 (loop_versioning::decide_whether_loop_is_versionable): Same.
4232 (loop_versioning::make_versioning_decisions): Same.
4233 (loop_versioning::implement_versioning_decisions): Same.
4234 * gimple-ssa-evrp-analyze.c
4235 (evrp_range_analyzer::record_ranges_from_phis): Same.
4236 * gimple-ssa-store-merging.c (split_store::split_store): Same.
4237 (count_multiple_uses): Same.
4238 (split_group): Same.
4239 (imm_store_chain_info::output_merged_store): Same.
4240 (pass_store_merging::process_store): Same.
4241 * gimple-ssa-strength-reduction.c (slsr_process_phi): Same.
4242 * gimple-ssa-warn-alloca.c (adjusted_warn_limit): Same.
4243 (is_max): Same.
4244 (alloca_call_type): Same.
4245 (pass_walloca::execute): Same.
4246 * gimple-streamer-in.c (input_phi): Same.
4247 (input_gimple_stmt): Same.
4248 * gimple-streamer.h: Same.
4249 * godump.c (go_force_record_alignment): Same.
4250 (go_format_type): Same.
4251 (go_output_type): Same.
4252 (go_output_fndecl): Same.
4253 (go_output_typedef): Same.
4254 (keyword_hash_init): Same.
4255 (find_dummy_types): Same.
4256 * graph.c (draw_cfg_nodes_no_loops): Same.
4257 (draw_cfg_nodes_for_loop): Same.
4258 * hard-reg-set.h (hard_reg_set_iter_next): Same.
4259 * hsa-brig.c: Same.
4260 * hsa-common.h (hsa_internal_fn_hasher::equal): Same.
4261 * hsa-dump.c (dump_hsa_cfun): Same.
4262 * hsa-gen.c (gen_function_def_parameters): Same.
4263 * hsa-regalloc.c (dump_hsa_cfun_regalloc): Same.
4264 * input.c (dump_line_table_statistics): Same.
4265 (test_lexer): Same.
4266 * input.h: Same.
4267 * internal-fn.c (get_multi_vector_move): Same.
4268 (expand_load_lanes_optab_fn): Same.
4269 (expand_GOMP_SIMT_ENTER_ALLOC): Same.
4270 (expand_GOMP_SIMT_EXIT): Same.
4271 (expand_GOMP_SIMT_LAST_LANE): Same.
4272 (expand_GOMP_SIMT_ORDERED_PRED): Same.
4273 (expand_GOMP_SIMT_VOTE_ANY): Same.
4274 (expand_GOMP_SIMT_XCHG_BFLY): Same.
4275 (expand_GOMP_SIMT_XCHG_IDX): Same.
4276 (expand_addsub_overflow): Same.
4277 (expand_neg_overflow): Same.
4278 (expand_mul_overflow): Same.
4279 (expand_call_mem_ref): Same.
4280 (expand_mask_load_optab_fn): Same.
4281 (expand_scatter_store_optab_fn): Same.
4282 (expand_gather_load_optab_fn): Same.
4283 * ipa-cp.c (ipa_get_parm_lattices): Same.
4284 (print_all_lattices): Same.
4285 (ignore_edge_p): Same.
4286 (build_toporder_info): Same.
4287 (free_toporder_info): Same.
4288 (push_node_to_stack): Same.
4289 (ipcp_lattice<valtype>::set_contains_variable): Same.
4290 (set_agg_lats_to_bottom): Same.
4291 (ipcp_bits_lattice::meet_with): Same.
4292 (set_single_call_flag): Same.
4293 (initialize_node_lattices): Same.
4294 (ipa_get_jf_ancestor_result): Same.
4295 (ipcp_verify_propagated_values): Same.
4296 (propagate_scalar_across_jump_function): Same.
4297 (propagate_context_across_jump_function): Same.
4298 (propagate_bits_across_jump_function): Same.
4299 (ipa_vr_operation_and_type_effects): Same.
4300 (propagate_vr_across_jump_function): Same.
4301 (set_check_aggs_by_ref): Same.
4302 (set_chain_of_aglats_contains_variable): Same.
4303 (merge_aggregate_lattices): Same.
4304 (agg_pass_through_permissible_p): Same.
4305 (propagate_aggs_across_jump_function): Same.
4306 (call_passes_through_thunk_p): Same.
4307 (propagate_constants_across_call): Same.
4308 (devirtualization_time_bonus): Same.
4309 (good_cloning_opportunity_p): Same.
4310 (context_independent_aggregate_values): Same.
4311 (gather_context_independent_values): Same.
4312 (perform_estimation_of_a_value): Same.
4313 (estimate_local_effects): Same.
4314 (value_topo_info<valtype>::add_val): Same.
4315 (add_all_node_vals_to_toposort): Same.
4316 (value_topo_info<valtype>::propagate_effects): Same.
4317 (ipcp_propagate_stage): Same.
4318 (ipcp_discover_new_direct_edges): Same.
4319 (same_node_or_its_all_contexts_clone_p): Same.
4320 (cgraph_edge_brings_value_p): Same.
4321 (gather_edges_for_value): Same.
4322 (create_specialized_node): Same.
4323 (find_more_scalar_values_for_callers_subset): Same.
4324 (find_more_contexts_for_caller_subset): Same.
4325 (copy_plats_to_inter): Same.
4326 (intersect_aggregates_with_edge): Same.
4327 (find_aggregate_values_for_callers_subset): Same.
4328 (cgraph_edge_brings_all_agg_vals_for_node): Same.
4329 (decide_about_value): Same.
4330 (decide_whether_version_node): Same.
4331 (spread_undeadness): Same.
4332 (identify_dead_nodes): Same.
4333 (ipcp_store_vr_results): Same.
4334 * ipa-devirt.c (final_warning_record::grow_type_warnings): Same.
4335 * ipa-fnsummary.c (ipa_fn_summary::account_size_time): Same.
4336 (redirect_to_unreachable): Same.
4337 (edge_set_predicate): Same.
4338 (evaluate_conditions_for_known_args): Same.
4339 (evaluate_properties_for_edge): Same.
4340 (ipa_fn_summary_t::duplicate): Same.
4341 (ipa_call_summary_t::duplicate): Same.
4342 (dump_ipa_call_summary): Same.
4343 (ipa_dump_fn_summary): Same.
4344 (eliminated_by_inlining_prob): Same.
4345 (set_cond_stmt_execution_predicate): Same.
4346 (set_switch_stmt_execution_predicate): Same.
4347 (compute_bb_predicates): Same.
4348 (will_be_nonconstant_expr_predicate): Same.
4349 (phi_result_unknown_predicate): Same.
4350 (analyze_function_body): Same.
4351 (compute_fn_summary): Same.
4352 (estimate_edge_devirt_benefit): Same.
4353 (estimate_edge_size_and_time): Same.
4354 (estimate_calls_size_and_time): Same.
4355 (estimate_node_size_and_time): Same.
4356 (remap_edge_change_prob): Same.
4357 (remap_edge_summaries): Same.
4358 (ipa_merge_fn_summary_after_inlining): Same.
4359 (ipa_fn_summary_generate): Same.
4360 (inline_read_section): Same.
4361 (ipa_fn_summary_read): Same.
4362 (ipa_fn_summary_write): Same.
4363 * ipa-fnsummary.h: Same.
4364 * ipa-hsa.c (ipa_hsa_read_section): Same.
4365 * ipa-icf-gimple.c (func_checker::compare_loops): Same.
4366 * ipa-icf.c (sem_function::param_used_p): Same.
4367 * ipa-inline-analysis.c (do_estimate_edge_time): Same.
4368 * ipa-inline.c (edge_badness): Same.
4369 (inline_small_functions): Same.
4370 * ipa-polymorphic-call.c
4371 (ipa_polymorphic_call_context::stream_out): Same.
4372 * ipa-predicate.c (predicate::remap_after_duplication): Same.
4373 (predicate::remap_after_inlining): Same.
4374 (predicate::stream_out): Same.
4375 * ipa-predicate.h: Same.
4376 * ipa-profile.c (ipa_profile_read_summary): Same.
4377 * ipa-prop.c (ipa_get_param_decl_index_1): Same.
4378 (count_formal_params): Same.
4379 (ipa_dump_param): Same.
4380 (ipa_alloc_node_params): Same.
4381 (ipa_print_node_jump_functions_for_edge): Same.
4382 (ipa_print_node_jump_functions): Same.
4383 (ipa_load_from_parm_agg): Same.
4384 (get_ancestor_addr_info): Same.
4385 (ipa_compute_jump_functions_for_edge): Same.
4386 (ipa_analyze_virtual_call_uses): Same.
4387 (ipa_analyze_stmt_uses): Same.
4388 (ipa_analyze_params_uses_in_bb): Same.
4389 (update_jump_functions_after_inlining): Same.
4390 (try_decrement_rdesc_refcount): Same.
4391 (ipa_impossible_devirt_target): Same.
4392 (update_indirect_edges_after_inlining): Same.
4393 (combine_controlled_uses_counters): Same.
4394 (ipa_edge_args_sum_t::duplicate): Same.
4395 (ipa_write_jump_function): Same.
4396 (ipa_write_indirect_edge_info): Same.
4397 (ipa_write_node_info): Same.
4398 (ipa_read_edge_info): Same.
4399 (ipa_prop_read_section): Same.
4400 (read_replacements_section): Same.
4401 * ipa-prop.h (ipa_get_param_count): Same.
4402 (ipa_get_param): Same.
4403 (ipa_get_type): Same.
4404 (ipa_get_param_move_cost): Same.
4405 (ipa_set_param_used): Same.
4406 (ipa_get_controlled_uses): Same.
4407 (ipa_set_controlled_uses): Same.
4408 (ipa_get_cs_argument_count): Same.
4409 * ipa-pure-const.c (analyze_function): Same.
4410 (pure_const_read_summary): Same.
4411 * ipa-ref.h: Same.
4412 * ipa-reference.c (ipa_reference_read_optimization_summary): Same.
4413 * ipa-split.c (test_nonssa_use): Same.
4414 (dump_split_point): Same.
4415 (dominated_by_forbidden): Same.
4416 (split_part_set_ssa_name_p): Same.
4417 (find_split_points): Same.
4418 * ira-build.c (finish_loop_tree_nodes): Same.
4419 (low_pressure_loop_node_p): Same.
4420 * ira-color.c (ira_reuse_stack_slot): Same.
4421 * ira-int.h: Same.
4422 * ira.c (setup_reg_equiv): Same.
4423 (print_insn_chain): Same.
4424 (ira): Same.
4425 * loop-doloop.c (doloop_condition_get): Same.
4426 (add_test): Same.
4427 (record_reg_sets): Same.
4428 (doloop_optimize): Same.
4429 * loop-init.c (loop_optimizer_init): Same.
4430 (fix_loop_structure): Same.
4431 * loop-invariant.c (merge_identical_invariants): Same.
4432 (compute_always_reached): Same.
4433 (find_exits): Same.
4434 (may_assign_reg_p): Same.
4435 (find_invariants_bb): Same.
4436 (find_invariants_body): Same.
4437 (replace_uses): Same.
4438 (can_move_invariant_reg): Same.
4439 (free_inv_motion_data): Same.
4440 (move_single_loop_invariants): Same.
4441 (change_pressure): Same.
4442 (mark_ref_regs): Same.
4443 (calculate_loop_reg_pressure): Same.
4444 * loop-iv.c (biv_entry_hasher::equal): Same.
4445 (iv_extend_to_rtx_code): Same.
4446 (check_iv_ref_table_size): Same.
4447 (clear_iv_info): Same.
4448 (latch_dominating_def): Same.
4449 (iv_get_reaching_def): Same.
4450 (iv_constant): Same.
4451 (iv_subreg): Same.
4452 (iv_extend): Same.
4453 (iv_neg): Same.
4454 (iv_add): Same.
4455 (iv_mult): Same.
4456 (get_biv_step): Same.
4457 (record_iv): Same.
4458 (analyzed_for_bivness_p): Same.
4459 (record_biv): Same.
4460 (iv_analyze_biv): Same.
4461 (iv_analyze_expr): Same.
4462 (iv_analyze_def): Same.
4463 (iv_analyze_op): Same.
4464 (iv_analyze): Same.
4465 (iv_analyze_result): Same.
4466 (biv_p): Same.
4467 (eliminate_implied_conditions): Same.
4468 (simplify_using_initial_values): Same.
4469 (shorten_into_mode): Same.
4470 (canonicalize_iv_subregs): Same.
4471 (determine_max_iter): Same.
4472 (check_simple_exit): Same.
4473 (find_simple_exit): Same.
4474 (get_simple_loop_desc): Same.
4475 * loop-unroll.c (report_unroll): Same.
4476 (decide_unrolling): Same.
4477 (unroll_loops): Same.
4478 (loop_exit_at_end_p): Same.
4479 (decide_unroll_constant_iterations): Same.
4480 (unroll_loop_constant_iterations): Same.
4481 (compare_and_jump_seq): Same.
4482 (unroll_loop_runtime_iterations): Same.
4483 (decide_unroll_stupid): Same.
4484 (unroll_loop_stupid): Same.
4485 (referenced_in_one_insn_in_loop_p): Same.
4486 (reset_debug_uses_in_loop): Same.
4487 (analyze_iv_to_split_insn): Same.
4488 * lra-eliminations.c (lra_debug_elim_table): Same.
4489 (setup_can_eliminate): Same.
4490 (form_sum): Same.
4491 (lra_get_elimination_hard_regno): Same.
4492 (lra_eliminate_regs_1): Same.
4493 (eliminate_regs_in_insn): Same.
4494 (update_reg_eliminate): Same.
4495 (init_elimination): Same.
4496 (lra_eliminate): Same.
4497 * lra-int.h: Same.
4498 * lra-lives.c (initiate_live_solver): Same.
4499 * lra-remat.c (create_remat_bb_data): Same.
4500 * lra-spills.c (lra_spill): Same.
4501 * lra.c (lra_set_insn_recog_data): Same.
4502 (lra_set_used_insn_alternative_by_uid): Same.
4503 (init_reg_info): Same.
4504 (expand_reg_info): Same.
4505 * lto-cgraph.c (output_symtab): Same.
4506 (read_identifier): Same.
4507 (get_alias_symbol): Same.
4508 (input_node): Same.
4509 (input_varpool_node): Same.
4510 (input_ref): Same.
4511 (input_edge): Same.
4512 (input_cgraph_1): Same.
4513 (input_refs): Same.
4514 (input_symtab): Same.
4515 (input_offload_tables): Same.
4516 (output_cgraph_opt_summary): Same.
4517 (input_edge_opt_summary): Same.
4518 (input_cgraph_opt_section): Same.
4519 * lto-section-in.c (lto_free_raw_section_data): Same.
4520 (lto_create_simple_input_block): Same.
4521 (lto_free_function_in_decl_state_for_node): Same.
4522 * lto-streamer-in.c (lto_tag_check_set): Same.
4523 (lto_location_cache::revert_location_cache): Same.
4524 (lto_location_cache::input_location): Same.
4525 (lto_input_location): Same.
4526 (stream_input_location_now): Same.
4527 (lto_input_tree_ref): Same.
4528 (lto_input_eh_catch_list): Same.
4529 (input_eh_region): Same.
4530 (lto_init_eh): Same.
4531 (make_new_block): Same.
4532 (input_cfg): Same.
4533 (fixup_call_stmt_edges): Same.
4534 (input_struct_function_base): Same.
4535 (input_function): Same.
4536 (lto_read_body_or_constructor): Same.
4537 (lto_read_tree_1): Same.
4538 (lto_read_tree): Same.
4539 (lto_input_scc): Same.
4540 (lto_input_tree_1): Same.
4541 (lto_input_toplevel_asms): Same.
4542 (lto_input_mode_table): Same.
4543 (lto_reader_init): Same.
4544 (lto_data_in_create): Same.
4545 * lto-streamer-out.c (output_cfg): Same.
4546 * lto-streamer.h: Same.
4547 * modulo-sched.c (duplicate_insns_of_cycles): Same.
4548 (generate_prolog_epilog): Same.
4549 (mark_loop_unsched): Same.
4550 (dump_insn_location): Same.
4551 (loop_canon_p): Same.
4552 (sms_schedule): Same.
4553 * omp-expand.c (expand_omp_for_ordered_loops): Same.
4554 (expand_omp_for_generic): Same.
4555 (expand_omp_for_static_nochunk): Same.
4556 (expand_omp_for_static_chunk): Same.
4557 (expand_omp_simd): Same.
4558 (expand_omp_taskloop_for_inner): Same.
4559 (expand_oacc_for): Same.
4560 (expand_omp_atomic_pipeline): Same.
4561 (mark_loops_in_oacc_kernels_region): Same.
4562 * omp-offload.c (oacc_xform_loop): Same.
4563 * omp-simd-clone.c (simd_clone_adjust): Same.
4564 * optabs-query.c (get_traditional_extraction_insn): Same.
4565 * optabs.c (expand_vector_broadcast): Same.
4566 (expand_binop_directly): Same.
4567 (expand_twoval_unop): Same.
4568 (expand_twoval_binop): Same.
4569 (expand_unop_direct): Same.
4570 (emit_indirect_jump): Same.
4571 (emit_conditional_move): Same.
4572 (emit_conditional_neg_or_complement): Same.
4573 (emit_conditional_add): Same.
4574 (vector_compare_rtx): Same.
4575 (expand_vec_perm_1): Same.
4576 (expand_vec_perm_const): Same.
4577 (expand_vec_cond_expr): Same.
4578 (expand_vec_series_expr): Same.
4579 (maybe_emit_atomic_exchange): Same.
4580 (maybe_emit_sync_lock_test_and_set): Same.
4581 (expand_atomic_compare_and_swap): Same.
4582 (expand_atomic_load): Same.
4583 (expand_atomic_store): Same.
4584 (maybe_emit_op): Same.
4585 (valid_multiword_target_p): Same.
4586 (create_integer_operand): Same.
4587 (maybe_legitimize_operand_same_code): Same.
4588 (maybe_legitimize_operand): Same.
4589 (create_convert_operand_from_type): Same.
4590 (can_reuse_operands_p): Same.
4591 (maybe_legitimize_operands): Same.
4592 (maybe_gen_insn): Same.
4593 (maybe_expand_insn): Same.
4594 (maybe_expand_jump_insn): Same.
4595 (expand_insn): Same.
4596 * optabs.h (create_expand_operand): Same.
4597 (create_fixed_operand): Same.
4598 (create_output_operand): Same.
4599 (create_input_operand): Same.
4600 (create_convert_operand_to): Same.
4601 (create_convert_operand_from): Same.
4602 * optinfo.h: Same.
4603 * poly-int.h: Same.
4604 * predict.c (optimize_insn_for_speed_p): Same.
4605 (optimize_loop_for_size_p): Same.
4606 (optimize_loop_for_speed_p): Same.
4607 (optimize_loop_nest_for_speed_p): Same.
4608 (get_base_value): Same.
4609 (predicted_by_loop_heuristics_p): Same.
4610 (predict_extra_loop_exits): Same.
4611 (predict_loops): Same.
4612 (predict_paths_for_bb): Same.
4613 (predict_paths_leading_to): Same.
4614 (propagate_freq): Same.
4615 (pass_profile::execute): Same.
4616 * predict.h: Same.
4617 * profile-count.c (profile_count::differs_from_p): Same.
4618 (profile_probability::differs_lot_from_p): Same.
4619 * profile-count.h: Same.
4620 * profile.c (branch_prob): Same.
4621 * regrename.c (free_chain_data): Same.
4622 (mark_conflict): Same.
4623 (create_new_chain): Same.
4624 (merge_overlapping_regs): Same.
4625 (init_rename_info): Same.
4626 (merge_chains): Same.
4627 (regrename_analyze): Same.
4628 (regrename_do_replace): Same.
4629 (scan_rtx_reg): Same.
4630 (record_out_operands): Same.
4631 (build_def_use): Same.
4632 * regrename.h: Same.
4633 * reload.h: Same.
4634 * reload1.c (init_reload): Same.
4635 (maybe_fix_stack_asms): Same.
4636 (copy_reloads): Same.
4637 (count_pseudo): Same.
4638 (count_spilled_pseudo): Same.
4639 (find_reg): Same.
4640 (find_reload_regs): Same.
4641 (select_reload_regs): Same.
4642 (spill_hard_reg): Same.
4643 (fixup_eh_region_note): Same.
4644 (set_reload_reg): Same.
4645 (allocate_reload_reg): Same.
4646 (compute_reload_subreg_offset): Same.
4647 (reload_adjust_reg_for_icode): Same.
4648 (emit_input_reload_insns): Same.
4649 (emit_output_reload_insns): Same.
4650 (do_input_reload): Same.
4651 (inherit_piecemeal_p): Same.
4652 * rtl.h: Same.
4653 * sanopt.c (maybe_get_dominating_check): Same.
4654 (maybe_optimize_ubsan_ptr_ifn): Same.
4655 (can_remove_asan_check): Same.
4656 (maybe_optimize_asan_check_ifn): Same.
4657 (sanopt_optimize_walker): Same.
4658 * sched-deps.c (add_dependence_list): Same.
4659 (chain_to_prev_insn): Same.
4660 (add_insn_mem_dependence): Same.
4661 (create_insn_reg_set): Same.
4662 (maybe_extend_reg_info_p): Same.
4663 (sched_analyze_reg): Same.
4664 (sched_analyze_1): Same.
4665 (get_implicit_reg_pending_clobbers): Same.
4666 (chain_to_prev_insn_p): Same.
4667 (deps_analyze_insn): Same.
4668 (deps_start_bb): Same.
4669 (sched_free_deps): Same.
4670 (init_deps): Same.
4671 (init_deps_reg_last): Same.
4672 (free_deps): Same.
4673 * sched-ebb.c: Same.
4674 * sched-int.h: Same.
4675 * sched-rgn.c (add_branch_dependences): Same.
4676 (concat_insn_mem_list): Same.
4677 (deps_join): Same.
4678 (sched_rgn_compute_dependencies): Same.
4679 * sel-sched-ir.c (reset_target_context): Same.
4680 (copy_deps_context): Same.
4681 (init_id_from_df): Same.
4682 (has_dependence_p): Same.
4683 (change_loops_latches): Same.
4684 (bb_top_order_comparator): Same.
4685 (make_region_from_loop_preheader): Same.
4686 (sel_init_pipelining): Same.
4687 (get_loop_nest_for_rgn): Same.
4688 (make_regions_from_the_rest): Same.
4689 (sel_is_loop_preheader_p): Same.
4690 * sel-sched-ir.h (inner_loop_header_p): Same.
4691 (get_all_loop_exits): Same.
4692 * selftest.h: Same.
4693 * sese.c (sese_build_liveouts): Same.
4694 (sese_insert_phis_for_liveouts): Same.
4695 * sese.h (defined_in_sese_p): Same.
4696 * sreal.c (sreal::stream_out): Same.
4697 * sreal.h: Same.
4698 * streamer-hooks.h: Same.
4699 * target-globals.c (save_target_globals): Same.
4700 * target-globals.h: Same.
4701 * target.def: Same.
4702 * target.h: Same.
4703 * targhooks.c (default_has_ifunc_p): Same.
4704 (default_empty_mask_is_expensive): Same.
4705 (default_init_cost): Same.
4706 * targhooks.h: Same.
4707 * toplev.c: Same.
4708 * tree-affine.c (aff_combination_mult): Same.
4709 (aff_combination_expand): Same.
4710 (aff_combination_constant_multiple_p): Same.
4711 * tree-affine.h: Same.
4712 * tree-cfg.c (build_gimple_cfg): Same.
4713 (replace_loop_annotate_in_block): Same.
4714 (replace_uses_by): Same.
4715 (remove_bb): Same.
4716 (dump_cfg_stats): Same.
4717 (gimple_duplicate_sese_region): Same.
4718 (gimple_duplicate_sese_tail): Same.
4719 (move_block_to_fn): Same.
4720 (replace_block_vars_by_duplicates): Same.
4721 (move_sese_region_to_fn): Same.
4722 (print_loops_bb): Same.
4723 (print_loop): Same.
4724 (print_loops): Same.
4725 (debug): Same.
4726 (debug_loops): Same.
4727 * tree-cfg.h: Same.
4728 * tree-chrec.c (chrec_fold_plus_poly_poly): Same.
4729 (chrec_fold_multiply_poly_poly): Same.
4730 (chrec_evaluate): Same.
4731 (chrec_component_in_loop_num): Same.
4732 (reset_evolution_in_loop): Same.
4733 (is_multivariate_chrec): Same.
4734 (chrec_contains_symbols): Same.
4735 (nb_vars_in_chrec): Same.
4736 (chrec_convert_1): Same.
4737 (chrec_convert_aggressive): Same.
4738 * tree-chrec.h: Same.
4739 * tree-core.h: Same.
4740 * tree-data-ref.c (dump_data_dependence_relation): Same.
4741 (canonicalize_base_object_address): Same.
4742 (data_ref_compare_tree): Same.
4743 (prune_runtime_alias_test_list): Same.
4744 (get_segment_min_max): Same.
4745 (create_intersect_range_checks): Same.
4746 (conflict_fn_no_dependence): Same.
4747 (object_address_invariant_in_loop_p): Same.
4748 (analyze_ziv_subscript): Same.
4749 (analyze_siv_subscript_cst_affine): Same.
4750 (analyze_miv_subscript): Same.
4751 (analyze_overlapping_iterations): Same.
4752 (build_classic_dist_vector_1): Same.
4753 (add_other_self_distances): Same.
4754 (same_access_functions): Same.
4755 (build_classic_dir_vector): Same.
4756 (subscript_dependence_tester_1): Same.
4757 (subscript_dependence_tester): Same.
4758 (access_functions_are_affine_or_constant_p): Same.
4759 (get_references_in_stmt): Same.
4760 (loop_nest_has_data_refs): Same.
4761 (graphite_find_data_references_in_stmt): Same.
4762 (find_data_references_in_bb): Same.
4763 (get_base_for_alignment): Same.
4764 (find_loop_nest_1): Same.
4765 (find_loop_nest): Same.
4766 * tree-data-ref.h (dr_alignment): Same.
4767 (ddr_dependence_level): Same.
4768 * tree-if-conv.c (fold_build_cond_expr): Same.
4769 (add_to_predicate_list): Same.
4770 (add_to_dst_predicate_list): Same.
4771 (phi_convertible_by_degenerating_args): Same.
4772 (idx_within_array_bound): Same.
4773 (all_preds_critical_p): Same.
4774 (pred_blocks_visited_p): Same.
4775 (predicate_bbs): Same.
4776 (build_region): Same.
4777 (if_convertible_loop_p_1): Same.
4778 (is_cond_scalar_reduction): Same.
4779 (predicate_scalar_phi): Same.
4780 (remove_conditions_and_labels): Same.
4781 (combine_blocks): Same.
4782 (version_loop_for_if_conversion): Same.
4783 (versionable_outer_loop_p): Same.
4784 (ifcvt_local_dce): Same.
4785 (tree_if_conversion): Same.
4786 (pass_if_conversion::gate): Same.
4787 * tree-if-conv.h: Same.
4788 * tree-inline.c (maybe_move_debug_stmts_to_successors): Same.
4789 * tree-loop-distribution.c (bb_top_order_cmp): Same.
4790 (free_rdg): Same.
4791 (stmt_has_scalar_dependences_outside_loop): Same.
4792 (copy_loop_before): Same.
4793 (create_bb_after_loop): Same.
4794 (const_with_all_bytes_same): Same.
4795 (generate_memset_builtin): Same.
4796 (generate_memcpy_builtin): Same.
4797 (destroy_loop): Same.
4798 (build_rdg_partition_for_vertex): Same.
4799 (compute_access_range): Same.
4800 (data_ref_segment_size): Same.
4801 (latch_dominated_by_data_ref): Same.
4802 (compute_alias_check_pairs): Same.
4803 (fuse_memset_builtins): Same.
4804 (finalize_partitions): Same.
4805 (find_seed_stmts_for_distribution): Same.
4806 (prepare_perfect_loop_nest): Same.
4807 * tree-parloops.c (lambda_transform_legal_p): Same.
4808 (loop_parallel_p): Same.
4809 (reduc_stmt_res): Same.
4810 (add_field_for_name): Same.
4811 (create_call_for_reduction_1): Same.
4812 (replace_uses_in_bb_by): Same.
4813 (transform_to_exit_first_loop_alt): Same.
4814 (try_transform_to_exit_first_loop_alt): Same.
4815 (transform_to_exit_first_loop): Same.
4816 (num_phis): Same.
4817 (gen_parallel_loop): Same.
4818 (gather_scalar_reductions): Same.
4819 (get_omp_data_i_param): Same.
4820 (try_create_reduction_list): Same.
4821 (oacc_entry_exit_single_gang): Same.
4822 (parallelize_loops): Same.
4823 * tree-pass.h: Same.
4824 * tree-predcom.c (determine_offset): Same.
4825 (last_always_executed_block): Same.
4826 (split_data_refs_to_components): Same.
4827 (suitable_component_p): Same.
4828 (valid_initializer_p): Same.
4829 (find_looparound_phi): Same.
4830 (insert_looparound_copy): Same.
4831 (add_looparound_copies): Same.
4832 (determine_roots_comp): Same.
4833 (predcom_tmp_var): Same.
4834 (initialize_root_vars): Same.
4835 (initialize_root_vars_store_elim_1): Same.
4836 (initialize_root_vars_store_elim_2): Same.
4837 (finalize_eliminated_stores): Same.
4838 (initialize_root_vars_lm): Same.
4839 (remove_stmt): Same.
4840 (determine_unroll_factor): Same.
4841 (execute_pred_commoning_cbck): Same.
4842 (base_names_in_chain_on): Same.
4843 (combine_chains): Same.
4844 (pcom_stmt_dominates_stmt_p): Same.
4845 (try_combine_chains): Same.
4846 (prepare_initializers_chain_store_elim): Same.
4847 (prepare_initializers_chain): Same.
4848 (prepare_initializers): Same.
4849 (prepare_finalizers_chain): Same.
4850 (prepare_finalizers): Same.
4851 (insert_init_seqs): Same.
4852 * tree-scalar-evolution.c (loop_phi_node_p): Same.
4853 (compute_overall_effect_of_inner_loop): Same.
4854 (add_to_evolution_1): Same.
4855 (add_to_evolution): Same.
4856 (follow_ssa_edge_binary): Same.
4857 (follow_ssa_edge_expr): Same.
4858 (backedge_phi_arg_p): Same.
4859 (follow_ssa_edge_in_condition_phi_branch): Same.
4860 (follow_ssa_edge_in_condition_phi): Same.
4861 (follow_ssa_edge_inner_loop_phi): Same.
4862 (follow_ssa_edge): Same.
4863 (analyze_evolution_in_loop): Same.
4864 (analyze_initial_condition): Same.
4865 (interpret_loop_phi): Same.
4866 (interpret_condition_phi): Same.
4867 (interpret_rhs_expr): Same.
4868 (interpret_expr): Same.
4869 (interpret_gimple_assign): Same.
4870 (analyze_scalar_evolution_1): Same.
4871 (analyze_scalar_evolution): Same.
4872 (analyze_scalar_evolution_for_address_of): Same.
4873 (get_instantiated_value_entry): Same.
4874 (loop_closed_phi_def): Same.
4875 (instantiate_scev_name): Same.
4876 (instantiate_scev_poly): Same.
4877 (instantiate_scev_binary): Same.
4878 (instantiate_scev_convert): Same.
4879 (instantiate_scev_not): Same.
4880 (instantiate_scev_r): Same.
4881 (instantiate_scev): Same.
4882 (resolve_mixers): Same.
4883 (initialize_scalar_evolutions_analyzer): Same.
4884 (scev_reset_htab): Same.
4885 (scev_reset): Same.
4886 (derive_simple_iv_with_niters): Same.
4887 (simple_iv_with_niters): Same.
4888 (expression_expensive_p): Same.
4889 (final_value_replacement_loop): Same.
4890 * tree-scalar-evolution.h (block_before_loop): Same.
4891 * tree-ssa-address.h: Same.
4892 * tree-ssa-dce.c (find_obviously_necessary_stmts): Same.
4893 * tree-ssa-dom.c (edge_info::record_simple_equiv): Same.
4894 (record_edge_info): Same.
4895 * tree-ssa-live.c (var_map_base_fini): Same.
4896 (remove_unused_locals): Same.
4897 * tree-ssa-live.h: Same.
4898 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Same.
4899 (pass_ch_vect::execute): Same.
4900 (pass_ch::process_loop_p): Same.
4901 * tree-ssa-loop-im.c (mem_ref_hasher::hash): Same.
4902 (movement_possibility): Same.
4903 (outermost_invariant_loop): Same.
4904 (stmt_cost): Same.
4905 (determine_max_movement): Same.
4906 (invariantness_dom_walker::before_dom_children): Same.
4907 (move_computations): Same.
4908 (may_move_till): Same.
4909 (force_move_till_op): Same.
4910 (force_move_till): Same.
4911 (memref_free): Same.
4912 (record_mem_ref_loc): Same.
4913 (set_ref_stored_in_loop): Same.
4914 (mark_ref_stored): Same.
4915 (sort_bbs_in_loop_postorder_cmp): Same.
4916 (sort_locs_in_loop_postorder_cmp): Same.
4917 (analyze_memory_references): Same.
4918 (mem_refs_may_alias_p): Same.
4919 (find_ref_loc_in_loop_cmp): Same.
4920 (rewrite_mem_ref_loc::operator): Same.
4921 (first_mem_ref_loc_1::operator): Same.
4922 (sm_set_flag_if_changed::operator): Same.
4923 (execute_sm_if_changed_flag_set): Same.
4924 (execute_sm): Same.
4925 (hoist_memory_references): Same.
4926 (ref_always_accessed::operator): Same.
4927 (refs_independent_p): Same.
4928 (record_dep_loop): Same.
4929 (ref_indep_loop_p_1): Same.
4930 (ref_indep_loop_p): Same.
4931 (can_sm_ref_p): Same.
4932 (find_refs_for_sm): Same.
4933 (loop_suitable_for_sm): Same.
4934 (store_motion_loop): Same.
4935 (store_motion): Same.
4936 (fill_always_executed_in): Same.
4937 * tree-ssa-loop-ivcanon.c (constant_after_peeling): Same.
4938 (estimated_unrolled_size): Same.
4939 (loop_edge_to_cancel): Same.
4940 (remove_exits_and_undefined_stmts): Same.
4941 (remove_redundant_iv_tests): Same.
4942 (unloop_loops): Same.
4943 (estimated_peeled_sequence_size): Same.
4944 (try_peel_loop): Same.
4945 (canonicalize_loop_induction_variables): Same.
4946 (canonicalize_induction_variables): Same.
4947 * tree-ssa-loop-ivopts.c (iv_inv_expr_hasher::equal): Same.
4948 (name_info): Same.
4949 (stmt_after_inc_pos): Same.
4950 (contains_abnormal_ssa_name_p): Same.
4951 (niter_for_exit): Same.
4952 (find_bivs): Same.
4953 (mark_bivs): Same.
4954 (find_givs_in_bb): Same.
4955 (find_induction_variables): Same.
4956 (find_interesting_uses_cond): Same.
4957 (outermost_invariant_loop_for_expr): Same.
4958 (idx_find_step): Same.
4959 (add_candidate_1): Same.
4960 (add_iv_candidate_derived_from_uses): Same.
4961 (alloc_use_cost_map): Same.
4962 (prepare_decl_rtl): Same.
4963 (generic_predict_doloop_p): Same.
4964 (computation_cost): Same.
4965 (determine_common_wider_type): Same.
4966 (get_computation_aff_1): Same.
4967 (get_use_type): Same.
4968 (determine_group_iv_cost_address): Same.
4969 (iv_period): Same.
4970 (difference_cannot_overflow_p): Same.
4971 (may_eliminate_iv): Same.
4972 (determine_set_costs): Same.
4973 (cheaper_cost_pair): Same.
4974 (compare_cost_pair): Same.
4975 (iv_ca_cand_for_group): Same.
4976 (iv_ca_recount_cost): Same.
4977 (iv_ca_set_remove_invs): Same.
4978 (iv_ca_set_no_cp): Same.
4979 (iv_ca_set_add_invs): Same.
4980 (iv_ca_set_cp): Same.
4981 (iv_ca_add_group): Same.
4982 (iv_ca_cost): Same.
4983 (iv_ca_compare_deps): Same.
4984 (iv_ca_delta_reverse): Same.
4985 (iv_ca_delta_commit): Same.
4986 (iv_ca_cand_used_p): Same.
4987 (iv_ca_delta_free): Same.
4988 (iv_ca_new): Same.
4989 (iv_ca_free): Same.
4990 (iv_ca_dump): Same.
4991 (iv_ca_extend): Same.
4992 (iv_ca_narrow): Same.
4993 (iv_ca_prune): Same.
4994 (cheaper_cost_with_cand): Same.
4995 (iv_ca_replace): Same.
4996 (try_add_cand_for): Same.
4997 (get_initial_solution): Same.
4998 (try_improve_iv_set): Same.
4999 (find_optimal_iv_set_1): Same.
5000 (create_new_iv): Same.
5001 (rewrite_use_compare): Same.
5002 (remove_unused_ivs): Same.
5003 (determine_scaling_factor): Same.
5004 * tree-ssa-loop-ivopts.h: Same.
5005 * tree-ssa-loop-manip.c (create_iv): Same.
5006 (compute_live_loop_exits): Same.
5007 (add_exit_phi): Same.
5008 (add_exit_phis): Same.
5009 (find_uses_to_rename_use): Same.
5010 (find_uses_to_rename_def): Same.
5011 (find_uses_to_rename_in_loop): Same.
5012 (rewrite_into_loop_closed_ssa): Same.
5013 (check_loop_closed_ssa_bb): Same.
5014 (split_loop_exit_edge): Same.
5015 (ip_end_pos): Same.
5016 (ip_normal_pos): Same.
5017 (copy_phi_node_args): Same.
5018 (gimple_duplicate_loop_to_header_edge): Same.
5019 (can_unroll_loop_p): Same.
5020 (determine_exit_conditions): Same.
5021 (scale_dominated_blocks_in_loop): Same.
5022 (niter_for_unrolled_loop): Same.
5023 (tree_transform_and_unroll_loop): Same.
5024 (rewrite_all_phi_nodes_with_iv): Same.
5025 * tree-ssa-loop-manip.h: Same.
5026 * tree-ssa-loop-niter.c (number_of_iterations_ne_max): Same.
5027 (number_of_iterations_ne): Same.
5028 (assert_no_overflow_lt): Same.
5029 (assert_loop_rolls_lt): Same.
5030 (number_of_iterations_lt): Same.
5031 (adjust_cond_for_loop_until_wrap): Same.
5032 (tree_simplify_using_condition): Same.
5033 (simplify_using_initial_conditions): Same.
5034 (simplify_using_outer_evolutions): Same.
5035 (loop_only_exit_p): Same.
5036 (ssa_defined_by_minus_one_stmt_p): Same.
5037 (number_of_iterations_popcount): Same.
5038 (number_of_iterations_exit): Same.
5039 (find_loop_niter): Same.
5040 (finite_loop_p): Same.
5041 (chain_of_csts_start): Same.
5042 (get_val_for): Same.
5043 (loop_niter_by_eval): Same.
5044 (derive_constant_upper_bound_ops): Same.
5045 (do_warn_aggressive_loop_optimizations): Same.
5046 (record_estimate): Same.
5047 (get_cst_init_from_scev): Same.
5048 (record_nonwrapping_iv): Same.
5049 (idx_infer_loop_bounds): Same.
5050 (infer_loop_bounds_from_ref): Same.
5051 (infer_loop_bounds_from_array): Same.
5052 (infer_loop_bounds_from_pointer_arith): Same.
5053 (infer_loop_bounds_from_signedness): Same.
5054 (bound_index): Same.
5055 (discover_iteration_bound_by_body_walk): Same.
5056 (maybe_lower_iteration_bound): Same.
5057 (estimate_numbers_of_iterations): Same.
5058 (estimated_loop_iterations): Same.
5059 (estimated_loop_iterations_int): Same.
5060 (max_loop_iterations): Same.
5061 (max_loop_iterations_int): Same.
5062 (likely_max_loop_iterations): Same.
5063 (likely_max_loop_iterations_int): Same.
5064 (estimated_stmt_executions_int): Same.
5065 (max_stmt_executions): Same.
5066 (likely_max_stmt_executions): Same.
5067 (estimated_stmt_executions): Same.
5068 (stmt_dominates_stmt_p): Same.
5069 (nowrap_type_p): Same.
5070 (loop_exits_before_overflow): Same.
5071 (scev_var_range_cant_overflow): Same.
5072 (scev_probably_wraps_p): Same.
5073 (free_numbers_of_iterations_estimates): Same.
5074 * tree-ssa-loop-niter.h: Same.
5075 * tree-ssa-loop-prefetch.c (release_mem_refs): Same.
5076 (idx_analyze_ref): Same.
5077 (analyze_ref): Same.
5078 (gather_memory_references_ref): Same.
5079 (mark_nontemporal_store): Same.
5080 (emit_mfence_after_loop): Same.
5081 (may_use_storent_in_loop_p): Same.
5082 (mark_nontemporal_stores): Same.
5083 (should_unroll_loop_p): Same.
5084 (volume_of_dist_vector): Same.
5085 (add_subscript_strides): Same.
5086 (self_reuse_distance): Same.
5087 (insn_to_prefetch_ratio_too_small_p): Same.
5088 * tree-ssa-loop-split.c (split_at_bb_p): Same.
5089 (patch_loop_exit): Same.
5090 (find_or_create_guard_phi): Same.
5091 (easy_exit_values): Same.
5092 (connect_loop_phis): Same.
5093 (connect_loops): Same.
5094 (compute_new_first_bound): Same.
5095 (split_loop): Same.
5096 (tree_ssa_split_loops): Same.
5097 * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Same.
5098 (is_maybe_undefined): Same.
5099 (tree_may_unswitch_on): Same.
5100 (simplify_using_entry_checks): Same.
5101 (tree_unswitch_single_loop): Same.
5102 (tree_unswitch_loop): Same.
5103 (tree_unswitch_outer_loop): Same.
5104 (empty_bb_without_guard_p): Same.
5105 (used_outside_loop_p): Same.
5106 (get_vop_from_header): Same.
5107 (hoist_guard): Same.
5108 * tree-ssa-loop.c (gate_oacc_kernels): Same.
5109 (get_lsm_tmp_name): Same.
5110 * tree-ssa-loop.h: Same.
5111 * tree-ssa-reassoc.c (add_repeat_to_ops_vec): Same.
5112 (build_and_add_sum): Same.
5113 (no_side_effect_bb): Same.
5114 (get_ops): Same.
5115 (linearize_expr): Same.
5116 (should_break_up_subtract): Same.
5117 (linearize_expr_tree): Same.
5118 * tree-ssa-scopedtables.c: Same.
5119 * tree-ssa-scopedtables.h: Same.
5120 * tree-ssa-structalias.c (condense_visit): Same.
5121 (label_visit): Same.
5122 (dump_pred_graph): Same.
5123 (perform_var_substitution): Same.
5124 (move_complex_constraints): Same.
5125 (remove_preds_and_fake_succs): Same.
5126 * tree-ssa-threadupdate.c (dbds_continue_enumeration_p): Same.
5127 (determine_bb_domination_status): Same.
5128 (duplicate_thread_path): Same.
5129 (thread_through_all_blocks): Same.
5130 * tree-ssa-threadupdate.h: Same.
5131 * tree-streamer-in.c (streamer_read_string_cst): Same.
5132 (input_identifier): Same.
5133 (unpack_ts_type_common_value_fields): Same.
5134 (unpack_ts_block_value_fields): Same.
5135 (unpack_ts_translation_unit_decl_value_fields): Same.
5136 (unpack_ts_omp_clause_value_fields): Same.
5137 (streamer_read_tree_bitfields): Same.
5138 (streamer_alloc_tree): Same.
5139 (lto_input_ts_common_tree_pointers): Same.
5140 (lto_input_ts_vector_tree_pointers): Same.
5141 (lto_input_ts_poly_tree_pointers): Same.
5142 (lto_input_ts_complex_tree_pointers): Same.
5143 (lto_input_ts_decl_minimal_tree_pointers): Same.
5144 (lto_input_ts_decl_common_tree_pointers): Same.
5145 (lto_input_ts_decl_non_common_tree_pointers): Same.
5146 (lto_input_ts_decl_with_vis_tree_pointers): Same.
5147 (lto_input_ts_field_decl_tree_pointers): Same.
5148 (lto_input_ts_function_decl_tree_pointers): Same.
5149 (lto_input_ts_type_common_tree_pointers): Same.
5150 (lto_input_ts_type_non_common_tree_pointers): Same.
5151 (lto_input_ts_list_tree_pointers): Same.
5152 (lto_input_ts_vec_tree_pointers): Same.
5153 (lto_input_ts_exp_tree_pointers): Same.
5154 (lto_input_ts_block_tree_pointers): Same.
5155 (lto_input_ts_binfo_tree_pointers): Same.
5156 (lto_input_ts_constructor_tree_pointers): Same.
5157 (lto_input_ts_omp_clause_tree_pointers): Same.
5158 (streamer_read_tree_body): Same.
5159 * tree-streamer.h: Same.
5160 * tree-switch-conversion.c (bit_test_cluster::is_beneficial): Same.
5161 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Same.
5162 (vect_analyze_possibly_independent_ddr): Same.
5163 (vect_analyze_data_ref_dependence): Same.
5164 (vect_compute_data_ref_alignment): Same.
5165 (vect_enhance_data_refs_alignment): Same.
5166 (vect_analyze_data_ref_access): Same.
5167 (vect_check_gather_scatter): Same.
5168 (vect_find_stmt_data_reference): Same.
5169 (vect_create_addr_base_for_vector_ref): Same.
5170 (vect_setup_realignment): Same.
5171 (vect_supportable_dr_alignment): Same.
5172 * tree-vect-loop-manip.c (rename_variables_in_bb): Same.
5173 (adjust_phi_and_debug_stmts): Same.
5174 (vect_set_loop_mask): Same.
5175 (add_preheader_seq): Same.
5176 (vect_maybe_permute_loop_masks): Same.
5177 (vect_set_loop_masks_directly): Same.
5178 (vect_set_loop_condition_masked): Same.
5179 (vect_set_loop_condition_unmasked): Same.
5180 (slpeel_duplicate_current_defs_from_edges): Same.
5181 (slpeel_add_loop_guard): Same.
5182 (slpeel_can_duplicate_loop_p): Same.
5183 (create_lcssa_for_virtual_phi): Same.
5184 (iv_phi_p): Same.
5185 (vect_update_ivs_after_vectorizer): Same.
5186 (vect_gen_vector_loop_niters_mult_vf): Same.
5187 (slpeel_update_phi_nodes_for_loops): Same.
5188 (slpeel_update_phi_nodes_for_guard1): Same.
5189 (find_guard_arg): Same.
5190 (slpeel_update_phi_nodes_for_guard2): Same.
5191 (slpeel_update_phi_nodes_for_lcssa): Same.
5192 (vect_do_peeling): Same.
5193 (vect_create_cond_for_alias_checks): Same.
5194 (vect_loop_versioning): Same.
5195 * tree-vect-loop.c (vect_determine_vf_for_stmt): Same.
5196 (vect_inner_phi_in_double_reduction_p): Same.
5197 (vect_analyze_scalar_cycles_1): Same.
5198 (vect_fixup_scalar_cycles_with_patterns): Same.
5199 (vect_get_loop_niters): Same.
5200 (bb_in_loop_p): Same.
5201 (vect_get_max_nscalars_per_iter): Same.
5202 (vect_verify_full_masking): Same.
5203 (vect_compute_single_scalar_iteration_cost): Same.
5204 (vect_analyze_loop_form_1): Same.
5205 (vect_analyze_loop_form): Same.
5206 (vect_active_double_reduction_p): Same.
5207 (vect_analyze_loop_operations): Same.
5208 (neutral_op_for_slp_reduction): Same.
5209 (vect_is_simple_reduction): Same.
5210 (vect_model_reduction_cost): Same.
5211 (get_initial_def_for_reduction): Same.
5212 (get_initial_defs_for_reduction): Same.
5213 (vect_create_epilog_for_reduction): Same.
5214 (vectorize_fold_left_reduction): Same.
5215 (vectorizable_reduction): Same.
5216 (vectorizable_induction): Same.
5217 (vectorizable_live_operation): Same.
5218 (loop_niters_no_overflow): Same.
5219 (vect_get_loop_mask): Same.
5220 (vect_transform_loop_stmt): Same.
5221 (vect_transform_loop): Same.
5222 * tree-vect-patterns.c (vect_reassociating_reduction_p): Same.
5223 (vect_determine_precisions): Same.
5224 (vect_pattern_recog_1): Same.
5225 * tree-vect-slp.c (vect_analyze_slp_instance): Same.
5226 * tree-vect-stmts.c (stmt_vectype): Same.
5227 (process_use): Same.
5228 (vect_init_vector_1): Same.
5229 (vect_truncate_gather_scatter_offset): Same.
5230 (get_group_load_store_type): Same.
5231 (vect_build_gather_load_calls): Same.
5232 (vect_get_strided_load_store_ops): Same.
5233 (vectorizable_simd_clone_call): Same.
5234 (vectorizable_store): Same.
5235 (permute_vec_elements): Same.
5236 (vectorizable_load): Same.
5237 (vect_transform_stmt): Same.
5238 (supportable_widening_operation): Same.
5239 * tree-vectorizer.c (vec_info::replace_stmt): Same.
5240 (vec_info::free_stmt_vec_info): Same.
5241 (vect_free_loop_info_assumptions): Same.
5242 (vect_loop_vectorized_call): Same.
5243 (set_uid_loop_bbs): Same.
5244 (vectorize_loops): Same.
5245 * tree-vectorizer.h (STMT_VINFO_BB_VINFO): Same.
5246 * tree.c (add_tree_to_fld_list): Same.
5247 (fld_type_variant_equal_p): Same.
5248 (fld_decl_context): Same.
5249 (fld_incomplete_type_of): Same.
5250 (free_lang_data_in_binfo): Same.
5251 (need_assembler_name_p): Same.
5252 (find_decls_types_r): Same.
5253 (get_eh_types_for_runtime): Same.
5254 (find_decls_types_in_eh_region): Same.
5255 (find_decls_types_in_node): Same.
5256 (assign_assembler_name_if_needed): Same.
5257 * value-prof.c (stream_out_histogram_value): Same.
5258 * value-prof.h: Same.
5259 * var-tracking.c (use_narrower_mode): Same.
5260 (prepare_call_arguments): Same.
5261 (vt_expand_loc_callback): Same.
5262 (resolve_expansions_pending_recursion): Same.
5263 (vt_expand_loc): Same.
5264 * varasm.c (const_hash_1): Same.
5265 (compare_constant): Same.
5266 (tree_output_constant_def): Same.
5267 (simplify_subtraction): Same.
5268 (get_pool_constant): Same.
5269 (output_constant_pool_2): Same.
5270 (output_constant_pool_1): Same.
5271 (mark_constants_in_pattern): Same.
5272 (mark_constant_pool): Same.
5273 (get_section_anchor): Same.
5274 * vr-values.c (compare_range_with_value): Same.
5275 (vr_values::extract_range_from_phi_node): Same.
5276 * vr-values.h: Same.
5277 * web.c (unionfind_union): Same.
5278 * wide-int.h: Same.
5279
5280 2019-07-09 Martin Sebor <msebor@redhat.com>
5281
5282 PR c++/61339
5283 * align.h: Change class-key from class to struct and vice versa
5284 to match convention and avoid -Wclass-is-pod and -Wstruct-no-pod.
5285 * alloc-pool.h: Same.
5286 * asan.c (shadow_mem_size): Same.
5287 * auto-profile.c: Same.
5288 * basic-block.h: Same.
5289 * bitmap.h: Same.
5290 * cfgexpand.c (set_rtl): Same.
5291 (expand_one_stack_var_at): Same.
5292 * cfghooks.h: Same.
5293 * cfgloop.h: Same.
5294 * cgraph.h: Same.
5295 * config/i386/i386.h: Same.
5296 * df-problems.c (df_print_bb_index): Same.
5297 * df-scan.c: Same.
5298 * df.h (df_single_use): Same.
5299 * diagnostic-show-locus.c (layout::print_annotation_line): Same.
5300 (layout::annotation_line_showed_range_p): Same.
5301 (get_printed_columns): Same.
5302 (correction::ensure_terminated): Same.
5303 (line_corrections::~line_corrections): Same.
5304 * dojump.h: Same.
5305 * dse.c: Same.
5306 * dump-context.h: Same.
5307 * dumpfile.h: Same.
5308 * dwarf2out.c: Same.
5309 * edit-context.c: Same.
5310 * fibonacci_heap.c (test_union_of_equal_heaps): Same.
5311 * flags.h: Same.
5312 * function.c (assign_stack_local): Same.
5313 * function.h: Same.
5314 * gcc.c: Same.
5315 * gcov.c (block_info::block_info): Same.
5316 * genattrtab.c: Same.
5317 * genextract.c: Same.
5318 * genmatch.c (comparison_code_p): Same.
5319 (id_base::id_base): Same.
5320 (decision_tree::print): Same.
5321 * genoutput.c: Same.
5322 * genpreds.c (write_one_predicate_function): Same.
5323 * genrecog.c (validate_pattern): Same.
5324 (find_operand_positions): Same.
5325 (optimize_subroutine_group): Same.
5326 (merge_pattern_transition::merge_pattern_transition): Same.
5327 (merge_pattern_info::merge_pattern_info): Same.
5328 (merge_state_result::merge_state_result): Same.
5329 (merge_into_state): Same.
5330 * gensupport.c: Same.
5331 * gensupport.h: Same.
5332 * ggc-common.c (init_ggc_heuristics): Same.
5333 * ggc-tests.c (test_union): Same.
5334 * gimple-loop-interchange.cc (dump_induction): Same.
5335 * gimple-loop-versioning.cc: Same.
5336 * gimple-match.h (gimple_match_cond::any_else): Same.
5337 * gimple-ssa-backprop.c: Same.
5338 * gimple-ssa-sprintf.c: Same.
5339 * gimple-ssa-store-merging.c (store_operand_info::store_operand_info):
5340 Same.
5341 (store_immediate_info::store_immediate_info): Same.
5342 (merged_store_group::apply_stores): Same.
5343 (get_location_for_stmts): Same.
5344 * gimple-ssa-strength-reduction.c: Same.
5345 * gimple-ssa-warn-alloca.c: Same.
5346 * gimple-ssa-warn-restrict.c (pass_wrestrict::execute): Same.
5347 * godump.c (go_type_decl): Same.
5348 * hash-map-tests.c (test_map_of_strings_to_int): Same.
5349 * hash-map.h: Same.
5350 * hash-set-tests.c (test_set_of_strings): Same.
5351 * hsa-brig.c: Same.
5352 * hsa-common.h: Same.
5353 * hsa-gen.c (transformable_switch_to_sbr_p): Same.
5354 * input.c (assert_loceq): Same.
5355 * input.h: Same.
5356 * ipa-cp.c: Same.
5357 * ipa-devirt.c (possible_polymorphic_call_targets_1): Same.
5358 * ipa-fnsummary.h: Same.
5359 * ipa-inline.h: Same.
5360 * ipa-prop.h: Same.
5361 * ipa-split.c (visit_bb): Same.
5362 * ira-int.h (minmax_set_iter_next): Same.
5363 * loop-invariant.c: Same.
5364 * loop-iv.c: Same.
5365 * lra-eliminations.c: Same.
5366 * lra-int.h: Same.
5367 * lra-lives.c (mark_regno_dead): Same.
5368 * lra-remat.c: Same.
5369 * lra-spills.c: Same.
5370 * lto-streamer.h: Same.
5371 * mem-stats.h: Same.
5372 * omp-grid.c (omp_grid_lastprivate_predicate): Same.
5373 * omp-low.c (omp_clause_aligned_alignment): Same.
5374 * optabs-query.h (get_vcond_eq_icode): Same.
5375 * optabs.h: Same.
5376 * opts.c (wrap_help): Same.
5377 * poly-int.h: Same.
5378 * predict.c (predict_paths_leading_to_edge): Same.
5379 * pretty-print.h: Same.
5380 * profile-count.h: Same.
5381 * read-md.h: Same.
5382 * read-rtl-function.c: Same.
5383 * ree.c: Same.
5384 * reginfo.c: Same.
5385 * regrename.c: Same.
5386 * regrename.h: Same.
5387 * reload.h: Same.
5388 * rtl-iter.h: Same.
5389 * rtl.h (costs_add_n_insns): Same.
5390 * sanopt.c: Same.
5391 * sched-int.h: Same.
5392 * sel-sched-ir.h: Same.
5393 * selftest.h: Same.
5394 * sese.h (vec_find): Same.
5395 * stmt.c: Same.
5396 * target-globals.h: Same.
5397 * tree-affine.c (aff_combination_find_elt): Same.
5398 * tree-affine.h: Same.
5399 * tree-data-ref.h: Same.
5400 * tree-outof-ssa.c (ssa_is_replaceable_p): Same.
5401 * tree-predcom.c: Same.
5402 * tree-scalar-evolution.c (find_var_scev_info): Same.
5403 * tree-ssa-alias.h: Same.
5404 * tree-ssa-ccp.c: Same.
5405 * tree-ssa-coalesce.c (ssa_conflicts_dump): Same.
5406 * tree-ssa-loop-im.c (for_all_locs_in_loop): Same.
5407 (rewrite_mem_refs): Same.
5408 (execute_sm_if_changed): Same.
5409 (hoist_memory_references): Same.
5410 * tree-ssa-loop-ivopts.c (operator<=): Same.
5411 * tree-ssa-loop.h: Same.
5412 * tree-ssa-pre.c (get_or_alloc_expr_for_name): Same.
5413 * tree-ssa-structalias.c: Same.
5414 * tree-switch-conversion.h (cluster::cluster): Same.
5415 (simple_cluster::simple_cluster): Same.
5416 * tree-vect-patterns.c (type_conversion_p): Same.
5417 * tree-vectorizer.c (dump_stmt_cost): Same.
5418 * tree-vectorizer.h (loop_vec_info_for_loop): Same.
5419 * tree.c (protected_set_expr_location): Same.
5420 * tree.h (desired_pro_or_demotion_p): Same.
5421 (fndecl_built_in_p): Same.
5422 * unique-ptr-tests.cc: Same.
5423 * var-tracking.c (delete_variable_part): Same.
5424 * varasm.c (assemble_real): Same.
5425 (tree_output_constant_def): Same.
5426 * vec.c: Same.
5427 * wide-int-bitmask.h: Same.
5428 * wide-int.h (decompose): Same.
5429
5430 2019-07-09 Richard Biener <rguenther@suse.de>
5431
5432 PR tree-optimization/91114
5433 * tree-vect-data-refs.c (vect_analyze_data_refs): Failure to
5434 find a vector type isn't fatal.
5435
5436 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
5437
5438 * config/aarch64/aarch64-simd.md
5439 (aarch64_crypto_aes<aes_op>v16qi): Redefine pattern with xor.
5440 (aarch64_crypto_aes<aesmc_op>v16qi): Remove attribute enabled.
5441 (*aarch64_crypto_aes<aes_op>v16qi_xor_combine): Remove both.
5442 (*aarch64_crypto_aese_fused,
5443 *aarch64_crypto_aesd_fused): Update to new definition.
5444 * config/aarch64/aarch64.c
5445 (aarch_macro_fusion_pair_p): Remove aese/aesmc fusion check.
5446
5447 2019-07-09 Richard Biener <rguenther@suse.de>
5448
5449 * gimple-match.h (gimple_match_op::resimplify): New.
5450 (gimple_resimplify1, gimple_resimplify2, gimple_resimplify3,
5451 gimple_resimplify4, gimple_resimplify5): Remove.
5452 * gimple-match-head.c (gimple_resimplify1, gimple_resimplify2,
5453 gimple_resimplify3, gimple_resimplify4, gimple_resimplify5):
5454 Make static.
5455 (gimple_match_op::resimplify): New.
5456 * tree-ssa-sccvn.c (vn_nary_build_or_lookup_1): Valueize
5457 according to availability. Use gimple_match_op::resimplify.
5458
5459 2019-07-09 Eric Botcazou <ebotcazou@adacore.com>
5460
5461 * ira-emit.c (emit_moves): Skip DEBUG_INSNs when setting the location.
5462
5463 2019-07-09 Sylvia Taylor <sylvia.taylor@arm.com>
5464
5465 * config/arm/crypto.md:
5466 (crypto_<crypto_pattern>): Redefine aese/aesd pattern with xor.
5467 (crypto_<crypto_pattern>): Remove attribute enabled for aesmc.
5468 (crypto_<crypto_pattern>): Split CRYPTO_BINARY into 2 patterns.
5469 (*aarch32_crypto_aese_fused, *aarch32_crypto_aesd_fused): New.
5470 * config/arm/arm.c
5471 (aarch_macro_fusion_pair_p): Remove aes/aesmc fusion check.
5472 * config/arm/aarch-common-protos.h
5473 (aarch_crypto_can_dual_issue): Remove.
5474 * config/arm/aarch-common.c
5475 (aarch_crypto_can_dual_issue): Likewise.
5476 * config/arm/exynos-m1.md: Remove aese/aesmc fusion.
5477 * config/arm/cortex-a53.md: Likewise.
5478 * config/arm/cortex-a57.md: Likewise.
5479 * config/arm/iterators.md:
5480 (CRYPTO_BINARY): Redefine.
5481 (CRYPTO_UNARY): Removed.
5482 (CRYPTO_AES, CRYPTO_AESMC): New.
5483
5484 2019-07-09 Richard Biener <rguenther@suse.de>
5485
5486 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add orig_ref member.
5487 (vn_reference_lookup_3): If the main ref has no access path recorded
5488 but orig_ref has use it to do access-path based disambiguation.
5489 (vn_reference_lookup_pieces): Adjust.
5490 (vn_reference_lookup): Pass down original ref if we valueized.
5491
5492 2019-07-09 Martin Liska <mliska@suse.cz>
5493
5494 * doc/extend.texi: Document influence on loop
5495 optimizers.
5496
5497 2019-07-09 Martin Liska <mliska@suse.cz>
5498
5499 * lto-compress.c (lto_normalized_zstd_level): Do not use
5500 ZSTD_CLEVEL_DEFAULT as it is not default in old releases
5501 of libzstd. One can use 0 as a default compression level.
5502
5503 2019-07-09 Martin Liska <mliska@suse.cz>
5504
5505 * doc/invoke.texi: Add link from -fprofile-dir option.
5506 Use better wording for 'gcno filename'.
5507
5508 2019-07-08 Martin Sebor <msebor@redhat.com>
5509
5510 PR middle-end/71924
5511 PR middle-end/90549
5512 * gimple-ssa-isolate-paths.c (isolate_path): Add attribute. Update
5513 comment.
5514 (args_loc_t): New type.
5515 (args_loc_t, locmap_t): same.
5516 (diag_returned_locals): New function.
5517 (is_addr_local): Same.
5518 (handle_return_addr_local_phi_arg, warn_return_addr_local): Same.
5519 (find_implicit_erroneous_behavior): Call warn_return_addr_local_phi_arg.
5520 (find_explicit_erroneous_behavior): Call warn_return_addr_local.
5521
5522 2019-07-08 Jakub Jelinek <jakub@redhat.com>
5523
5524 * tree-vect-stmts.c (scan_operand_equal_p): Look through MEM_REF
5525 with SSA_NAME address of POINTER_PLUS_EXPR. Handle MULT_EXPR
5526 and casts in offset when different, both through gimple stmts
5527 and through trees. Rewritten using loops to minimize code duplication
5528 for each operand.
5529
5530 2019-07-08 Eric Botcazou <ebotcazou@adacore.com>
5531
5532 * emit-rtl.c (set_insn_locations): New function moved from...
5533 * function.c (set_insn_locations): ...here.
5534 * ira-emit.c (emit_moves): Propagate location of the first instruction
5535 to the inserted move instructions.
5536 * reg-stack.c (compensate_edge): Set the location if the sequence is
5537 inserted on the edge.
5538 * rtl.h (set_insn_locations): Declare.
5539
5540 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
5541
5542 * config/rs6000/rs6000.c (rs6000_machine_from_flags): Ignore
5543 OPTION_MASK_PPC_GFXOPT and OPTION_MASK_PPC_GPOPT for selecting the
5544 .machine string.
5545
5546 2019-07-08 Segher Boessenkool <segher@kernel.crashing.org>
5547
5548 PR rtl-optimization/88233
5549 * common.opt (fsplit-wide-types-early): New option.
5550 * common/config/rs6000/rs6000-common.c
5551 (rs6000_option_optimization_table): Add OPT_fsplit_wide_types_early for
5552 OPT_LEVELS_ALL.
5553 * doc/invoke.texi (Optimization Options): Add -fsplit-wide-types-early.
5554 * lower-subreg.c (pass_lower_subreg2::gate): Add test for
5555 flag_split_wide_types_early.
5556 (pass_data_lower_subreg3): New.
5557 (pass_lower_subreg3): New.
5558 (make_pass_lower_subreg3): New.
5559 * passes.def (pass_lower_subreg2): Move after the loop passes.
5560 (pass_lower_subreg3): New, inserted where pass_lower_subreg2 was.
5561 * tree-pass.h (make_pass_lower_subreg2): Move up, to its new place in
5562 the pass pipeline; its previous place is taken by ...
5563 (make_pass_lower_subreg3): ... this.
5564
5565 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
5566
5567 * config/s390/s390.c (s390_shift_truncation_mask): Define.
5568 (TARGET_SHIFT_TRUNCATION_MASK): Define.
5569
5570 2019-07-08 Robin Dapp <rdapp@linux.ibm.com>
5571
5572 * config/s390/constraints.md: Add new jsc constraint.
5573 * config/s390/predicates.md: New predicates.
5574 * config/s390/s390-protos.h (s390_valid_shift_count): New function.
5575 * config/s390/s390.c (s390_valid_shift_count): New function.
5576 (print_shift_count_operand): Use s390_valid_shift_count.
5577 (print_operand): Likewise.
5578 * config/s390/s390.md: Use new predicate.
5579 * config/s390/subst.md: Remove addr_style_op and masked_op substs.
5580 * config/s390/vector.md: Use new predicate.
5581
5582 2019-07-08 Andrew Waterman <andrew@sifive.com>
5583 Jim Wilson <jimw@sifive.com>
5584
5585 * config/riscv/riscv.md (lshrsi3_zero_extend_3+1): Use operands[1]
5586 bitsize instead of BITS_PER_WORD.
5587
5588 2019-07-08 Martin Liska <mliska@suse.cz>
5589
5590 * collect2.c (defined): Revert to before r254460.
5591 (scan_prog_file): Revert to before r254460.
5592
5593 2019-07-08 Richard Biener <rguenther@suse.de>
5594
5595 PR tree-optimization/83518
5596 * tree-ssa-sccvn.c: Include splay-tree.h.
5597 (struct pd_range, struct pd_data): New.
5598 (struct vn_walk_cb_data): Add data to track partial definitions.
5599 (vn_walk_cb_data::~vn_walk_cb_data): New.
5600 (vn_walk_cb_data::push_partial_def): New.
5601 (pd_tree_alloc, pd_tree_dealloc, pd_range_compare): New.
5602 (vn_reference_lookup_2): When partial defs are registered give up.
5603 (vn_reference_lookup_3): Track partial defs for memset and
5604 constructor zeroing and for defs from constants.
5605
5606 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
5607
5608 * doc/install.texi (bootstrap-Og): Document.
5609
5610 2019-07-08 Richard Sandiford <richard.sandiford@arm.com>
5611
5612 * config/riscv/pic.md (*local_pic_load_s<mode>)
5613 (*local_pic_load_u<mode>): Explicitly specify the mode iterator
5614 referenced by <mode>, giving...
5615 (*local_pic_load_s<SUBX:mode>, *local_pic_load_u<SUBX:mode>): ...these.
5616 * config/riscv/riscv.md (*sge<u>_<X:mode><GPR:mode>)
5617 (*slt<u>_<X:mode><GPR:mode>, *sle<u>_<X:mode><GPR:mode>): Explicitly
5618 use <X:MODE> for the mode attribute.
5619
5620 2019-07-07 Jeff Law <law@redhat.com>
5621
5622 PR tree-optimization/91090
5623 * tree-ssa-dom.c (simplify_stmt_for_jump_threading): Fix logic error
5624 in handling of ranges to simplify switch statements.
5625
5626 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
5627
5628 * config/darwin.c (darwin_override_options): Make a final check on PIC
5629 options.
5630
5631 2019-07-07 Iain Sandoe <iain@sandoe.co.uk>
5632
5633 * config/darwin.c (darwin_override_options): Don't jam symbol stubs
5634 on for kernel code.
5635
5636 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
5637
5638 PR target/91068
5639 * config/mips/mips.md (*mul_acc_si, *mul_acc_si_r3900, *macc)
5640 (*msac, *msac_using_macc, *mul_sub_si): Use "l" for input operands
5641 instead of matching them to "l" output operands.
5642
5643 2019-07-07 Richard Sandiford <richard.sandiford@arm.com>
5644
5645 * config/mips/mips.c (mips_split_move): Zero-initialize addr
5646 and check whether addr.reg is nonnull before using it.
5647
5648 2019-07-06 Jakub Jelinek <jakub@redhat.com>
5649
5650 * omp-low.c (lower_rec_input_clauses): For lastprivate clauses in
5651 ctx->for_simd_scan_phase simd copy the outer var to the privatized
5652 variable(s). For conditional lastprivate look through outer
5653 GIMPLE_OMP_SCAN context.
5654 (lower_omp_1): For conditional lastprivate look through outer
5655 GIMPLE_OMP_SCAN context.
5656
5657 * omp-low.c (struct omp_context): Rename combined_into_simd_safelen0
5658 member to combined_into_simd_safelen1.
5659 (lower_rec_input_clauses, lower_omp_1): Adjust uses.
5660 (lower_lastprivate_clauses): Likewise. For conditional lastprivate
5661 clauses if ctx->combined_into_simd_safelen1 put statements after the
5662 predicate conditionalized block rather than into it.
5663
5664 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5665
5666 * config/s390/s390.md (*negabs<FP:mode>2_nocc): Use FP for
5667 operand 1.
5668 * config/s390/vx-builtins.md (*vec_cmp<insn_cmp><mode>_cconly):
5669 Make the choice of <mode> explicit, giving...
5670 (*vec_cmp<insn_cmp><VF_HW:mode>_cconly): ...this.
5671
5672 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5673
5674 * config/i386/i386.md (*fop_<X87MODEF:mode>_3_i387)
5675 (l<rounding_insn><MODEF:mode><SWI48:mode>2): Fix ambiguous uses
5676 of .md attributes.
5677 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask)
5678 (*avx512pf_gatherpf<mode>df_mask, *avx512pf_scatterpf<mode>sf_mask)
5679 (*avx512pf_scatterpf<mode>df_mask, *avx2_gathersi<mode>)
5680 (*avx2_gathersi<mode>_2, *avx2_gatherdi<mode>)
5681 (*avx2_gatherdi<mode>_2, *avx2_gatherdi<mode>_3): Likewise.
5682 (*avx2_gatherdi<mode>_4, *avx512f_gathersi<mode>): Likewise.
5683 (*avx512f_gathersi<mode>_2, *avx512f_gatherdi<mode>): Likewise.
5684 (*avx512f_gatherdi<mode>_2, *avx512f_scattersi<mode>): Likewise.
5685 (*avx512f_scatterdi<mode>): Likewise.
5686 (*andnot<mode>3_bcst): Fix VI/VI48_AVX512VL typo.
5687
5688 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5689
5690 * config/h8300/h8300.md (*push1_h8300hs_<mode>): Explicitly
5691 specify the mode iterator referenced by <mode>, giving...
5692 (*push1_h8300hs_<QHI:mode>): ...this.
5693
5694 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5695
5696 * config/gcn/gcn-valu.md
5697 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>): Use
5698 gen_vec_cmp<VEC_1REG_ALT:mode>di rather than (implicitly)
5699 gen_vec_cmp<VEC_1REG_MODE:mode>di. Explicitly use
5700 gen_vcond_mask_<VEC_1REG_MODE:mode>di.
5701 (vcond<VEC_1REG_MODE:mode><VEC_1REG_ALT:mode>_exec): Likewise,
5702 but using the _exec comparison patterns.
5703 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>): Use
5704 gen_vec_cmp<VEC_1REG_INT_ALT:mode>di rather than (implicitly)
5705 gen_vec_cmp<VEC_1REG_INT_MODE:mode>di. Explicitly use
5706 gen_vcond_mask_<VEC_1REG_INT_MODE:mode>di.
5707 (vcondu<VEC_1REG_INT_MODE:mode><VEC_1REG_INT_ALT:mode>_exec): Likewise,
5708 but using the _exec comparison patterns.
5709
5710 2019-07-06 Richard Sandiford <richard.sandiford@arm.com>
5711
5712 * config/arm/sync.md
5713 (@atomic_compare_and_swap<CCSI:arch><NARROW:mode>_1): Use
5714 <NARROW:sync_predtab> instead of (implicitly) <CCSI:sync_predtab>.
5715 (@atomic_compare_and_swap<CCSI:arch><SIDI:mode>_1): Likewise use
5716 <SIDI:sync_predtab>. Use <SIDI:cas_cmp_operand> and
5717 <SIDI:cas_cmp_str>.
5718
5719 2019-07-06 Jakub Jelinek <jakub@redhat.com>
5720
5721 * omp-low.c (struct omp_context): Add for_simd_scan_phase member.
5722 (maybe_lookup_ctx): Add forward declaration.
5723 (omp_find_scan): Likewise. Walk into body of simd if composited
5724 with worksharing loop.
5725 (scan_omp_simd_scan): New function.
5726 (scan_omp_1_stmt): Call it.
5727 (lower_rec_simd_input_clauses): Don't create rvar nor rvar2 if
5728 ctx->for_simd_scan_phase.
5729 (lower_rec_input_clauses): Do much less work for inscan reductions
5730 in ctx->for_simd_scan_phase is_simd regions.
5731 (lower_omp_scan): Set is_simd also on simd constructs composited
5732 with worksharing loop, unless ctx->for_simd_scan_phase. Never emit
5733 a sorry message. Don't change GIMPLE_OMP_SCAN stmts into nops and
5734 emit their body after in simd constructs composited with worksharing
5735 loop.
5736 (lower_omp_for_scan): Handle worksharing loop composited with simd.
5737
5738 * omp-low.c (omp_find_scan): Make static.
5739 (lower_omp_for_scan): Fix order of merge arguments in input phase of
5740 the second loop, var2 represents the first partial sum and so needs
5741 to go before rprivb[ivar].
5742
5743 2019-07-05 Iain Sandoe <iain@sandoe.co.uk>
5744
5745 * config/rs6000/rs6000-logue.c: Remove unused code.
5746
5747 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
5748
5749 * tree-ssa-loop-manip.c (create_iv): Add missing guard for gsi_end_p.
5750
5751 2019-07-05 Sam Tebbs <sam.tebbs@arm.com>
5752
5753 PR target/90712
5754 * config/aarch64/aarch64.c (aarch64_post_cfi_startproc): Replace thunk
5755 check with a frame laid out check.
5756
5757 2019-07-05 Richard Biener <rguenther@suse.de>
5758
5759 * tree-ssa-sccvn.c (vn_reference_lookup_3): Valueize RHS
5760 when comparing against a store with possibly the same value.
5761
5762 2019-07-05 Richard Biener <rguenther@suse.de>
5763
5764 PR tree-optimization/91091
5765 * tree-ssa-alias.h (get_continuation_for_phi): Add tbaa_p parameter.
5766 (walk_non_aliased_vuses): Likewise.
5767 * tree-ssa-alias.c (maybe_skip_until): Pass down tbaa_p.
5768 (get_continuation_for_phi): New tbaa_p parameter and pass
5769 it down.
5770 (walk_non_aliased_vuses): Likewise.
5771 * ipa-prop.c (determine_known_aggregate_parts): Adjust.
5772 * tree-ssa-pre.c (translate_vuse_through_block): Likewise.
5773 * tree-ssa-scopedtables.c (avail_exprs_stack::lookup_avail_expr):
5774 Likewise.
5775 * tree-ssa-sccvn.c (struct vn_walk_cb_data): Add tbaa_p flag.
5776 (adjust_offsets_for_equal_base_address): New function.
5777 (vn_reference_lookup_3): Use it to catch more base equivalences.
5778 Handle and pass down tbaa_p flag.
5779 (vn_reference_lookup_pieces): Adjust.
5780 (vn_reference_lookup): Remove alias-set altering, instead pass
5781 down false as tbaa_p.
5782
5783 2019-07-05 Richard Biener <rguenther@suse.de>
5784
5785 PR tree-optimization/91091
5786 * tree-ssa-sccvn.c (vn_reference_lookup_3): Overlap of
5787 accesses can happen with -fno-strict-aliasing.
5788
5789 2019-07-05 Jan Hubicka <hubicka@ucw.cz>
5790
5791 * tree-ssa-alias.c (alias_stats): Add
5792 nonoverlapping_component_refs_since_match_p_must_overlap.
5793 (dump_alias_stats): Print it.
5794 (nonoverlapping_component_refs_since_match_p): Add early exit.
5795 (nonoverlapping_component_refs_p): Do not account early exit.
5796
5797 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
5798
5799 * except.c (emit_to_new_bb_before): Make sure to put a location on SEQ.
5800 * tree-eh.c (replace_goto_queue_1) <GIMPLE_GOTO>: Propagate location.
5801 (emit_eh_dispatch): Delete.
5802 (lower_catch): Emit the eh_dispatch manually and set the location of
5803 the first catch statement onto it.
5804 (lower_eh_filter): Emit the eh_dispatch manually and set location.
5805 (lower_eh_dispatch): Propagate location.
5806 * tree-outof-ssa.c (set_location_for_edge): Handle EH edges specially.
5807 (eliminate_build): Likewise.
5808
5809 2019-07-05 Eric Botcazou <ebotcazou@adacore.com>
5810
5811 * tree-cfg.c (gimple_make_forwarder_block): Propagate location info on
5812 phi nodes if possible.
5813 * tree-scalar-evolution.c (final_value_replacement_loop): Propagate
5814 location info on the newly created statement.
5815 * tree-ssa-loop-manip.c (create_iv): Propagate location info on the
5816 newly created increment if needed.
5817
5818 2019-07-04 Jakub Jelinek <jakub@redhat.com>
5819
5820 PR middle-end/78884
5821 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
5822 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
5823 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
5824 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
5825 ctx->add_safelen1 is set.
5826
5827 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
5828 GOMP_loop_start at the start of second worksharing loop in a scan.
5829 For nowait, don't emit GOMP_loop_end_nowait at the end of first
5830 worksharing loop in a scan even if there are conditional lastprivates,
5831 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
5832
5833 2019-07-04 Jan Hubicka <jh@suse.cz>
5834
5835 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
5836 Fix check for match in the ref walk.
5837
5838 2019-07-04 Martin Liska <mliska@suse.cz>
5839
5840 * tree-ssa-loop-niter.c
5841 (get_upper_bound_based_on_builtin_expr_with_prob): New function.
5842 (estimate_numbers_of_iterations):
5843 Support __builtin_expect_with_probability for analysis
5844 of # of loop iterations.
5845
5846 2019-07-04 Alexandre Oliva <oliva@adacore.com>
5847
5848 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
5849 * except.c: Likewise.
5850 * expr.c (expand_expr_real_1): Reject it.
5851 * gimplify.c (gimplify_expr): Gimplify it, within
5852 TRY_FINALLY_EXPR.
5853 * tree-dump.c (dequeue_and_dump): Dump it.
5854 * tree-pretty-print.c (dump_generic_node): Likewise.
5855 * tree.c (block_may_fallthru): Handle it.
5856 * tree.def (EH_ELSE_EXPR): Introduce it.
5857 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
5858 with GIMPLE_EH_ELSE as try/finally/else.
5859
5860 2019-07-04 Richard Biener <rguenther@suse.de>
5861
5862 PR ipa/91062
5863 * tree-pass.h (execute_all_ipa_transforms): Add a flag
5864 parameter whether to disable GC collection.
5865 * passes.c (execute_one_ipa_transform_pass): Likewise, and
5866 honor it.
5867 (execute_all_ipa_transforms): Likewise and pass it down.
5868 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
5869 collection from applying IPA transforms.
5870 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
5871 from applying IPA transforms.
5872
5873 2019-07-04 Richard Biener <rguenther@suse.de>
5874
5875 PR tree-optimization/90911
5876 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
5877 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
5878 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
5879 scalar_loop_scaling.
5880 (vect_transform_loop): Scale scalar loop profile if needed.
5881 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
5882 the loop copy from if-conversion adjust edge probabilities
5883 and scale the vectorized loop body profile, queue the scalar
5884 profile for updating after peeling.
5885
5886 2019-07-04 Jan Hubicka <jh@suse.cz>
5887
5888 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
5889 parameters; return early for must-alias.
5890 (indirect_ref_may_alias_decl_p): Likewise; when establishing
5891 outer types match, try nonoverlapping_component_refs
5892 if must-alias is not obvious.
5893 (indirect_refs_may_alias_p): Likewise.
5894 (refs_may_alias_p_2): Likewise.
5895
5896 2019-07-04 Richard Biener <rguenther@suse.de>
5897
5898 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
5899 argument.
5900 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
5901 globals into...
5902 (struct vn_walk_cb_data): New callback data struct.
5903 (vn_reference_lookup_2): Adjust.
5904 (vn_reference_lookup_3): Likewise.
5905 (vn_reference_lookup_pieces): Likewise.
5906 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
5907 (visit_reference_op_load): Adjust.
5908
5909 2019-07-04 Jakub Jelinek <jakub@redhat.com>
5910
5911 PR tree-optimization/91063
5912 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
5913 stmt from stmts sequence before calling vect_init_vector_1.
5914 Formatting fix.
5915
5916 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
5917
5918 PR target/88833
5919 * fwprop.c (reg_single_def_p): New function.
5920 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
5921 (forward_propagate_into): New parameter reg_prop_only
5922 with default value false.
5923 Propagate def's src into loop only if SET_SRC and SET_DEST
5924 of def_set have single definitions.
5925 Likewise if reg_prop_only is set to true.
5926 (fwprop): New param fwprop_addr_p.
5927 Integrate fwprop_addr into fwprop.
5928 (fwprop_addr): Remove.
5929 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
5930 to true.
5931 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
5932 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
5933 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
5934
5935 2019-07-04 Jakub Jelinek <jakub@redhat.com>
5936
5937 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
5938 in worksharing loop scans.
5939
5940 PR tree-optimization/91074
5941 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
5942 temporary.
5943
5944 PR rtl-optimization/90756
5945 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
5946 for VECTOR_TYPE_P.
5947
5948 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
5949
5950 * config/aarch64/aarch64.md: Remove redundant constraints from
5951 define_expand but keep some patterns untouched if they are
5952 specially selected by TARGET_SECONDARY_RELOAD hook.
5953 * config/aarch64/aarch64-sve.md: Likewise.
5954 * config/aarch64/atomics.md: Remove redundant constraints from
5955 define_expand.
5956 * config/aarch64/aarch64-simd.md: Likewise.
5957
5958 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
5959
5960 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
5961 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
5962 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
5963 clauses.
5964 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
5965 DARWIN_NOPIE_SPEC.
5966
5967 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
5968
5969 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
5970 (STARTFILE_SPEC): Split crt3 into a separate spec.
5971 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
5972 (DARWIN_CRT2_SPEC): New.
5973 (DARWIN_CRT3_SPEC): New.
5974 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
5975 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
5976 (DARWIN_CRT3_SPEC): New.
5977
5978 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
5979
5980 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
5981 Change the RTL attribute "length" from "4" to "*" to allow the
5982 length attribute to be adjusted automatically for prefixed load,
5983 store, and add immediate instructions.
5984 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
5985 Likewise.
5986 (extendsi<mode>2, EXTSI iterator): Likewise.
5987 (movsi_internal1): Likewise.
5988 (movsi_from_sf): Likewise.
5989 (movdi_from_sf_zero_ext): Likewise.
5990 (mov<mode>_internal): Likewise.
5991 (movcc_internal1, QHI iterator): Likewise.
5992 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
5993 (movsf_from_si): Likewise.
5994 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
5995 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
5996 (mov<mode>, FMOVE128 iterator): Likewise.
5997 (movdi_internal64): Likewise.
5998 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
5999 Likewise.
6000 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
6001 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
6002 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
6003 (vsx_splat_v4sf): Likewise.
6004
6005 2019-07-03 Mark Wielaard <mark@klomp.org>
6006
6007 PR debug/90981
6008 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
6009 DW_AT_addr_base if there is actually a .debug_addr section with
6010 addresses.
6011 (output_addr_table): Add DWARF5 table header generation here after
6012 checking there are actually any addresses from...
6013 (dwarf2out_finish): ...here.
6014
6015 2019-07-03 Richard Biener <rguenther@suse.de>
6016
6017 PR middle-end/91069
6018 * match.pd (vec_perm -> bit_insert): Fix element read from
6019 first vector.
6020
6021 2019-07-03 Martin Liska <mliska@suse.cz>
6022
6023 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
6024 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
6025 condition.
6026 * generic-match-head.c: Include dbgcnt.h.
6027 * gimple-match-head.c: Likewise.
6028
6029 2019-07-03 Martin Liska <mliska@suse.cz>
6030
6031 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
6032 (GCOV_COUNTER_V_TOPN): New.
6033 (GCOV_COUNTER_V_INDIR): Use _topn.
6034 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
6035 (GCOV_TOPN_VALUES): New.
6036 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
6037 (GCOV_TOPN_VALUES_COUNTERS): New.
6038 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
6039 * tree-profile.c:
6040 (gimple_init_gcov_profiler): Rename variables from one_value
6041 to topn_values.
6042 (gimple_gen_one_value_profiler): Remove.
6043 (gimple_gen_topn_values_profiler): New function.
6044 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
6045 names instead of SINGLE_VALUE.
6046 (stream_out_histogram_value): Likewise.
6047 (stream_in_histogram_value): Likewise.
6048 (get_most_common_single_value): Likewise.
6049 (gimple_divmod_fixed_value_transform): Likewise.
6050 (gimple_stringops_transform): Likewise.
6051 (gimple_divmod_values_to_profile): Likewise.
6052 (gimple_stringops_values_to_profile): Likewise.
6053 (gimple_find_values_to_profile): Likewise.
6054 * value-prof.h (enum hist_type): Rename to TOPN.
6055 (gimple_gen_one_value_profiler): Remove.
6056 (gimple_gen_topn_values_profiler): New.
6057
6058 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
6059
6060 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
6061 if it has the DW_AT_data_member_location attribute.
6062
6063 2019-07-03 Richard Biener <rguenther@suse.de>
6064
6065 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
6066 dumping.
6067
6068 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
6069
6070 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
6071 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
6072 (tlsdesc_small_sve_<mode>): Likewise.
6073
6074 2019-07-03 Martin Liska <mliska@suse.cz>
6075
6076 * Makefile.in: Define ZSTD_LIB.
6077 * common.opt: Adjust compression level
6078 to support also zstd levels.
6079 * config.in: Regenerate.
6080 * configure: Likewise.
6081 * configure.ac: Add --with-zstd and --with-zstd-include options
6082 and detect ZSTD.
6083 * doc/install.texi: Mention zstd dependency.
6084 * gcc.c: Print supported LTO compression algorithms.
6085 * lto-compress.c (lto_normalized_zstd_level): Likewise.
6086 (lto_compression_zstd): Likewise.
6087 (lto_uncompression_zstd): Likewise.
6088 (lto_end_compression): Dispatch in between zlib and zstd.
6089 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
6090 (lto_uncompression_zlib): Make it static.
6091 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
6092 * lto-section-in.c (lto_get_section_data): Pass info
6093 about used compression.
6094 * lto-streamer-out.c: By default use zstd when possible.
6095 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
6096 (TV_IPA_LTO_COMPRESS): Likewise for compression.
6097
6098 2019-07-03 Martin Liska <mliska@suse.cz>
6099
6100 * lto-section-in.c (lto_get_section_data): Add "lto" section.
6101 * lto-section-out.c (lto_destroy_simple_output_block): Never
6102 compress LTO_section_lto section.
6103 * lto-streamer-out.c (produce_asm): Do not set major_version
6104 and minor_version.
6105 (lto_output_toplevel_asms): Likewise.
6106 (produce_lto_section): New function.
6107 (lto_output): Call produce_lto_section.
6108 (lto_write_mode_table): Do not set major_version and
6109 minor_version.
6110 (produce_asm_for_decls): Likewise.
6111 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
6112 type.
6113 (struct lto_header): Remove.
6114 (struct lto_section): New struct.
6115 (struct lto_simple_header): Do not inherit from lto_header.
6116 (struct lto_file_decl_data): Add lto_section_header field.
6117
6118 2019-07-03 Martin Liska <mliska@suse.cz>
6119
6120 * lra-eliminations.c (eliminate_regs_in_insn): Remove
6121 dead assignemts.
6122 * reg-stack.c (check_asm_stack_operands): Likewise.
6123 * tree-ssa-structalias.c (create_function_info_for): Likewise.
6124 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
6125 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
6126 force_expand_binop.
6127
6128 2019-07-03 Martin Liska <mliska@suse.cz>
6129
6130 PR tree-optimization/90892
6131 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
6132 in string constants.
6133
6134 2019-07-03 Martin Liska <mliska@suse.cz>
6135
6136 PR middle-end/90899
6137 * multiple_target.c (create_dispatcher_calls): Add to comdat
6138 group only if set for ifunc.
6139
6140 2019-07-03 Martin Liska <mliska@suse.cz>
6141
6142 PR target/88056
6143 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
6144 Define local_object_name in outer scope in order to handle
6145 use-after-scope issue.
6146
6147 2019-07-03 Martin Liska <mliska@suse.cz>
6148
6149 * common.opt: Add fprofile-note.
6150 * coverage.c (coverage_init): Append the option
6151 to bbg_file_name.
6152 * doc/invoke.texi: Document -fprofile-note.
6153
6154 2019-07-03 Jakub Jelinek <jakub@redhat.com>
6155
6156 PR tree-optimization/91033
6157 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
6158 vect_analyze_data_refs): Add bool * arguments.
6159 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
6160 if failure is due to scatter/gather, set *fatal to false if non-NULL.
6161 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
6162 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
6163 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
6164 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
6165 vect_analyze_data_refs caller.
6166
6167 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
6168 clause.
6169 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
6170 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
6171 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
6172 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
6173 OMP_CLAUSE__SCANTEMP_ entry.
6174 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
6175 * tree-pretty-print.c (dump_omp_clause): Likewise.
6176 * tree-nested.c (convert_nonlocal_omp_clauses,
6177 convert_local_omp_clauses): Likewise.
6178 * omp-general.h (struct omp_for_data): Add have_scantemp and
6179 have_nonctrl_scantemp members.
6180 * omp-general.c (omp_extract_for_data): Initialize them.
6181 * omp-low.c (struct omp_context): Add scan_exclusive member.
6182 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
6183 result again with GF_OMP_FOR_KIND_MASK. Initialize also
6184 ctx->scan_exclusive.
6185 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
6186 of !ctx->scan_inclusive.
6187 (lower_rec_input_clauses): Simplify gimplification of dtors using
6188 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
6189 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
6190 loops. Don't add barrier for reduction_omp_orig_ref if
6191 ctx->scan_??xclusive.
6192 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
6193 (lower_omp_scan): Use ctx->scan_exclusive instead
6194 of !ctx->scan_inclusive. Handle worksharing loops with inscan
6195 reductions. Use new_vard != new_var instead of repeated
6196 omp_is_reference calls.
6197 (omp_find_scan, lower_omp_for_scan): New functions.
6198 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
6199 inscan reductions.
6200 * omp-expand.c (expand_omp_scantemp_alloc): New function.
6201 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
6202 and fd->have_scantemp.
6203
6204 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
6205 on worksharing loop propagate it as shared clause to containing
6206 combined parallel.
6207
6208 * omp-expand.c (expand_omp_for_static_nochunk,
6209 expand_omp_for_static_chunk): For nowait worksharing loop with
6210 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
6211 at the end.
6212
6213 2019-07-02 qing zhao <qing.zhao@oracle.com>
6214
6215 PR preprocessor/90581
6216 * doc/cppopts.texi: Add document for -fmax-include-depth.
6217 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
6218
6219 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
6220
6221 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
6222 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
6223 (mmx_packssdw): Ditto.
6224 (mmx_punpckhbw): Ditto.
6225 (mmx_punpcklbw): Ditto.
6226 (mmx_punpckhwd): Ditto.
6227 (mmx_punpcklwd): Ditto.
6228 (mmx_punpckhdq): Ditto.
6229 (mmx_punpckldq): Ditto.
6230 (*vec_dupv4hi): Ditto.
6231 (*vec_dupv2si): Ditto.
6232 (mmx_pmovmskb): Ditto.
6233 * config/i386/sse.md (sse_cvtpi2ps): Use
6234 TARGET_SSE2 && SSE_REG_P in split condition.
6235 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
6236 TARGET_SSSE3 && SSE_REGNO_P in split condition.
6237 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
6238 (ssse3_pshufbv8qi3): Ditto.
6239 (ssse3_palignrdi): Ditto.
6240
6241 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
6242
6243 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
6244 with inlined save and restore.
6245
6246 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
6247
6248 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
6249 to be inserted on single successor edge of the entry block. Then call
6250 commit_edge_insertions instead of inserting the instructions manually.
6251 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
6252 RTL expansion and rebuild jump labels chain.
6253
6254 2019-07-02 Richard Biener <rguenther@suse.de>
6255
6256 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
6257 TI_CHREC_KNOWN.
6258 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
6259 Define here.
6260 * tree.c (build_common_tree_nodes): Initialize them.
6261 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
6262 Make declarations comments.
6263 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
6264 chrec_known): Remove definitions.
6265 (initialize_scalar_evolutions_analyzer): Remove.
6266 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
6267 * tree-streamer.c (preload_common_nodes): Do not preload
6268 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
6269
6270 2019-07-02 Jan Hubicka <jh@suse.cz>
6271
6272 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
6273 sanity check.
6274
6275 2019-07-02 Jan Hubicka <jh@suse.cz>
6276
6277 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
6278 to ..
6279 (nonoverlapping_component_refs_since_match_p): ... this one;
6280 handle also non-decl bases; return -1 if search gave up.
6281 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
6282 nonoverlapping_component_refs_of_decl_p_no_alias to
6283 nonoverlapping_component_refs_since_match_p_may_alias,
6284 nonoverlapping_component_refs_since_match_p_no_alias.
6285 (dump_alias_stats): Update dumping.
6286 (aliasing_matching_component_refs_p): Break out from ...;
6287 dispatch to nonoverlapping_component_refs_for_decl_p
6288 and nonoverlapping_component_refs_since_match_p.
6289 (aliasing_component_refs_p): ... here; call
6290 nonoverlapping_component_refs_p in scenarios where we can not
6291 precisely determine base match.
6292 (decl_refs_may_alias_p): Use
6293 nonoverlapping_component_refs_since_match_p.
6294 (indirect_ref_may_alias_decl_p): Do not call
6295 nonoverlapping_component_refs_p.
6296 (indirect_refs_may_alias_p): Likewise.
6297
6298 2019-07-02 Jan Hubicka <jh@suse.cz>
6299
6300 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
6301 to clobber of return value.
6302
6303 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
6304
6305 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
6306 for is_neon_type instructions that have not already been categorized.
6307
6308 2019-07-02 Richard Biener <rguenther@suse.de>
6309
6310 PR tree-optimization/58483
6311 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
6312 for MEM_REF base hashing.
6313 (equal_mem_array_ref_p): Likewise for base comparison.
6314
6315 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6316
6317 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
6318 parameterized name.
6319 (signbit<mode>2): Use that name. Simplify.
6320
6321 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
6322
6323 PR middle-end/66726
6324 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
6325 Tune heuristic from PR71016 to allow MIN / MAX.
6326
6327 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6328
6329 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
6330 parameterized name.
6331 (abs<mode>2): Use that name. Simplify.
6332
6333 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6334
6335 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
6336 parameterized name.
6337 (neg<mode>2): Use that name. Simplify.
6338
6339 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6340
6341 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
6342 name.
6343 (abs<mode>2): Use that name. Simplify.
6344
6345 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6346
6347 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
6348 name.
6349 (neg<mode>2): Use that name. Simplify.
6350
6351 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
6352
6353 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
6354 ("enabled" attribute): Handle sse_noavx isa attribute.
6355 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
6356 Use TARGET_SSE && SSE_REGNO_P in split condition.
6357 (*vec_dupv2sf): Ditto.
6358
6359 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6360
6361 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
6362 name.
6363 (floatsi<mode>2): Use that name. Simplify.
6364
6365 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6366
6367 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
6368 parameterized name.
6369 (extenddf<mode>2_vsx): Make this a parameterized name.
6370 (extenddf<mode>2): Use those names. Simplify.
6371
6372 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6373
6374 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
6375 name.
6376 (eh_return): Use that name. Simplify.
6377
6378 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6379
6380 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
6381 (doloop_end): Use that name. Simplify.
6382
6383 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6384
6385 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
6386 parameterized name.
6387 (indirect_jump): Use that name. Simplify.
6388
6389 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6390
6391 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
6392 parameterized name.
6393 (abs<mode>2): Use that name. Simplify.
6394
6395 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6396
6397 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
6398 parameterized name.
6399 (fix_trunc<mode>si2): Use that name. Simplify.
6400
6401 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6402
6403 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
6404 (allocate_stack): Use that name. Simplify.
6405
6406 2019-07-01 Martin Sebor <msebor@redhat.com>
6407
6408 PR middle-end/90923
6409 * hash-map.h (hash_map::put): On insertion invoke element ctor.
6410 (hash_map::get_or_insert): Same. Reformat comment.
6411 * hash-set.h (hash_set::add): On insertion invoke element ctor.
6412 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
6413 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
6414 * hash-table.h (hash_table::operator=): Prevent copy assignment.
6415 (hash_table::hash_table (const hash_table&)): Use copy ctor
6416 instead of assignment to copy elements.
6417
6418 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
6419 John David Anglin <danglin@gcc.gnu.org>
6420
6421 PR target/90963
6422 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
6423 using saved frame pointer.
6424
6425 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
6426
6427 PR middle-end/64242
6428 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
6429 Add frame clobber and schedule blockage.
6430
6431 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
6432
6433 * doc/invoke.texi (Link Options): Further editorial changes to
6434 -flinker-output docs.
6435
6436 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
6437
6438 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
6439 Load both operands of a PLUS into registers separately.
6440
6441 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
6442
6443 * config/s390/vector.md: Fix shift count operand printing.
6444
6445 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6446
6447 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
6448
6449 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6450
6451 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
6452 Use recog_data to test for an output operand.
6453
6454 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6455
6456 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
6457 exclude any others that are disparaged or that are bound to need
6458 a reload or spill.
6459 (ira_get_dup_out_num): Expand comment.
6460
6461 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6462
6463 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
6464 constraint string for each operand/alternative combo. Only handle
6465 '%' at the start of constraint strings, and look for it outside
6466 the main loop.
6467
6468 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
6469
6470 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
6471 alternative_mask instead of HARD_REG_SET to represent a
6472 bitmask of alternatives.
6473 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
6474 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
6475
6476 2019-07-01 Martin Liska <mliska@suse.cz>
6477
6478 * edit-context.c (test_applying_fixits_unreadable_file): Do not
6479 use () for a constructor call.
6480 (test_applying_fixits_line_out_of_range): Likewise.
6481 * ggc-page.c (alloc_page): Use (void *) for %p printf format
6482 argument.
6483 (free_page): Likewise.
6484
6485 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
6486
6487 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
6488 parameter names to match usage (no functional change).
6489 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
6490
6491 2019-07-01 Richard Biener <rguenther@suse.de>
6492
6493 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
6494 pass parameter.
6495 (pass_fre::execute): Honor it.
6496 * passes.def: Adjust pass_fre invocations to allow iterating,
6497 add non-iterating pass_fre before late threading/dom.
6498
6499 2019-07-01 Richard Biener <rguenther@suse.de>
6500
6501 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
6502 TARGET_MEM_REF handling to also handle address-taken ones.
6503
6504 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
6505
6506 * doc/sourcebuild.texi (Effective-Target Keywords, Other
6507 hardware attributes): Document avx512vp2intersect.
6508
6509 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
6510
6511 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
6512 (abs<mode>2): New expander.
6513 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
6514 Use CODE_FOR_ssse3_absv8qi2.
6515 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
6516 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
6517
6518 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
6519
6520 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
6521 to sse, sse_noavx and avx. Update all uses.
6522
6523 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
6524
6525 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
6526 (*mmx_<plusminus_insn><mode>3): Ditto.
6527 (*mmx_mulv4hi3"): Ditto.
6528 (*mmx_smulv4hi3_highpart): Ditto.
6529 (*mmx_umulv4hi3_highpart): Ditto.
6530 (*mmx_pmaddwd): Ditto.
6531 (*sse2_umulv1siv1di3): Ditto.
6532 (*mmx_<code>v4hi3): Ditto.
6533 (*mmx_<code>v8qi3): Ditto.
6534 (mmx_ashr<mode>3): Ditto.
6535 ("mmx_<shift_insn><mode>3): Ditto.
6536 (*mmx_eq<mode>3): Ditto.
6537 (mmx_gt<mode>3): Ditto.
6538 (mmx_andnot<mode>3): Ditto.
6539 (*mmx_<code><mode>3): Ditto.
6540 (*mmx_pinsrw): Ditto.
6541 (*mmx_pextrw): Ditto.
6542 (mmx_pshufw_1): Ditto.
6543 (*mmx_uavgv8qi3): Ditto.
6544 (*mmx_uavgv4hi3): Ditto.
6545 ("mmx_psadbw): Ditto.
6546 * config/i386/sse.md (sse_cvtps2pi): Ditto.
6547 (sse_cvttps2pi): Ditto.
6548 (ssse3_pmaddubsw): Ditto.
6549 (*ssse3_pmulhrswv4hi3): Ditto.
6550 (ssse3_psign<mode>3): Ditto.
6551
6552 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
6553
6554 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
6555 adjustment for bit-fields to all aggregate types.
6556
6557 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
6558
6559 * config/rs6000/predicates.md (pcrel_address): Use
6560 SYMBOL_REF_LOCAL_P to determine if a label is local.
6561 (pcrel_external_address): New predicate.
6562 (non_prefixed_mem_operand): Delete, predicate not used.
6563 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
6564 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
6565 addressing.
6566 (SYMBOL_REF_PCREL_P): Likewise.
6567
6568 PR target/91009
6569 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
6570 alternative.
6571 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
6572 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
6573 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
6574
6575 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
6576
6577 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
6578 override on extra_headers.
6579
6580 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
6581
6582 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
6583 * config/darwin-driver.c (darwin_default_min_version): Remove newline
6584 from warning.
6585 (darwin_driver_init): Likewise.
6586
6587 2019-06-28 Jan Beulich <jbeulich@suse.com>
6588
6589 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
6590 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
6591 Eliminate redundant alternative.
6592
6593 2019-06-28 Jan Beulich <jbeulich@suse.com>
6594
6595 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
6596 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
6597 Use vector_operand.
6598
6599 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
6600
6601 * config/arc/arc.c (arc_rtx_costs): All short instructions are
6602 having a lower cost regardless of the speed option.
6603
6604 2019-06-28 Jan Beulich <jbeulich@suse.com>
6605
6606 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
6607 vector_operand plus, on both alternatives, "Bm" constraint.
6608
6609 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
6610
6611 * config/arm/arm.md: Remove redundant constraints from
6612 define_expand but leave reload_inm and reload_outm patterns
6613 untouched since they need special constraints to work.
6614 * config/arm/arm-fixed.md: Remove redundant constraints from
6615 define_expand.
6616 * config/arm/iwmmxt.md: Likewise.
6617 * config/arm/neon.md: Likewise.
6618 * config/arm/sync.md: Likewise.
6619 * config/arm/thumb1.md: Likewise.
6620 * config/arm/vec-common.md: Likewise.
6621
6622 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
6623
6624 * doc/install.texi: Document --disable-tm-clone-registry.
6625
6626 2019-06-27 Jakub Jelinek <jakub@redhat.com>
6627
6628 PR c++/91024
6629 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
6630 statements.
6631
6632 PR tree-optimization/91010
6633 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
6634 return true. Otherwise, don't call operand_equal_p if offset1 or
6635 offset2 is NULL and just return false.
6636
6637 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
6638
6639 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
6640 user-specified float mode choice for kernel mode code.
6641
6642 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
6643
6644 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
6645 spec.
6646
6647 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
6648
6649 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
6650 use longcall for 64b code.
6651
6652 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
6653
6654 * builtins.c (get_memory_rtx): Fix comment.
6655 * optabs.def (movmem_optab): Change to cpymem_optab.
6656 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
6657 (emit_block_move_hints): Change movmem to cpymem.
6658 * defaults.h: Change movmem to cpymem.
6659 * targhooks.c (get_move_ratio): Change movmem to cpymem.
6660 (default_use_by_pieces_infrastructure_p): Ditto.
6661 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
6662 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
6663 to cpymem.
6664 * config/aarch64/aarch64.h: Change movmem to cpymem.
6665 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
6666 * config/alpha/alpha.h: Change movmem to cpymem in comment.
6667 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
6668 movmem to cpymem.
6669 * config/arc/arc-protos.h: Change movmem to cpymem.
6670 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
6671 * config/arc/arc.h: Change movmem to cpymem in comment.
6672 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
6673 * config/arm/arm-protos.h: Change movmem to cpymem in names.
6674 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
6675 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
6676 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
6677 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
6678 * config/avr/avr-protos.h: Change movmem to cpymem.
6679 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
6680 avr_out_movmem): Change movmem to cpymem.
6681 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
6682 Change movmem to cpymem.
6683 * config/bfin/bfin-protos.h: Change movmem to cpymem.
6684 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
6685 Change movmem to cpymem.
6686 * config/bfin/bfin.h: Change movmem to cpymem in comment.
6687 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
6688 * config/c6x/c6x-protos.h: Change movmem to cpymem.
6689 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
6690 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
6691 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
6692 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
6693 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
6694 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
6695 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
6696 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
6697 expand_small_cpymem_or_setmem,
6698 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
6699 expand_set_or_cpymem_constant_prologue,
6700 ix86_expand_set_or_cpymem): Change movmem to cpymem.
6701 * config/i386/i386-protos.h: Change movmem to cpymem.
6702 * config/i386/i386.h: Change movmem to cpymem in comment.
6703 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
6704 (setmem<mode>): Change expansion function name.
6705 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
6706 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
6707 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
6708 * config/m32c/m32c-protos.h: Change movmem to cpymem.
6709 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
6710 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
6711 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
6712 to cpymem.
6713 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
6714 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
6715 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
6716 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
6717 Change movmem to cpymem.
6718 * config/mips/mips.h: Change movmem to cpymem.
6719 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
6720 * config/nds32/nds32-memory-manipulation.c
6721 (nds32_expand_movmemsi_loop_unknown_size,
6722 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
6723 nds32_expand_movmemsi_unroll,
6724 nds32_expand_movmemsi): Change movmem to cpymem.
6725 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
6726 * config/nds32/nds32-protos.h: Change movmem to cpymem.
6727 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
6728 (pa_adjust_insn_length): Change call to compute_movmem_length.
6729 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
6730 movmemdi, movmemdi_prereload,
6731 movmemdi_postreload): Change movmem to cpymem.
6732 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
6733 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
6734 * config/riscv/riscv.c: Change movmem to cpymem in comment.
6735 * config/riscv/riscv.h: Change movmem to cpymem.
6736 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
6737 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
6738 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
6739 movmem to cpymem.
6740 * config/s390/s390-protos.h: Change movmem to cpymem.
6741 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
6742 s390_expand_insv): Change movmem to cpymem.
6743 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
6744 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
6745 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
6746 * config/sparc/sparc.h: Change movmem to cpymem in comment.
6747 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
6748 for nonexistent function.
6749 * config/vax/vax.h: Change movmem to cpymem in comment.
6750 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
6751 * config/visium/visium.h: Change movmem to cpymem in comment.
6752 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
6753 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
6754 * doc/md.texi: Change movmem to cpymem and update description to match.
6755 * doc/rtl.texi: Change movmem to cpymem.
6756 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
6757 * doc/tm.texi: Regenerate.
6758
6759 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
6760
6761 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
6762 -fvariable-expansion-in-unroller by default.
6763 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
6764 default for Power.
6765
6766 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
6767
6768 Revert
6769 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
6770 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
6771
6772 * config.gcc(rs6000-*-*): Define target_gtfiles.
6773
6774 2019-06-27 Jan Hubicka <jh@suse.cz>
6775
6776 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
6777 (add_type_duplicate): When odr hash is not allocated, to nothing.
6778 (odr_based_tbaa_p): New function.
6779 (set_type_canonical_for_odr_type): New function.
6780 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
6781 set_type_canonical_for_odr_type): New.
6782 * tree.c (gimple_canonical_types_compatible_p): ODR types with
6783 ODR based TBAA are not equivalent to non-ODR types.
6784
6785 2019-06-27 Martin Liska <mliska@suse.cz>
6786
6787 PR tree-optimization/90974
6788 PR rtl-optimization/90975
6789 PR rtl-optimization/90976
6790 PR target/91016
6791 PR tree-optimization/91017
6792 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
6793 unused tmp.
6794 * lra.c (lra_set_insn_recog_data): Remove a leftover from
6795 initial commit of IRA.
6796 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
6797 of op0 and op1.
6798 * tree-vect-loop.c (vect_create_epilog_for_reduction):
6799 Remove unused mode1.
6800 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
6801 to new_stmt_info.
6802
6803 2019-06-27 Jakub Jelinek <jakub@redhat.com>
6804
6805 PR target/90991
6806 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
6807 instead of register_operand for operands[1], add m to its constraints
6808 if operands[2] uses "C" constraint. Ensure in condition that if
6809 operands[2] is not 0, then operands[1] is not a MEM. For last two
6810 alternatives, use unaligned loads instead of aligned if operands[1] is
6811 misaligned_operand.
6812
6813 2019-06-27 Martin Liska <mliska@suse.cz>
6814
6815 * asan.c (asan_emit_allocas_unpoison): Remove obviously
6816 dead assignments.
6817 * bt-load.c (move_btr_def): Likewise.
6818 * builtins.c (expand_builtin_apply_args_1): Likewise.
6819 (expand_builtin_apply): Likewise.
6820 * cfgexpand.c (expand_asm_stmt): Likewise.
6821 (construct_init_block): Likewise.
6822 * cfghooks.c (verify_flow_info): Likewise.
6823 * cfgloopmanip.c (remove_path): Likewise.
6824 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
6825 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
6826 * combine.c (simplify_if_then_else): Likewise.
6827 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
6828 (choose_basereg): Likewise.
6829 (ix86_expand_prologue): Likewise.
6830 (ix86_preferred_output_reload_class): Likewise.
6831 * cselib.c (cselib_record_sets): Likewise.
6832 * df-scan.c (df_scan_alloc): Likewise.
6833 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
6834 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
6835 * emit-rtl.c (try_split): Likewise.
6836 * graphite-scop-detection.c (assign_parameter_index_in_region):
6837 Likewise.
6838 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
6839 * ira-color.c (setup_profitable_hard_regs): Likewise.
6840 * ira.c (rtx_moveable_p): Likewise.
6841 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
6842 * read-rtl.c (read_subst_mapping): Likewise.
6843 * regrename.c (scan_rtx): Likewise.
6844 * reorg.c (fill_slots_from_thread): Likewise.
6845 * tree-inline.c (tree_function_versioning): Likewise.
6846 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
6847 * tree-ssa-sink.c (statement_sink_location): Likewise.
6848 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
6849 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
6850 (vect_create_epilog_for_reduction): Likewise.
6851 * tree.c (build_nonstandard_integer_type): Likewise.
6852
6853 2019-06-27 Richard Biener <rguenther@suse.de>
6854
6855 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
6856
6857 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
6858
6859 PR tree-optimization/89772
6860 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
6861 out-of-bound accesses checking.
6862
6863 2019-06-27 Martin Liska <mliska@suse.cz>
6864
6865 PR tree-optimization/91014
6866 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
6867 when LHS is NULL_TREE.
6868
6869 2019-06-27 Martin Liska <mliska@suse.cz>
6870
6871 * symbol-summary.h (traverse): Pass
6872 argument a to the call of callback.
6873 (gt_ggc_mx): Mark arguments as unused.
6874 (gt_pch_nx): Likewise.
6875
6876 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
6877
6878 PR target/62147
6879 * loop-iv.c (find_simple_exit): Call finite_loop_p to update
6880 finiteness.
6881
6882 2019-06-26 Jeff Law <law@redhat.com>
6883
6884 PR tree-optimization/90883
6885 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
6886 (delete_dead_or_redundant_assignment): Likewise.
6887
6888 PR tree-optimization/90883
6889 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
6890 * tree-ssa-dse.c: Update various comments to distinguish between
6891 dead and redundant stores.
6892 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
6893 (dse_optimize_redundant_stores): New function.
6894 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
6895 Distinguish between dead and redundant calls in dump output. All
6896 callers updated.
6897 (delete_dead_or_redundant_assignment): Similarly for assignments.
6898 (dse_optimize_stmt): Handle _CHK variants. For statements which
6899 store 0 into multiple memory locations, try to prove a subsequent
6900 store is redundant.
6901
6902 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
6903
6904 PR target/89021
6905 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
6906 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
6907
6908 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
6909
6910 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
6911 (branch_islands): New extern.
6912 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
6913 * config/rs6000/rs6000.c: .. here.
6914
6915 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
6916
6917 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
6918 (powerpc*-*-*) ... to here.
6919
6920 2019-06-26 Jeff Law <law@redhat.com>
6921
6922 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
6923 memcpy, memmove and memset builtins.
6924 (maybe_trim_memstar_call): Likewise.
6925
6926 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
6927
6928 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
6929
6930 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
6931
6932 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
6933
6934 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
6935
6936 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
6937 declaration.
6938 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
6939 "static".
6940 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
6941 declaration.
6942
6943 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
6944
6945 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
6946
6947 2019-06-26 Richard Biener <rguenther@suse.de>
6948
6949 PR ipa/90982
6950 * tree-inline.c (remap_ssa_name): Copy SSA range info.
6951
6952 2019-06-26 Richard Biener <rguenther@suse.de>
6953
6954 * lto-streamer.h (lto_bitmap_alloc): Remove.
6955 (lto_bitmap_free): Likewise.
6956 * lto-streamer.c (lto_bitmap_alloc): Remove.
6957 (lto_bitmap_free): Likewise.
6958 (lto_obstack): Likewise.
6959 (lto_obstack_initialized): Likewise.
6960 * lto-streamer-out.c (lto_output): Use own obstack for local
6961 bitmap, free it consistently.
6962
6963 2019-06-26 Jakub Jelinek <jakub@redhat.com>
6964
6965 PR target/90991
6966 * config/i386/sse.md
6967 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
6968 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
6969 insns if operands[2] is misaligned_operand.
6970
6971 2019-06-26 Li Jia He <helijia@linux.ibm.com>
6972
6973 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
6974 TARGET_POWERPC64.
6975 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
6976 to GPR.
6977
6978 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
6979
6980 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
6981
6982 2019-06-26 Martin Liska <mliska@suse.cz>
6983
6984 PR tree-optimization/90973
6985 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
6986 epilogue_cost_vec instead of prologue_cost_vec for
6987 a epilogue cost.
6988
6989 2019-06-26 Martin Liska <mliska@suse.cz>
6990
6991 * bb-reorder.c (connect_better_edge_p): Add missing else
6992 statement in the middle of if-else statements.
6993
6994 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
6995 H.J. Lu <hongjiu.lu@intel.com>
6996 Olga Makhotina <olga.makhotina@intel.com>
6997
6998 * common/config/i386/i386-common.c
6999 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
7000 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
7001 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
7002 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
7003 (ix86_handle_option): Handle -mavx512vp2intersect.
7004 * config/i386/avx512vp2intersectintrin.h: New.
7005 * config/i386/avx512vp2intersectvlintrin.h: New.
7006 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
7007 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
7008 AVX512VP2INTERSECT.
7009 * config/i386/i386-builtin-types.def: Add new types.
7010 * config/i386/i386-builtin.def: Add new builtins.
7011 * config/i386/i386-builtins.c: (enum processor_features): Add
7012 F_AVX512VP2INTERSECT.
7013 (static const _isa_names_table isa_names_table): Ditto.
7014 * config/i386/i386-c.c (ix86_target_macros_internal): Define
7015 __AVX512VP2INTERSECT__.
7016 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
7017 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
7018 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
7019 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
7020 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
7021 * config/i386/i386-options.c (ix86_target_string): Add
7022 -mavx512vp2intersect.
7023 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
7024 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
7025 P2HImode and P2QImode.
7026 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
7027 number for P2QImode and P2HImode.
7028 (ix86_regmode_natural_size): New function.
7029 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
7030 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
7031 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
7032 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
7033 * config/i386/i386.opt: Add -mavx512vp2intersect.
7034 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
7035 avx512vp2intersectvlintrin.h.
7036 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
7037 (define_mode_iterator VI48_AVX512VP2VL): New.
7038 (avx512vp2intersect_2intersect<mode>,
7039 avx512vp2intersect_2intersectv16si): New define_insn patterns.
7040 * config.gcc: Add avx512vp2intersectvlintrin.h and
7041 avx512vp2intersectintrin.h to extra_headers.
7042 * doc/invoke.texi: Document -mavx512vp2intersect.
7043
7044 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
7045
7046 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
7047
7048 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
7049
7050 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
7051 savres_routine_syms, savres_routine_name, morestack_ref,
7052 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
7053 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
7054 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
7055 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
7056 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
7057 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
7058 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
7059 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
7060 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
7061 get_stack_clash_protection_probe_interval,
7062 get_stack_clash_protection_guard_size,
7063 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
7064 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
7065 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
7066 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
7067 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
7068 gen_frame_mem_offset, rs6000_savres_routine_name,
7069 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
7070 ptr_regno_for_savres, rs6000_emit_savres_rtx,
7071 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
7072 rs6000_global_entry_point_prologue_needed_p,
7073 rs6000_get_separate_components, rs6000_components_for_bb,
7074 rs6000_disqualify_components, rs6000_emit_prologue_components,
7075 rs6000_emit_epilogue_components, rs6000_set_handled_components,
7076 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
7077 rs6000_output_savres_externs, rs6000_output_function_prologue,
7078 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
7079 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
7080 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
7081 rs6000_output_function_epilogue, gen_add3_const,
7082 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
7083 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
7084 to rs6000-logue.c.
7085 (machine_function): Moved to rs6000.h.
7086 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
7087 rs6000-internal.h.
7088 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
7089 savres_routine_syms, savres_routine_name, morestack_ref,
7090 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
7091 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
7092 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
7093 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
7094 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
7095 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
7096 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
7097 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
7098 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
7099 get_stack_clash_protection_probe_interval,
7100 get_stack_clash_protection_guard_size,
7101 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
7102 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
7103 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
7104 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
7105 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
7106 gen_frame_mem_offset, rs6000_savres_routine_name,
7107 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
7108 ptr_regno_for_savres, rs6000_emit_savres_rtx,
7109 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
7110 rs6000_global_entry_point_prologue_needed_p,
7111 rs6000_get_separate_components, rs6000_components_for_bb,
7112 rs6000_disqualify_components, rs6000_emit_prologue_components,
7113 rs6000_emit_epilogue_components, rs6000_set_handled_components,
7114 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
7115 rs6000_output_savres_externs, rs6000_output_function_prologue,
7116 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
7117 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
7118 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
7119 rs6000_output_function_epilogue, gen_add3_const,
7120 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
7121 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
7122 to here from rs6000.c.
7123 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
7124 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
7125 quad_address_offset_p) Moved to here from rs6000.c.
7126 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
7127 * config/config.gcc: Add new source file rs6000-logue.c to garbage
7128 collector.
7129
7130 2019-06-25 Martin Liska <mliska@suse.cz>
7131
7132 * hash-table.c (hashtab_chk_error): Move here from ...
7133 * hash-table.h (hashtab_chk_error): ... here.
7134
7135 2019-06-25 Martin Liska <mliska@suse.cz>
7136
7137 PR tree-optimization/90978
7138 * df-scan.c (df_update_entry_block_defs): Remove dead else
7139 branch.
7140 (df_update_exit_block_uses): Likewise.
7141
7142 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
7143 Andrew Stubbs <ams@codesourcery.com>
7144
7145 * config.gcc (thread_file): Set to gcn for AMD GCN.
7146 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
7147 (TARGET_EMUTLS_VAR_INIT): New hook.
7148
7149 2019-06-25 Martin Jambor <mjambor@suse.cz>
7150
7151 PR ipa/90939
7152 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
7153
7154 2019-06-25 Richard Biener <rguenther@suse.de>
7155
7156 PR tree-optimization/90930
7157 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
7158 into parallel form in the last pass instance.
7159
7160 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
7161
7162 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
7163 (arc_legitimize_pic_address): Simplify and cleanup the function.
7164 (SYMBOLIC_CONST): Remove.
7165 (prepare_pic_move): Likewise.
7166 (prepare_move_operands): Handle complex mov cases here.
7167 (arc_legitimize_address_0): Remove call to
7168 arc_legitimize_pic_address.
7169 (arc_legitimize_address): Remove call to
7170 arc_legitimize_tls_address.
7171 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
7172 (movhi_insn): Likewise.
7173
7174 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7175
7176 * config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
7177 PTRDIFF_TYPE.
7178 * gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
7179 format of "__intN" types for UINTMAX_TYPE.
7180 * stor-layout.c (initialize_sizetypes): Accept "__intN__"
7181 format of "__intN" types for SIZETYPE.
7182 * tree.c (build_common_tree_nodes): Accept "__intN__"
7183 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
7184 * doc/invoke.texi: Document that __intN__ disables pedantic
7185 warnings.
7186
7187 2019-06-25 Jan Hubicka <jh@suse.cz>
7188
7189 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
7190 base2_alias_set is non-zero before doing TBAA based disambiguation.
7191
7192 2019-06-25 Martin Liska <mliska@suse.cz>
7193
7194 PR tree-optimization/90973
7195 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
7196 of prologue and epilogue.
7197
7198 2019-06-24 Jan Hubicka <jh@suse.cz>
7199
7200 * ipa-utils.h (type_with_linkage_p): Verify that type is
7201 CXX_ODR_P.
7202 (odr_type_p): Remove extra return.
7203 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
7204 hash STRING_FLAG only for arrays and integers.
7205 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
7206 Update analogously.
7207 * tree-streamer-out.c (pack_ts_type_common_value_fields):
7208 Likewise.
7209 * print-tree.c (print_node): Print cxx-odr-p
7210 and string-flag.
7211 * tree.c (need_assembler_name_p): Also check that type
7212 is CXX_ODR_TYPE_P
7213 (verify_type_variant): Update verification of SRING_FLAG;
7214 also check CXX_ODR_P.
7215 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
7216 (TYPE_STRING_FLAG): Use it.
7217 (TYPE_CXX_ODR_P): New macro.
7218 * dwarf2out.c (gen_array_type_die): First check that type
7219 is an array and then test string flag.
7220
7221 2019-06-24 Richard Biener <rguenther@suse.de>
7222
7223 PR tree-optimization/90972
7224 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
7225 in common code, dealing with STRING_CST properly.
7226
7227 2019-06-24 Richard Biener <rguenther@suse.de>
7228
7229 PR tree-optimization/90930
7230 PR tree-optimization/90316
7231 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
7232 decrement of limit.
7233
7234 2019-06-24 Martin Sebor <msebor@redhat.com>
7235
7236 * tree-pretty-print.h: Remove unnecessary punctuation characters
7237 from a diagnostic.
7238 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
7239
7240 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
7241
7242 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
7243 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
7244 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
7245
7246 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
7247
7248 * config/rs6000/darwin.h: Handle GCC target pragma.
7249
7250 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
7251
7252 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
7253
7254 2019-06-22 Jeff Law <law@redhat.com>
7255
7256 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7257
7258 2019-06-22 Jan Hubicka <jh@suse.cz>
7259
7260 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
7261 give up on bitfields; continue searching for different refs
7262 appearing later.
7263
7264 2019-06-21 Jakub Jelinek <jakub@redhat.com>
7265
7266 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
7267 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
7268 containing the offset as possible simd lane access. Look through
7269 widening conversion. Move the
7270 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
7271
7272 2019-06-21 Richard Biener <rguenther@suse.de>
7273
7274 PR tree-optimization/90930
7275 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
7276 flag on new stmts to avoid re-processing them.
7277
7278 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
7279
7280 PR c++/90875 - added -Wswitch-outside-range option
7281 * doc/invoke.texi (Wswitch-outside-range): Document.
7282
7283 2019-06-21 Jeff Law <law@redhat.com>
7284
7285 PR tree-optimization/90949
7286 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
7287 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
7288
7289 2019-06-21 Richard Biener <rguenther@suse.de>
7290
7291 PR debug/90914
7292 * dwarf2out.c (prune_unused_types_walk): Always consider
7293 function-local extern declarations as used.
7294
7295 2019-06-21 Richard Biener <rguenther@suse.de>
7296
7297 PR tree-optimization/90913
7298 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
7299 the scalar variant of if-conversion versioning.
7300
7301 2019-06-21 Jakub Jelinek <jakub@redhat.com>
7302
7303 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
7304 create another "omp scan inscan exclusive" array if
7305 !ctx->scan_inclusive.
7306 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
7307 (lower_omp_scan): Likewise.
7308 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
7309 2-bit bitfield for simd_lane_access_p member.
7310 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
7311 aux == (void *)-4 as simd lane access.
7312 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
7313 comment with permutations to show the canonical permutation order.
7314 (vectorizable_scan_store): Handle exclusive scan.
7315 (vectorizable_store): Call vectorizable_scan_store even for
7316 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
7317
7318 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
7319 "omp simd array" arrays with one byte elements.
7320
7321 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
7322
7323 * config/alpha/alpha.md (@unaligned_store<mode>):
7324 Rename from unaligned_store<mode>.
7325 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
7326 * config/alpha/sync.md (@load_locked_<mode>): Rename
7327 from load_locked_<mode>.
7328 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
7329 (@atomic_compare_and_swap<mode>_1): Rename
7330 from atomic_compare_and_swap<mode>_1.
7331 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
7332 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
7333 Use gen_reload_in_aligned and gen_unaligned_store.
7334 (emit_load_locked): Remove.
7335 (emit_store_conditional): Ditto.
7336 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
7337 (alpha_split_compare_and_swap): Ditto.
7338 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
7339 (alpha_split_compare_and_swap_12): Use gen_load_locked
7340 and gen_store_conditional.
7341 (alpha_split_atomic_exchange): Ditto.
7342 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
7343 (alpha_split_atomic_exchange_12): Use gen_load_locked
7344 and gen_store_conditional.
7345
7346 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
7347
7348 * config/aarch64/aarch64-errata.h: New file.
7349 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
7350 (CA53_ERR_843419_SPEC): Delete.
7351 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
7352 * config/aarch64/aarch64-linux.h: Likewise.
7353 * config/aarch64/aarch64-netbsd.h: Likewise.
7354 * config/aarch64/aarch64-freebsd.h: Likewise.
7355
7356 2019-06-20 Marek Polacek <polacek@redhat.com>
7357
7358 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
7359
7360 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
7361
7362 * config/rs6000/rs6000.md (isa attribute): Add support for
7363 for a future processor.
7364
7365 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
7366
7367 PR target/54855
7368 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
7369 standard scalar operation pattern for V2DF.
7370 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
7371 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
7372 (*ieee_<ieee_maxmin><mode>3): Likewise.
7373 (vec_setv2df_0): Likewise.
7374
7375 2019-06-20 Jan Hubicka <jh@suse.cz>
7376
7377 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
7378 parameter; it has no use in gimple memory model.
7379 (indirect_ref_may_alias_decl_p): Update.
7380
7381 2019-06-20 Martin Liska <mliska@suse.cz>
7382
7383 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
7384 to 10.
7385
7386 2019-06-20 Jakub Jelinek <jakub@redhat.com>
7387
7388 * tree-vect-stmts.c (enum scan_store_kind): New type.
7389 (scan_store_can_perm_p): Change last argument from int * to
7390 vec<enum scan_store_kind> *, record precisely which permutations
7391 need whole vector left shift or that plus VEC_COND_EXPR.
7392 (vectorizable_scan_store): Adjust caller, use whole vector left shift
7393 and additional VEC_COND_EXPR only for those iterations that need it.
7394
7395 2019-06-20 Alexandre Oliva <oliva@adacore.com>
7396
7397 * config.gcc: Fix ARM --with-fpu checking and error message.
7398
7399 2019-06-19 Marek Polacek <polacek@redhat.com>
7400
7401 PR c++/60364 - noreturn after first decl not diagnosed.
7402 * attribs.c (get_attribute_namespace): No longer static.
7403 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
7404 attributes.
7405 (attr_noreturn_exclusions): Make it extern.
7406 * attribs.h (get_attribute_namespace): Declare.
7407 * tree-inline.c (function_attribute_inlinable_p): Use
7408 get_attribute_name.
7409
7410 2019-06-19 Martin Sebor <msebor@redhat.com>
7411
7412 PR tree-optimization/90626
7413 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
7414
7415 PR tree-optimization/90626
7416 * tree-ssa-strlen.c (strxcmp_unequal): New function.
7417 (handle_builtin_string_cmp): Call it.
7418
7419 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
7420
7421 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
7422 and DARWIN_NOPIE_SPEC.
7423 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
7424 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
7425 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
7426 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
7427 (DARWIN_EXPORT_DYNAMIC): Delete.
7428 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
7429 and pie options processing to darwin.h.
7430 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
7431
7432 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
7433
7434 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
7435 in computing the number of options to be moved.
7436
7437 2019-06-19 Maya Rashish <coypu@sdf.org>
7438
7439 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
7440 (CLEAR_INSN_CACHE) Use it.
7441
7442 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
7443
7444 * config/i386/i386.md (cmpstrnsi): Remove dead code.
7445
7446 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
7447
7448 PR middle-end/84521
7449 * builtins.c (expand_builtin_setjmp_setup): Save
7450 hard_frame_pointer_rtx.
7451 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
7452 restore fp.
7453 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
7454 non-local goto.
7455 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
7456 elimination code.
7457 (remove_reg_equal_offset_note): Remove unused function.
7458 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
7459 code.
7460 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7461 (arc_builtin_setjmp_frame_value): Remove function.
7462 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7463 (avr_builtin_setjmp_frame_value): Remove function.
7464 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7465 (ix86_builtin_setjmp_frame_value): Remove function.
7466 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
7467 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7468 (sparc_builtin_setjmp_frame_value): Remove function.
7469 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
7470 (vax_builtin_setjmp_frame_value): Remove function.
7471 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
7472 pointer if has_nonlocal_label.
7473
7474 2019-06-19 Jakub Jelinek <jakub@redhat.com>
7475
7476 * doc/md.texi: Document vec_shl_<mode> pattern.
7477 * optabs.def (vec_shl_optab): New optab.
7478 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
7479 argument, if == vec_shl_optab, check for left whole vector shift
7480 pattern rather than right shift.
7481 (expand_vec_perm_const): Add vec_shl_optab support.
7482 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
7483 in the comment.
7484 * tree-vect-generic.c (lower_vec_perm): Support permutations which
7485 can be handled by vec_shl_optab.
7486 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
7487 (check_scan_store): Use it.
7488 (vectorizable_scan_store): If target can't do normal permutations,
7489 try to use whole vector left shifts and if needed a VEC_COND_EXPR
7490 after it.
7491 * config/i386/sse.md (vec_shl_<mode>): New expander.
7492
7493 * omp-low.c (lower_rec_input_clauses): Handle references properly
7494 in inscan clauses.
7495 (lower_omp_scan): Likewise.
7496
7497 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
7498
7499 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
7500 mem_mode is BLKmode.
7501
7502 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
7503
7504 PR target/90922
7505 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
7506 pointer adjustment for the case of no callee-saved registers and
7507 stack frame bigger than 128 bytes.
7508
7509 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
7510
7511 PR middle-end/90862
7512 * omp-low.c (check_omp_nesting_restrictions): Handle
7513 GF_OMP_TARGET_KIND_OACC_DECLARE.
7514
7515 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
7516
7517 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
7518 (@add<mode>3_carry): Rename from add<mode>3_carry.
7519 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
7520 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
7521 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
7522 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
7523 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
7524 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
7525 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
7526 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
7527 (cmpstrnsi): Use gen_cmp_1.
7528 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
7529 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
7530 (@umonitor_<mode>): Rename from umonitor_<mode>.
7531 * config/i386/i386-expand.c (ix86_expand_copysign):
7532 Use gen_copysign3_const and gen_copysign3_var.
7533 (ix86_expand_xorsign): Use gen_xorsign3_1.
7534 (ix86_expand_branch): Use gen_sub3_carry_ccc,
7535 gen_sub3_carry_ccgz and gen_cmp1.
7536 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
7537 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
7538 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
7539 (ix86_split_lshr): Ditto.
7540 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
7541
7542 2019-06-18 Jason Merrill <jason@redhat.com>
7543
7544 * tree.c (build_constructor): Add MEM_STAT_DECL.
7545
7546 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7547
7548 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
7549 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
7550 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
7551 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
7552 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
7553 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
7554 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
7555 Use CC_NZC instead of CC.
7556 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
7557 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
7558 (aarch64_print_operand): Handle E_CC_NZCmode.
7559 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
7560 of gen_set_clobber_cc.
7561
7562 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7563
7564 * config/aarch64/aarch64-sve.md: Tabify file.
7565
7566 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7567
7568 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
7569 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
7570 * config/aarch64/aarch64-sve.md: Use it.
7571
7572 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7573
7574 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
7575 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
7576 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
7577 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
7578 (aarch64_expand_sve_vec_cmp_int): Use it.
7579 (aarch64_expand_sve_vec_cmp_float): Likewise.
7580 * config/aarch64/aarch64-sve.md: Likewise throughout.
7581
7582 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7583 Kugan Vivekanandarajah <kuganv@linaro.org>
7584
7585 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
7586 (*cond_<optab><mode>_z): Fold into...
7587 (*cond_<optab><mode>_any): ...here. Also handle cases in which
7588 operand 4 can be tied to operand 0 (either inherently or via RA).
7589
7590 2019-06-18 Richard Biener <rguenther@suse.de>
7591
7592 PR debug/90900
7593 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
7594 as if optimized away.
7595
7596 2019-06-18 Tom de Vries <tdevries@suse.de>
7597
7598 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
7599 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
7600 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
7601 Rename to ...
7602 (define_insn "@set_softstack_<mode>"): ... this.
7603 (define_insn "omp_simt_enter_<mode>"): Rename to ...
7604 (define_insn "@omp_simt_enter_<mode>"): ... this.
7605 (define_insn "omp_simt_exit_<mode>"): Rename to ...
7606 (define_insn "@omp_simt_exit_<mode>"): ... this.
7607
7608 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
7609
7610 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
7611 vf parameter. Restore the previous iv step of nscalars_step,
7612 but give it iv_type rather than compare_type. Tweak code order
7613 to match the comments.
7614 (vect_set_loop_condition_masked): Update accordingly.
7615 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
7616 for iv_precision. Tweak comment formatting.
7617
7618 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
7619
7620 * config/darwin.c: Strip trailing whitespace.
7621
7622 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
7623
7624 * config/darwin.c (darwin_emit_unwind_label): New default to false.
7625 (darwin_override_options): Set darwin_emit_unwind_label as needed.
7626
7627 2019-06-18 Martin Jambor <mjambor@suse.cz>
7628
7629 PR ipa/90889
7630 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
7631 caller does not have flag_ipa_cp set.
7632
7633 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
7634
7635 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
7636 from "*fold_left_plus_<mode>", updated operands order.
7637 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
7638 * internal-fn.c (mask_fold_left_direct): New define.
7639 (expand_mask_fold_left_optab_fn): Likewise.
7640 (direct_mask_fold_left_optab_supported_p): Likewise.
7641 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
7642 * optabs.def (mask_fold_left_plus_optab): New optab.
7643 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
7644 masked internal_fn for a reduction ifn.
7645 (vectorize_fold_left_reduction): Add support for masking reductions.
7646
7647 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
7648
7649 PR middle-end/80791
7650 * target.def (predict_doloop_p): New hook.
7651 * targhooks.h (default_predict_doloop_p): New declaration.
7652 * targhooks.c (default_predict_doloop_p): New function.
7653 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
7654 * doc/tm.texi: Regenerate.
7655 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
7656 (TARGET_PREDICT_DOLOOP_P): New macro.
7657 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
7658
7659 2019-06-17 Jakub Jelinek <jakub@redhat.com>
7660
7661 * omp-low.c (struct omp_context): Add scan_inclusive field.
7662 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
7663 if inclusive scan.
7664 (struct omplow_simd_context): Add lastlane member.
7665 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
7666 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
7667 1 or 2 argument.
7668 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
7669 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
7670 (lower_omp_scan): New function.
7671 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
7672 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
7673 check 3rd argument if present rather than 2nd.
7674 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
7675 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
7676 2-bit bitfield.
7677 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
7678 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
7679 than 2nd.
7680 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
7681 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
7682 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
7683 init.
7684 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
7685 IFN_GOMP_SIMD_LANE argument.
7686 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
7687 encoded ->aux value.
7688 * tree-vect-stmts.c: Include attribs.h.
7689 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
7690 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
7691 functions.
7692 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
7693 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
7694
7695 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
7696
7697 PR target/62055
7698 * config/i386/i386.md (*nabstf2_1): New insn pattern.
7699 (*nabs<mode>2_1): Ditto.
7700 (nabs sse-reg splitter): New splitter.
7701 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
7702
7703 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
7704
7705 PR bootstrap/90873.
7706 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
7707 TMR index check.
7708
7709 2019-06-17 Tom de Vries <tdevries@suse.de>
7710
7711 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
7712 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
7713 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
7714 ...
7715 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
7716 match_operand 0.
7717 (define_insn "omp_simt_enter_insn"): Rename to ...
7718 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
7719 match_operand 0, 1 and 2, as well as the unspec_volatile result.
7720 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
7721 gen_omp_simt_enter_si.
7722 (define_expand "omp_simt_exit"): New.
7723 (define_insn "omp_simt_exit"): Rename to ...
7724 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
7725 match_operand 0.
7726
7727 2019-06-17 Matthew Green <mrg@eterna.com.au>
7728 Maya Rashish <coypu@sdf.org>
7729
7730 * config.gcc (aarch64*-*-netbsd*): New target.
7731 * config/aarch64/aarch64-netbsd.h: New file.
7732 * config/aarch64/t-aarch64-netbsd: Likewise.
7733
7734 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
7735
7736 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
7737 the access path from base to first VIEW_CONVERT_EXPR or
7738 BIT_FIELD_REF.
7739
7740 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
7741
7742 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
7743 access path on BIT_FIELD_REFs.
7744
7745 2019-06-17 Martin Liska <mliska@suse.cz>
7746
7747 PR ipa/90874
7748 * ipa-utils.h (odr_type_p): Remove dead code.
7749
7750 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
7751
7752 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
7753 alternative Solaris 11.4 format.
7754 * configure: Regenerate.
7755
7756 2019-06-17 Tom de Vries <tdevries@suse.de>
7757
7758 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
7759 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
7760 match_operand 0.
7761 (define_insn "call_value_insn"): Rename to ...
7762 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
7763 match_operand 0.
7764 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
7765 DI.
7766
7767 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
7768
7769 PR middle-end/64242
7770 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
7771 frame clobbers and schedule block.
7772 (builtin_longjmp): Likewise.
7773
7774 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7775
7776 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
7777 describe how to perform MSPABI compliant 64-bit shift.
7778 * config/msp430/msp430.md (ashldi3): New define_expand.
7779 (ashrdi3): New define_expand.
7780 (lshrdi3): New define_expand.
7781
7782 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
7783
7784 * doc/sourcebuild.texi: Document new effective target keyword
7785 longlong64.
7786
7787 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
7788
7789 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
7790 indirect_refs_may_alias_p): Revert accidental commits.
7791
7792 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
7793 at the end of structures.
7794
7795 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
7796
7797 * config/darwin.c (machopic_indirect_call_target): Use renamed
7798 darwin_picsymbol_stubs to decide on output.
7799 (darwin_override_options): Handle darwin_picsymbol_stubs.
7800 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
7801 (LD64_VERSION): Revise default.
7802 * config/darwin.opt: (mpic-symbol-stubs): New option.
7803 (darwin_picsymbol_stubs): New variable.
7804 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
7805 rename to TARGET_MACHO_PICSYM_STUBS.
7806 * config/i386/i386.c (output_pic_addr_const): Likewise.
7807 * config/i386/i386.h Likewise.
7808 * config/rs6000/darwin.h: Likewise.
7809 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
7810 darwin_picsymbol_stubs.
7811
7812 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
7813
7814 * config/darwin.opt (prebind, noprebind, seglinkedit,
7815 noseglinkedit): Add RejectNegative.
7816
7817 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
7818
7819 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
7820 in my previous patch.
7821
7822 2019-06-16 Tom de Vries <tdevries@suse.de>
7823
7824 PR tree-optimization/89376
7825 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
7826
7827 2019-06-15 Maya Rashish <coypu@sdf.org>
7828
7829 * doc/invoke.texi (Spec Files): Update location of the
7830 Fortran spec file.
7831
7832 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
7833
7834 * doc/extend.texi (Common Function Attributes): Clarify
7835 no_sanitize. Fix grammar.
7836
7837 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
7838
7839 * tree-ssa-alias.c (alias_stats): Add
7840 nonoverlapping_component_refs_p_may_alias,
7841 nonoverlapping_component_refs_p_no_alias,
7842 nonoverlapping_component_refs_of_decl_p_may_alias,
7843 nonoverlapping_component_refs_of_decl_p_no_alias.
7844 (dump_alias_stats): Dump them.
7845 (nonoverlapping_component_refs_of_decl_p): Add stats.
7846 (nonoverlapping_component_refs_p): Add stats; do not stop on first
7847 ARRAY_REF.
7848
7849 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
7850
7851 * config/i386/i386.md (and<mode>3): Generate zero-extends for
7852 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
7853 only.
7854 (*anddi3_doubleword): Split before reload. Merge with
7855 anddi->zext pre-reload splitter.
7856 (*andndi3_doubleword): Split before reload.
7857 (*<code>di3_doubleword): Ditto.
7858 (*one_cmpldi2_doubleword): Ditto.
7859
7860 2019-06-15 Jakub Jelinek <jakub@redhat.com>
7861
7862 PR middle-end/90779
7863 * gimplify.c: Include omp-offload.h and context.h.
7864 (gimplify_bind_expr): Add "omp declare target" attributes
7865 to static block scope variables inside of target region or target
7866 functions.
7867
7868 2019-06-15 Tom de Vries <tdevries@suse.de>
7869
7870 PR tree-optimization/90009
7871 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
7872 Return NULL if bb contains IFN_UNIQUE.
7873
7874 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
7875
7876 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
7877 (un): New define_mode_attr.
7878 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
7879 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
7880 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
7881 merge into ...
7882 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
7883
7884 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
7885
7886 * config/darwin.opt: Add RejectNegative where needed, reorder
7887 and add minimal functional descriptions.
7888
7889 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
7890
7891 PR rtl-optimization/90765
7892 * calls.c (update_stack_alignment_for_call): New function.
7893 (expand_call): Call update_stack_alignment_for_call when
7894 outgoing parameter is passed in the stack.
7895 (emit_library_call_value_1): Likewise.
7896 * function.c (locate_and_pad_parm): Don't update
7897 stack_alignment_needed and preferred_stack_boundary.
7898
7899 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
7900
7901 PR target/90877
7902 * config/i386/i386-features.c
7903 (dimode_scalar_chain::compute_convert_gain): Replace
7904 mmxsse_to_integer with sse_to_integer.
7905 * config/i386/i386.c (ix86_register_move_cost): Verify that
7906 moves between MMX and non-MMX units require secondary memory.
7907 Correct costs of moves between SSE and integer units.
7908 * config/i386/i386.h (processor_costs): Rename cost of moving
7909 SSE register to integer to sse_to_integer. Rename cost of
7910
7911 2019-06-14 Matt Thomas <matt@3am-software.com>
7912 Matthew Green <mrg@eterna.com.au>
7913 Nick Hudson <skrll@netbsd.org>
7914 Maya Rashish <coypu@sdf.org>
7915 Richard Earnshaw <rearnsha@arm.com>
7916
7917 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
7918 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
7919 * config/arm/netbsd-eabi.h: New file.
7920 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
7921 redefining.
7922 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
7923 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
7924 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
7925 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
7926
7927 2019-06-14 Richard Biener <rguenther@suse.de>
7928
7929 * tree-loop-distribution.c (classify_partition): Return
7930 whether a reduction appeared in all partitions and do not
7931 stop builtin detection because of this.
7932 (distribute_loop): Sort a non-builtin partition last if
7933 there's a reduction in all partitions and make sure the
7934 partition prevailing as last is not a builtin.
7935
7936 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
7937
7938 PR ipa/90401
7939 * ipa-prop.c (add_to_agg_contents_list): New function.
7940 (clobber_by_agg_contents_list_p): Likewise.
7941 (extract_mem_content): Likewise.
7942 (get_place_in_agg_contents_list): Delete.
7943 (determine_known_aggregate_parts): Renamed from
7944 determine_locally_known_aggregate_parts. New parameter
7945 aa_walk_budget_p.
7946
7947 2019-06-13 Martin Sebor <msebor@redhat.com>
7948
7949 PR tree-optimization/90662
7950 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
7951 to the same type.
7952
7953 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
7954
7955 PR bootstrap/90873
7956 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
7957 dbase is not TARGET_MEM_REF.
7958
7959 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
7960
7961 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
7962 Update all uses.
7963 (and<mode>3): Use gen_extend_insn instead of indirect functions.
7964 Do not generate DImode extends for 32bit targets.
7965 (and->zext post-reload splitter): Use gen_extend_insn
7966 instead of indirect functions.
7967 (anddi->zext pre-reload splitter): New.
7968 (*zext<mode>_doubleword_and): Remove.
7969 (*zext<mode>_doubleword): Ditto.
7970 (*zextsi_doubleword): Dittto.
7971
7972 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
7973
7974 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
7975 Use gen_sub3_insn instead of indirect function.
7976 (ix86_expand_ashl_const): Use gen_add2_insn instead of
7977 indirect function.
7978 (ix86_adjust_counter): Ditto.
7979
7980 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
7981 Lijia He <helijia@linux.ibm.com>
7982
7983 PR tree-optimization/77820
7984 * tree-ssa-threadedge.c
7985 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
7986 function.
7987 (thread_across_edge): Add call to
7988 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
7989
7990 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
7991
7992 * config/darwin-driver.c (validate_macosx_version_min): New.
7993 (darwin_default_min_version): Cleanup and validate supplied version.
7994 (darwin_driver_init): Likewise and push cleaned version into opts.
7995
7996 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
7997
7998 PR tree-optimization/90869
7999 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
8000 converts in MEM_REF referencing decl rather than view converts
8001 from decl type to MEM_REF type.
8002
8003 2019-06-13 Richard Biener <rguenther@suse.de>
8004
8005 PR tree-optimization/90856
8006 * tree-sra.c (build_ref_for_model): Only use
8007 build_reconstructed_reference when address-spaces are the same.
8008
8009 2019-06-13 Jakub Jelinek <jakub@redhat.com>
8010
8011 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
8012 wrap ei variable name in the declaration in ()s.
8013 (nvptx_single): Actually use mode_label variable. Formatting fix.
8014
8015 2019-06-13 Richard Biener <rguenther@suse.de>
8016
8017 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
8018 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
8019 also return the condition stmt.
8020 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
8021 loop we can version and version that, reusing the loop version
8022 created by if-conversion instead of versioning again.
8023
8024 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
8025
8026 * gimple-loop-versioning.cc (prune_loop_conditions): Use
8027 may_contain_p.
8028 * tree-vrp (value_range_base::may_contain_p): Call into
8029 value_inside_range.
8030 (value_inside_range): Make private inside value_range_base class.
8031 Take min/max from *this.
8032 (range_includes_p): Remove.
8033 * tree-vrp.h (value_range_base): Add value_inside_range.
8034 (range_includes_p): Remove.
8035 (range_includes_zero_p): Call may_contain_p.
8036 * vr-values.c (compare_range_with_value): Same.
8037
8038 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
8039
8040 * doc/extend.texi (ARC Function Attributes): Update info.
8041
8042 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
8043
8044 PR tree-optimization/89713
8045 * doc/invoke.texi (-ffinite-loops): Document new option.
8046 * common.opt (-ffinite-loops): New option.
8047 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
8048 IFN_GOACC_LOOP calls as necessary.
8049 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
8050 is finite.
8051 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
8052 IFN_GOACC_LOOP call is not used.
8053 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
8054
8055 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
8056
8057 PR target/88838
8058 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
8059 compare_type is not with Pmode size, we will create an IV with
8060 Pmode size with truncated use (i.e. converted to the correct type).
8061 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
8062 (vect_iv_limit_for_full_masking): New. Factored out of
8063 vect_set_loop_condition_masked.
8064 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
8065 (vect_iv_limit_for_full_masking): Declare.
8066
8067 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
8068
8069 PR target/88834
8070 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
8071 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
8072 (get_alias_ptr_type_for_ptr_address): Likewise.
8073 (add_iv_candidate_for_use): Add scaled index candidate if useful.
8074 * tree-ssa-address.c (preferred_mem_scale_factor): New.
8075 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
8076 allow_reg_index_p.
8077
8078 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
8079
8080 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
8081
8082 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
8083
8084 * common/config/pru/pru-common.c: New file.
8085 * config.gcc: Add PRU target.
8086 * config/pru/alu-zext.md: New file.
8087 * config/pru/constraints.md: New file.
8088 * config/pru/predicates.md: New file.
8089 * config/pru/pru-opts.h: New file.
8090 * config/pru/pru-passes.c: New file.
8091 * config/pru/pru-pragma.c: New file.
8092 * config/pru/pru-protos.h: New file.
8093 * config/pru/pru.c: New file.
8094 * config/pru/pru.h: New file.
8095 * config/pru/pru.md: New file.
8096 * config/pru/pru.opt: New file.
8097 * config/pru/t-pru: New file.
8098 * doc/extend.texi: Document PRU pragmas.
8099 * doc/invoke.texi: Document PRU-specific options.
8100 * doc/md.texi: Document PRU asm constraints.
8101
8102 2019-06-12 Martin Sebor <msebor@redhat.com>
8103
8104 PR middle-end/90676
8105 * tree-pretty-print.c (dump_mem_ref): New function. Include
8106 MEM_REF type in output when different size than operand.
8107 (dump_generic_node): Move code to dump_mem_ref and call it.
8108
8109 2019-06-12 Martin Sebor <msebor@redhat.com>
8110
8111 PR tree-optimization/90662
8112 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
8113 to arrays.
8114
8115 2019-06-12 Tom de Vries <tdevries@suse.de>
8116
8117 PR tree-optimization/90009
8118 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
8119
8120 2019-06-12 Martin Liska <mliska@suse.cz>
8121
8122 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
8123 the created map.
8124 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
8125 * mem-stats.h (mem_alloc_description::mem_alloc_description):
8126 Do not sanitize created maps.
8127
8128 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
8129
8130 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
8131 value_range::singleton_p.
8132 * tree-vrp.c (value_range_constant_singleton): Remove.
8133 * tree-vrp.h (value_range_constant_singleton): Remove.
8134 * vr-values.c (vr_values::singleton): Use
8135 value_range::singleton_p.
8136
8137 2019-06-12 Jakub Jelinek <jakub@redhat.com>
8138
8139 PR target/90811
8140 * cfgexpand.c (align_local_variable): Add really_expand argument,
8141 don't SET_DECL_ALIGN if it is false.
8142 (add_stack_var): Add really_expand argument, pass it through to
8143 align_local_variable.
8144 (expand_one_stack_var_1): Pass true as really_expand to
8145 align_local_variable.
8146 (expand_one_ssa_partition): Pass true as really_expand to
8147 add_stack_var.
8148 (expand_one_var): Pass really_expand through to add_stack_var.
8149
8150 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
8151
8152 * config/arm/iterators.md (VABAL): New int iterator.
8153 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
8154 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S,
8155 UNSPEC_VABAL_U values.
8156
8157 2019-06-12 Martin Liska <mliska@suse.cz>
8158
8159 * value-prof.c (stream_out_histogram_value): Only first value
8160 can't be negative.
8161
8162 2019-06-12 Jakub Jelinek <jakub@redhat.com>
8163
8164 PR c/90760
8165 * symtab.c (symtab_node::set_section): Allow being called on aliases
8166 as long as they aren't analyzed yet.
8167
8168 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
8169
8170 * config/mips/mips.c (mips_final_postscan_insn): Modify call
8171 to `mips_set_text_contents_type' to indicate whether a
8172 non-debug insn follows.
8173
8174 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
8175
8176 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
8177 enabling -mpcrel by default.
8178 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
8179 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
8180 that the test against -mcpu=future is done first. Then test if
8181 -mprefixed-addr is on for -mpcrel.
8182 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
8183
8184 2019-06-11 Jakub Jelinek <jakub@redhat.com>
8185
8186 PR target/90811
8187 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
8188 instead of and.u%d.
8189
8190 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
8191
8192 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
8193
8194 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
8195
8196 PR c++/90449 - add -Winaccessible-base option.
8197 * doc/invoke.texi (Winaccessible-base): Document.
8198
8199 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
8200
8201 PR tree-optimization/62041
8202 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
8203
8204 2019-06-11 Jason Merrill <jason@redhat.com>
8205
8206 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
8207 * tree.c (get_tree_code_name): Likewise.
8208 * print-tree.c (print_node): Only briefly print a node with an
8209 invalid code.
8210
8211 2019-06-11 Jakub Jelinek <jakub@redhat.com>
8212
8213 PR bootstrap/90819
8214 * trans-mem.c (tm_memopt_compute_available): Add assertion
8215 that blocks is not empty. Formatting fix.
8216
8217 2019-06-11 Martin Liska <mliska@suse.cz>
8218
8219 PR c++/87847
8220 * hash-table.h: Extend create_gcc, add one parameter
8221 that is passed into hash_table::hash_table.
8222
8223 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
8224
8225 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
8226 New prototype.
8227 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
8228 Emit clobber also for non-sse operations.
8229 (ix86_split_fp_absneg_operator): New function.
8230 * config/i386/i386.md (SSEMODEF): New mode iterator.
8231 (ssevecmodef): New mode attribute.
8232 (<code>tf2): Use absneg code iterator.
8233 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
8234 Add three-operand AVX alternatives.
8235 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
8236 Use absneg code iterator and X87MODEF mode iterator.
8237 (absneg fp_reg non-sse splitter): Call absneg code iterator
8238 and X87MODEF mode iterator.
8239 (absneg general_reg non-sse splitter): Use absneg code iterator
8240 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
8241 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
8242 code iterator. Add three-operand AVX alternative.
8243 (absneg sse_reg splitter): Use absneg code iterator
8244 and SSEMODEF mode iterator. Handle AVX operands.
8245 (absneg fp_reg splitter): Use absneg code iterator
8246 and MODEF mode iterator.
8247 (absneg general_reg splitter): Merge splitters using MODEF mode
8248 iterator. Use absneg code iterator. Call
8249 ix86_split_fp_absneg_operator.
8250 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
8251 Do not enable for non-sse modes before reload.
8252 (CSGNMODE): Remove.
8253 (CSGNVMODE): Ditto.
8254 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
8255 ssevecmodef mode attribute instaed of CSGNVMODE.
8256 (copysign<mode>3_const): Ditto.
8257 (copysign<mode>3_var): Ditto.
8258 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
8259 Use absneg code iterator. Simplify code using std::swap.
8260 * config/i386/predicates.md (absneg_operator): Remove.
8261
8262 2019-06-10 Martin Sebor <msebor@redhat.com>
8263
8264 * gimple-fold.c (get_range_strlen): Update comment that didn't
8265 make it into r267503 or related commits.
8266
8267 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
8268
8269 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
8270 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
8271
8272 2019-06-10 Jakub Jelinek <jakub@redhat.com>
8273
8274 * tree.def (OMP_SCAN): New tree code.
8275 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
8276 OMP_CLAUSE_EXCLUSIVE.
8277 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
8278 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
8279 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
8280 OMP_CLAUSE_{IN,EX}CLUSIVE.
8281 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
8282 * tree-nested.c (convert_nonlocal_reference_stmt,
8283 convert_local_reference_stmt, convert_gimple_call): Handle
8284 GIMPLE_OMP_SCAN.
8285 * tree-pretty-print.c (dump_omp_clause): Handle
8286 OMP_CLAUSE_{IN,EX}CLUSIVE.
8287 (dump_generic_node): Handle OMP_SCAN.
8288 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
8289 * gimple.h (gomp_scan): New type.
8290 (is_a_helper <gomp_scan *>::test,
8291 is_a_helper <const gomp_scan *>::test): New templates.
8292 (gimple_build_omp_scan): Declare.
8293 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
8294 gimple_omp_scan_set_clauses): New inline functions.
8295 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
8296 * gimple.c (gimple_build_omp_scan): New function.
8297 (gimple_copy): Handle GIMPLE_OMP_SCAN.
8298 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
8299 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
8300 GIMPLE_OMP_TASKGROUP.
8301 (dump_gimple_omp_scan): New function.
8302 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
8303 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
8304 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
8305 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
8306 (is_gimple_stmt): Handle OMP_SCAN.
8307 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
8308 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
8309 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
8310 mentioned in nested #pragma omp scan. Handle
8311 OMP_CLAUSE_{IN,EX}CLUSIVE.
8312 (gimplify_expr): Handle OMP_SCAN.
8313 * omp-low.c (check_omp_nesting_restrictions): For parent context,
8314 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
8315 simd constructs.
8316 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
8317 GIMPLE_OMP_SCAN.
8318
8319 2019-06-10 Martin Liska <mliska@suse.cz>
8320
8321 * ipa-cp.c (ignore_edge_p): New function.
8322 (build_toporder_info): Use it.
8323 * ipa-inline.c (ignore_edge_p): New function.
8324 (inline_small_functions): Use it.
8325 * ipa-pure-const.c (ignore_edge_for_nothrow):
8326 Verify opt_for_fn for caller and callee.
8327 (ignore_edge_for_pure_const): Likewise.
8328 * ipa-reference.c (ignore_edge_p): Extend to check
8329 for opt_for_fn.
8330 * ipa-utils.c (searchc): Refactor.
8331 * ipa-utils.h: Fix coding style.
8332
8333 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
8334
8335 * config/arc/arc.c (arc_rtx_costs): Update costs.
8336
8337 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
8338
8339 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
8340 (arc_split_ior): Likewise.
8341 (arc_check_mov_const): Likewise.
8342 (arc_split_mov_const): Likewise.
8343 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
8344 (arc_rtx_costs): Replace check Crr with Cax constraint.
8345 (prepare_move_operands): Cleanup, remove unused code.
8346 (arc_split_ior): New function.
8347 (arc_check_ior_const): Likewise.
8348 (arc_split_mov_const): Likewise.
8349 (arc_check_mov_const): Likewise.
8350 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
8351 in define_insn_and_split pattern.
8352 (iorsi3): Likewise.
8353 (mulsi3_v2): Add new matching variant.
8354 (andsi3_i): Cleanup pattern.
8355 (rotrsi3_cnt1): Update pattern.
8356 (rotrsi3_cnt8): New pattern.
8357 (ashlsi2_cnt8): Likewise.
8358 (ashlsi2_cnt16): Likewise.
8359 * config/arc/constraints.md (C0p): Update constraint.
8360 (Crr): Remove it.
8361 (C0x): New pattern.
8362 (Cax): New pattern.
8363
8364 2019-06-10 Martin Liska <mliska@suse.cz>
8365
8366 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
8367 Update coding style.
8368 (sem_item_optimizer::dump_cong_classes):
8369 Print how many items are in a non-singular class. Improve
8370 coding style.
8371
8372 2019-06-10 Martin Liska <mliska@suse.cz>
8373
8374 * value-prof.c (dump_histogram_value): Change dump format.
8375 (gimple_mod_subtract_transform): Remove legacy comment.
8376
8377 2019-06-10 Martin Liska <mliska@suse.cz>
8378
8379 * value-prof.c (dump_histogram_value): Print histogram values
8380 only if present.
8381
8382 2019-06-10 Martin Liska <mliska@suse.cz>
8383
8384 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
8385 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
8386 * ipa-profile.c (ipa_profile_generate_summary):
8387 Use get_most_common_single_value.
8388 * tree-profile.c (gimple_init_gcov_profiler):
8389 Instrument with __gcov_one_value_profiler_v2
8390 and __gcov_indirect_call_profiler_v4.
8391 * value-prof.c (dump_histogram_value):
8392 Print all values for HIST_TYPE_SINGLE_VALUE.
8393 (stream_out_histogram_value): Update assert for
8394 N values.
8395 (stream_in_histogram_value): Set number of
8396 counters for HIST_TYPE_SINGLE_VALUE.
8397 (get_most_common_single_value): New.
8398 (gimple_divmod_fixed_value_transform):
8399 Use get_most_common_single_value.
8400 (gimple_ic_transform): Likewise.
8401 (gimple_stringops_transform): Likewise.
8402 (gimple_find_values_to_profile): Set number
8403 of counters for HIST_TYPE_SINGLE_VALUE.
8404 * value-prof.h (get_most_common_single_value): New.
8405
8406 2019-06-10 Martin Liska <mliska@suse.cz>
8407
8408 * hash-map.h: Pass default value to hash_table ctor.
8409 * hash-table.h: Add default value to call of a ctor.
8410
8411 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
8412
8413 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
8414 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
8415
8416 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
8417
8418 PR target/90751
8419 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
8420 Call pa_output_function_label.
8421 (TARGET_ASM_FUNCTION_PROLOGUE): define.
8422 * config/pa/pa-protos.h (pa_output_function_label): Declare.
8423 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
8424 to declaration.
8425 (pa_linux_output_function_prologue): Declare.
8426 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
8427 (pa_output_function_label): New.
8428 (pa_output_function_prologue): Revise to use pa_output_function_label.
8429 (pa_linux_output_function_prologue): New.
8430 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
8431
8432 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
8433
8434 * tree-vrp.h (value_range_base::intersect): New.
8435 (value_range::intersect_helper): Move from here...
8436 (value_range_base::intersect_helper): ...to here.
8437 * tree-vrp.c (value_range::intersect_helper): Rename to...
8438 (value_range_base::intersect_helper): ...this, and rewrite to
8439 return a value instead of modifying THIS in place.
8440 Also, move equivalence handling...
8441 (value_range::intersect): ...here, while calling intersect_helper.
8442 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
8443 calling intersect.
8444 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
8445 Same.
8446 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
8447
8448 2019-06-07 Jakub Jelinek <jakub@redhat.com>
8449
8450 * Makefile.in (genprogerr): Add condmd.
8451 (genprog): Remove it here.
8452
8453 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
8454
8455 * doc/invoke.texi (AMD GCN Options): Add gfx906.
8456
8457 2019-06-07 Richard Biener <rguenther@suse.de>
8458
8459 PR debug/90574
8460 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
8461 that appear after user labels.
8462
8463 2019-06-07 Martin Liska <mliska@suse.cz>
8464
8465 * cselib.c (cselib_init): Disable hash table
8466 sanitization.
8467 * hash-set.h: Pass new default argument to m_table.
8468 * hash-table.c: Add global variable with hash table
8469 sanitization limit.
8470 * hash-table.h (Allocator>::hash_table): Add new argument
8471 to ctor.
8472 (hashtab_chk_error): New.
8473 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
8474 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
8475 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
8476
8477 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
8478
8479 * common.opt (flto-odr-type-merging): Ignore.
8480 * invoke.texi (-flto-odr-type-merging): Remove.
8481 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
8482 (can_be_vtable_hashed_p): Remove.
8483 (hash_odr_vtable): Remove.
8484 (odr_vtable_hasher::hash): Remove.
8485 (types_same_for_odr): Remove.
8486 (types_odr_comparable): Remove.
8487 (odr_vtable_hasher::equal): Remove.
8488 (odr_vtable_hash_type, odr_vtable_hash): Remove.
8489 (add_type_duplicate): Do not synchronize vtable and name hashtables.
8490 (get_odr_type): Do not use vtable hash.
8491 (dump_odr_type): Remove commented out code.
8492 (build_type_inheritance_graph): Do not allocate vtable hash.
8493 (rebuild_type_inheritance_graph): Do not delete vtable hash.
8494 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
8495 (odr_type_p): Likewise.
8496 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
8497 test.
8498
8499 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
8500
8501 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
8502 immediately after same_types_for_tbaa_p returns -1 and continue
8503 looking for possible exact match; if matching types are arrays
8504 watch for partial overlaps.
8505 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
8506 (indirect_refs_may_alias_p): Do type based disambiguation first;
8507 update comment.
8508
8509 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
8510
8511 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
8512
8513 2019-06-07 Martin Liska <mliska@suse.cz>
8514
8515 * doc/invoke.texi: Remove param.
8516 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
8517 Remove.
8518 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
8519 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
8520 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
8521 * profile.c (instrument_values): Remove
8522 HIST_TYPE_INDIR_CALL_TOPN.
8523 * tree-profile.c (init_ic_make_global_vars):
8524 Always build __gcov_indirect_call only.
8525 (gimple_init_gcov_profiler): Remove usage
8526 of PARAM_INDIR_CALL_TOPN_PROFILE.
8527 (gimple_gen_ic_profiler): Likewise.
8528 * value-prof.c (dump_histogram_value): Likewise.
8529 (stream_in_histogram_value): Likewise.
8530 (gimple_indirect_call_to_profile): Likewise.
8531 (gimple_find_values_to_profile): Likewise.
8532 * value-prof.h (enum hist_type): Likewise.
8533
8534 2019-06-07 Martin Liska <mliska@suse.cz>
8535
8536 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
8537 function.
8538
8539 2019-06-07 Martin Liska <mliska@suse.cz>
8540
8541 PR tree-optimization/78902
8542 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
8543 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
8544 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
8545 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
8546 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
8547 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
8548 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
8549 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
8550 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
8551 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
8552 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
8553 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
8554 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
8555 New.
8556 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
8557 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
8558 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
8559 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
8560 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
8561 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
8562 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
8563 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
8564 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
8565 warn_unused_result attribute.
8566 (BUILT_IN_STRDUP): Likewise.
8567 (BUILT_IN_STRNDUP): Likewise.
8568 (BUILT_IN_ALLOCA): Likewise.
8569 (BUILT_IN_CALLOC): Likewise.
8570 (BUILT_IN_MALLOC): Likewise.
8571 (BUILT_IN_REALLOC): Likewise.
8572
8573 2019-06-06 Jim Wilson <jimw@sifive.com>
8574
8575 PR target/89955
8576 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
8577 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
8578 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
8579
8580 2019-06-06 Martin Sebor <msebor@redhat.com>
8581
8582 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
8583 (handle_builtin_malloc): Remove trailing spaces.
8584 (handle_builtin_memset): Same.
8585 (handle_builtin_memcmp): Same.
8586 (compute_string_length): Same.
8587 (determine_min_objsize): Same.
8588 (handle_builtin_string_cmp): Same.
8589 (handle_char_store): Same. Break up excessively long line.
8590
8591 2019-06-06 Martin Jambor <mjambor@suse.cz>
8592
8593 * tree-sra.c (build_reconstructed_reference): Drop the alignment
8594 check.
8595
8596 2019-06-06 Martin Jambor <mjambor@suse.cz>
8597
8598 * tree-sra.c (struct access): New field grp_same_access_path.
8599 (dump_access): Dump it.
8600 (build_reconstructed_reference): New function.
8601 (build_ref_for_model): Use it if possible.
8602 (path_comparable_for_same_access): New function.
8603 (same_access_path_p): Likewise.
8604 (sort_and_splice_var_accesses): Set the new flag.
8605 (analyze_access_subtree): Likewise.
8606 (propagate_subaccesses_across_link): Propagate zero value of the new
8607 flag down the access tree.
8608
8609 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
8610
8611 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
8612 * config/gcn/gcn.opt (gpu_type): Add gfx906.
8613 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
8614 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
8615 Add gfx906.
8616
8617 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8618
8619 PR tree-optimization/90332
8620 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
8621 Handle VALS containing two vectors.
8622 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
8623 to...
8624 (@aarch64_combinez<mode>): ... This.
8625 (*aarch64_combinez_be<mode>): Rename to...
8626 (@aarch64_combinez_be<mode>): ... This.
8627 (vec_init<mode><Vhalf>): New define_expand.
8628 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
8629
8630 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8631
8632 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
8633 library functions only when not optimizing for size.
8634 (ashlsi3): Likewise.
8635 (ashrhi3): Likewise.
8636 (ashrsi3): Likewise.
8637 (lshrhi3): Likewise.
8638 (lshrsi3): Likewise.
8639
8640 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
8641
8642 PR rtl-optimization/88751
8643 * ira.c (ira): Use the number of the actually referenced registers
8644 when calculating the threshold.
8645
8646 2019-06-06 Jakub Jelinek <jakub@redhat.com>
8647
8648 * configure: Regenerate.
8649
8650 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
8651
8652 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
8653 register if it is in memory, so the shift can be emulated with a rotate
8654 instruction.
8655 (ashrhi3): Likewise.
8656 (lshrhi3): Likewise.
8657
8658 2019-06-06 Martin Liska <mliska@suse.cz>
8659
8660 PR tree-optimization/87954
8661 * match.pd: Simplify mult where both arguments are 0 or 1.
8662
8663 2019-06-06 Richard Biener <rguenther@suse.de>
8664
8665 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
8666 put equivalences on UNDEFINED ranges.
8667 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
8668 Make sure to drop defs of stmts added during simplification
8669 to VARYING.
8670
8671 2019-06-06 Richard Biener <rguenther@suse.de>
8672
8673 * tree-ssa-structalias.c: Include tree-cfg.h.
8674 (make_heapvar): Do not make heap vars artificial.
8675 (find_func_aliases_for_builtin_call): Handle stack allocation
8676 functions.
8677 (find_func_aliases): Delay processing of simple enough returns
8678 in non-IPA mode.
8679 (set_uids_in_ptset): Adjust.
8680 (find_what_var_points_to): Likewise.
8681 (solve_constraints): Do not dump points-to sets here.
8682 (compute_points_to_sets): Post-process return statements,
8683 amending the escaped solution. Dump points-to sets afterwards.
8684 (ipa_pta_execute): Dump points-to sets.
8685
8686 2019-06-06 Martin Liska <mliska@suse.cz>
8687
8688 PR web/87933
8689 * doc/install.texi: Fix HTML headers and
8690 titles for 'Installing GCC' pages.
8691
8692 2019-06-06 Martin Liska <mliska@suse.cz>
8693
8694 * ipa-icf-gimple.h (dump_message_1): Remove.
8695 (dump_message): Likewise.
8696 (return_false_with_message_1): Print also file.
8697 (return_false_with_msg): Likewise.
8698 (return_with_result): Likewise.
8699 (return_with_debug): Likewise.
8700 * ipa-icf.c (sem_function::equals_private): Remove call
8701 to dump_message.
8702
8703 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
8704
8705 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
8706 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
8707 memory operand for it.
8708 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
8709
8710 2019-06-05 Martin Sebor <msebor@redhat.com>
8711
8712 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
8713 Adjust quoting and hyphenation.
8714 * convert.c (convert_to_real_1): Same.
8715 * gcc.c (driver_wrong_lang_callback): Same.
8716 (driver::handle_unrecognized_options): Same.
8717 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
8718 * opts-common.c (cmdline_handle_error): Same.
8719 (read_cmdline_option): Same.
8720 * opts-global.c (complain_wrong_lang): Same.
8721 (print_ignored_options): Same.
8722 (handle_common_deferred_options): Same.
8723 * pretty-print.h: Same.
8724 * print-rtl.c (debug_bb_n_slim): Same.
8725 * sched-rgn.c (make_pass_sched_fusion): Same.
8726 * tree-cfg.c (verify_gimple_assign_unary): Same.
8727 (verify_gimple_label): Same.
8728 * tree-ssa-operands.c (verify_ssa_operands): Same.
8729 * varasm.c (do_assemble_alias): Same.
8730 (assemble_alias): Same.
8731
8732 2019-06-05 Richard Henderson <rth@twiddle.net>
8733
8734 * config/alpha/alpha.c (direct_return): Move down after
8735 struct machine_function definition; use saved frame_size;
8736 return bool.
8737 (struct machine_function): Add sa_mask, sa_size, frame_size.
8738 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
8739 (alpha_compute_frame_layout): ... new function.
8740 (TARGET_COMPUTE_FRAME_LAYOUT): New.
8741 (alpha_initial_elimination_offset): Use saved sa_size.
8742 (alpha_vms_initial_elimination_offset): Likewise.
8743 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
8744 (alpha_expand_prologue): Use saved frame data. Merge integer
8745 and fp register save loops.
8746 (alpha_expand_epilogue): Likewise.
8747 (alpha_start_function): Use saved frame data.
8748 * config/alpha/alpha-protos.h (direct_return): Update.
8749 (alpha_sa_size): Remove.
8750
8751 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
8752
8753 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
8754 multiplication by a power-of-two value.
8755 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
8756 and turn the modulo operation into a masking operation.
8757
8758 2019-06-05 Jakub Jelinek <jakub@redhat.com>
8759
8760 PR debug/90733
8761 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
8762 with VOIDmode inner operands.
8763
8764 2019-06-05 Richard Biener <rguenther@suse.de>
8765
8766 PR middle-end/90726
8767 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
8768 turn an expression graph into a tree.
8769
8770 2019-06-05 Jakub Jelinek <jakub@redhat.com>
8771
8772 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
8773 member.
8774 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
8775 treat it like explicit monotonic schedule modifier.
8776 (expand_omp_for): Initialize has_lastprivate_conditional.
8777 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
8778 schedule modifier.
8779
8780 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
8781 references, lookup in in hash map MEM_REF operand instead of the
8782 MEM_REF itself.
8783 (lower_omp_1): When looking for lastprivate conditional assignments,
8784 handle MEM_REFs with REFERENCE_TYPE operands.
8785
8786 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
8787 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
8788 and references a VLA. Handle references to non-VLAs if is_simd
8789 all privatization clauses like reductions.
8790 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
8791 If omp_is_reference, use always omp simd arrays and set
8792 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
8793 fails, emit reference initialization.
8794
8795 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
8796
8797 PR target/89803
8798 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
8799 _mm_mask_fpclass_sd_mask): New intrinsics.
8800 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
8801 * config/i386/i386-builtin.def
8802 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
8803 New builtins.
8804 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
8805 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
8806 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
8807 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
8808 case QI_FTYPE_V2SF_INT): Ditto.
8809 * config/i386/sse.md
8810 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
8811 Extended to insnstructions with mask operands.
8812
8813 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8814
8815 * config/rs6000/constraints.md (define_register_constraint "wp"):
8816 Delete.
8817 (define_register_constraint "wq"): Delete.
8818 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
8819 (rs6000_init_hard_regno_mode_ok): Adjust.
8820 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
8821 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
8822 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
8823 (define_mode_attr VSa): Delete.
8824 (define_mode_attr VSisa): New.
8825 (rest of file): Adjust.
8826 * doc/md.texi (Machine Constraints): Adjust.
8827
8828 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8829
8830 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
8831 (define_attr "enabled"): Handle those new isa values.
8832
8833 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8834
8835 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
8836 (define_mode_attr VSr5): Delete.
8837 (define_mode_attr VStype_sqrt): Delete.
8838 (define_mode_iterator VSX_SPDP): Delete.
8839 (define_mode_attr VS_spdp_res): Delete.
8840 (define_mode_attr VS_spdp_insn): Delete.
8841 (define_mode_attr VS_spdp_type): Delete.
8842 (*vsx_sqrt<mode>2): Adjust.
8843 (vsx_<VS_spdp_insn>): Delete, split to...
8844 (vsx_xscvdpsp): ... this. New. And...
8845 (vsx_xvcvspdp): ... this. New. And...
8846 (vsx_xvcvdpsp): ... this. New.
8847
8848 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8849
8850 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
8851 and V2DF.
8852 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
8853 (rest of file): Adjust.
8854
8855 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8856
8857 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
8858 (vsx_extract_<mode>_var): Ditto.
8859
8860 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8861
8862 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
8863 with just "wa".
8864
8865 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8866
8867 * config/rs6000/constraints.md (define_register_constraint "ww"):
8868 Delete.
8869 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
8870 (rs6000_init_hard_regno_mode_ok): Adjust.
8871 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
8872 RS6000_CONSTRAINT_ww.
8873 * config/rs6000/rs6000.md: Adjust.
8874 * config/rs6000/vsx.md: Adjust.
8875 * doc/md.texi (Machine Constraints): Adjust.
8876
8877 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8878
8879 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
8880 (define_mode_attr sd): New.
8881 (define_mode_attr s): New.
8882 (define_mode_attr Ftrad): Delete.
8883 (define_mode_attr Fvsx): Delete.
8884 (define_mode_attr Fs): Delete.
8885 (rest of file): Use the new mode attributes.
8886 * config.rs6000/vsx.md: Use the new mode attributes.
8887
8888 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8889
8890 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
8891 with just "wa".
8892
8893 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8894
8895 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
8896 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
8897 used with VSX_B, VSX_D, or VSX_F, with just "wa".
8898
8899 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
8900
8901 PR target/78263
8902 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
8903 C++ with strict ANSI requirements.
8904
8905 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
8906
8907 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
8908 computations when step is 1.
8909
8910 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8911
8912 * config/rs6000/constraints.md (define_register_constraint "wf"):
8913 Delete.
8914 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
8915 (rs6000_init_hard_regno_mode_ok): Adjust.
8916 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
8917 RS6000_CONSTRAINT_wf.
8918 * config/rs6000/rs6000.md: Adjust.
8919 * config/rs6000/vsx.md: Adjust.
8920 * doc/md.texi (Machine Constraints): Adjust.
8921
8922 2019-06-04 Andrew Pinski <apinski@marvell.com>
8923
8924 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
8925 Fix ILP32 value.
8926
8927 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8928
8929 * config/rs6000/constraints.md (define_register_constraint "wd"):
8930 Delete.
8931 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
8932 (rs6000_init_hard_regno_mode_ok): Adjust.
8933 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
8934 RS6000_CONSTRAINT_wd.
8935 * config/rs6000/rs6000.md: Adjust.
8936 * config/rs6000/vsx.md: Adjust.
8937 * doc/md.texi (Machine Constraints): Adjust.
8938
8939 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8940
8941 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
8942 (rest of file): Adjust.
8943
8944 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8945
8946 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
8947 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
8948 (vsx_splat_<mode>_reg): Adjust.
8949
8950 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8951
8952 * config/rs6000/constraints.md (define_register_constraint "ws"):
8953 Delete.
8954 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
8955 (rs6000_init_hard_regno_mode_ok): Adjust.
8956 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
8957 RS6000_CONSTRAINT_ws.
8958 * config/rs6000/rs6000.md: Adjust.
8959 * config/rs6000/vsx.md: Adjust.
8960 * doc/md.texi (Machine Constraints): Adjust.
8961
8962 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8963
8964 * config/rs6000/constraints.md (define_register_constraint "wv"):
8965 Delete.
8966 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
8967 (rs6000_init_hard_regno_mode_ok): Adjust.
8968 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
8969 RS6000_CONSTRAINT_wv.
8970 * config/rs6000/rs6000.md: Adjust.
8971 * config/rs6000/vsx.md: Adjust.
8972 * doc/md.texi (Machine Constraints): Adjust.
8973
8974 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
8975
8976 * config/rs6000/constraints.md (define_register_constraint "wi"):
8977 Delete.
8978 (define_register_constraint "wt"): Delete.
8979 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
8980 (rs6000_init_hard_regno_mode_ok): Adjust.
8981 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
8982 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
8983 * config/rs6000/rs6000.md: Adjust.
8984 * config/rs6000/vsx.md: Adjust.
8985 * doc/md.texi (Machine Constraints): Adjust.
8986
8987 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
8988
8989 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
8990 const.
8991 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
8992 default_elf_asm_output_external.
8993
8994 2019-06-04 Martin Liska <mliska@suse.cz>
8995
8996 * ipa-icf.c (INCLUDE_LIST): Remove.
8997 (sem_item_optimizer::execute): Remove call to init_wpa.
8998 * ipa-icf.h (init_wpa): Remove.
8999
9000 2019-06-04 Jakub Jelinek <jakub@redhat.com>
9001
9002 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
9003 conditional on combined for simd.
9004 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
9005 member.
9006 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
9007 constructs, don't remove lastprivate_conditional_map, but instead set
9008 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
9009 to parent construct temporaries.
9010 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
9011 like !ctx->lastprivate_conditional_map.
9012 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
9013 use up->outer context instead of up.
9014 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
9015 gimple_omp_for_combined_p.
9016 (expand_omp_for_static_nochunk): Likewise.
9017 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
9018 probably moved over into expand_omp_for_generic rather than being copied
9019 there.
9020
9021 2019-06-04 Martin Liska <mliska@suse.cz>
9022
9023 * value-prof.c (dump_histogram_value): Fix typo.
9024 (gimple_mod_subtract_transform): Likewise.
9025
9026 2019-06-04 Richard Biener <rguenther@suse.de>
9027
9028 PR middle-end/90726
9029 * tree-chrec.c (chrec_contains_symbols): Add to visited.
9030 (tree_contains_chrecs): Likewise.
9031 (chrec_contains_symbols_defined_in_loop): Move here and avoid
9032 exponential behaivor from ...
9033 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
9034 ... here.
9035 (expression_expensive_p): Avoid exponential behavior and compute
9036 expanded size, rejecting any expansion.
9037 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
9038 (idx_contains_abnormal_ssa_name_p): Likewise.
9039 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
9040 (contains_abnormal_ssa_name_p): Simplify and use
9041 walk_tree_without_duplicates.
9042
9043 2019-06-04 Richard Biener <rguenther@suse.de>
9044
9045 PR tree-optimization/90738
9046 Revert
9047 2019-06-03 Richard Biener <rguenther@suse.de>
9048
9049 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
9050 full reference tree and record in ref->ref.
9051 (vn_reference_lookup_3): Pass in original ref to
9052 ao_ref_init_from_vn_reference.
9053 (vn_reference_lookup): Likewise.
9054 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
9055 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9056 Handle non-decl bases in the original reference.
9057
9058 2019-06-04 Martin Liska <mliska@suse.cz>
9059
9060 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
9061 number of references.
9062 (sem_item_optimizer::do_congruence_step):
9063 (sem_item_optimizer::worklist_push): Dump how references
9064 a class has.
9065 (sem_item_optimizer::worklist_pop): Use heap.
9066 (sem_item_optimizer::process_cong_reduction): Likewise.
9067 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
9068
9069 2019-06-04 Martin Liska <mliska@suse.cz>
9070
9071 * ipa-icf.h (struct sem_usage_pair_hash): New.
9072 (sem_usage_pair_hash::hash): Likewise.
9073 (sem_usage_pair_hash::equal): Likewise.
9074 (struct sem_usage_hash): Likewise.
9075 * ipa-icf.c (sem_item::sem_item): Initialize
9076 referenced_by_count.
9077 (sem_item::add_reference): Register a reference
9078 in ref_map and not in target->usages.
9079 (sem_item::setup): Remove initialization of
9080 dead vectors.
9081 (sem_item::~sem_item): Remove usage of dead vectors.
9082 (sem_item::dump): Remove dump of references.
9083 (sem_item_optimizer::sem_item_optimizer): Initialize
9084 m_references.
9085 (sem_item_optimizer::read_section): Remove useless
9086 dump.
9087 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
9088 (sem_item_optimizer::build_graph): Pass m_references
9089 to ::add_reference.
9090 (sem_item_optimizer::verify_classes): Remove usage of dead
9091 vectors.
9092 (sem_item_optimizer::traverse_congruence_split): Return true
9093 when a class is split.
9094 (sem_item_optimizer::do_congruence_step_for_index): Use
9095 hash_map for look up of (sem_item *, index). That brings
9096 significant speed up.
9097 (sem_item_optimizer::do_congruence_step): Return true
9098 when a split is done.
9099 (congruence_class::is_class_used): Use referenced_by_count.
9100
9101 2019-06-04 Alan Modra <amodra@gmail.com>
9102
9103 PR target/90689
9104 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
9105 error.
9106
9107 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
9108
9109 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
9110 * config/rs6000/rs6000.c (direct_move_p): Adjust.
9111 (rs6000_secondary_reload_simple_move): Adjust.
9112 (rs6000_opt_masks): Neuter the "mfpgpr" option.
9113 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
9114 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
9115 comment.
9116 (power6x): Adjust.
9117 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
9118 (floatunssi<mode>2_lfiwzx): Adjust.
9119 (fix_trunc<mode>si2_stfiwx): Adjust.
9120 (fixuns_trunc<mode>si2_stfiwx): Adjust.
9121 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
9122 (mfpgpr): Mark as deprecated.
9123 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
9124 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
9125 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
9126
9127 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
9128
9129 * config/rs6000/constraints.md (define_register_constraint "wg"):
9130 Delete.
9131 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
9132 RS6000_CONSTRAINT_wg.
9133 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
9134 (rs6000_init_hard_regno_mode_ok): Adjust.
9135 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
9136 Delete "wg" alternatives.
9137 * doc/md.texi (Machine Constraints): Adjust.
9138
9139 2019-06-03 Alan Modra <amodra@gmail.com>
9140
9141 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
9142 (get_uncond_jump_length): Assert length less than INT_MAX and
9143 non-negative.
9144
9145 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
9146
9147 PR middle-end/64242
9148 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
9149 block.
9150 (expand_builtin_nonlocal_goto): Likewise.
9151
9152 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
9153
9154 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
9155 (aarch64_asm_output_external): Declare.
9156 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
9157 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
9158 (aarch64_asm_output_alias): New.
9159 (aarch64_asm_output_external): New.
9160 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
9161 (ASM_OUTPUT_EXTERNAL): Define.
9162
9163 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
9164 * tree-vrp.h (value_range_base::nonzero_p): New.
9165 (value_range_base::set_nonnull): Rename to...
9166 (value_range_base::set_nonzero): ...this.
9167 (value_range_base::set_null): Rename to...
9168 (value_range_base::set_zero): ...this.
9169 (value_range::set_nonnull): Remove.
9170 (value_range::set_null): Remove.
9171 * tree-vrp.c (range_is_null): Remove.
9172 (range_is_nonnull): Remove.
9173 (extract_range_from_binary_expr): Use value_range_base::*zero_p
9174 instead of range_is_*null.
9175 (extract_range_from_unary_expr): Same.
9176 (value_range_base::set_nonnull): Rename to...
9177 (value_range_base::set_nonzero): ...this.
9178 (value_range::set_nonnull): Remove.
9179 (value_range_base::set_null): Rename to...
9180 (value_range_base::set_zero): ...this.
9181 (value_range::set_null): Remove.
9182 (extract_range_from_binary_expr): Rename set_*null uses to
9183 set_*zero.
9184 (extract_range_from_unary_expr): Same.
9185 (union_helper): Same.
9186 * vr-values.c (get_value_range): Use set_*zero instead of
9187 set_*null.
9188 (vr_values::extract_range_from_binary_expr): Same.
9189 (vr_values::extract_range_basic): Same.
9190
9191 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
9192
9193 PR driver/90684
9194 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
9195
9196 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9197
9198 * config/aarch64/iterators.md (MAX_OPP): New code attr.
9199 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3):
9200 Rename to...
9201 (aarch64_<su>abd<mode>_3): ... This.
9202 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
9203
9204 2019-06-03 Richard Biener <rguenther@suse.de>
9205
9206 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
9207 full reference tree and record in ref->ref.
9208 (vn_reference_lookup_3): Pass in original ref to
9209 ao_ref_init_from_vn_reference.
9210 (vn_reference_lookup): Likewise.
9211 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
9212 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
9213 Handle non-decl bases in the original reference.
9214
9215 2019-06-03 Martin Liska <mliska@suse.cz>
9216
9217 * doc/generic.texi: Remove Java Trees.
9218
9219 2019-06-03 Martin Liska <mliska@suse.cz>
9220
9221 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
9222 returns 0 when operands are equal.
9223
9224 2019-06-03 Richard Biener <rguenther@suse.de>
9225
9226 PR tree-optimization/90716
9227 * tree-loop-distribution.c (destroy_loop): Process blocks in
9228 correct order.
9229
9230 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
9231
9232 PR target/88837
9233 * vector-builder.h (vector_builder::count_dups): New method.
9234 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
9235 Declare prototype.
9236 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
9237 (vec_init<mode><Vel>): New pattern.
9238 * config/aarch64/aarch64.c (emit_insr): New function.
9239 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
9240 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
9241 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
9242 (aarch64_sve_expand_vector_init): Define two overloaded functions.
9243
9244 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
9245
9246 PR tree-optimization/90681
9247 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
9248 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
9249 special case for SLP, but fail on non-groupped loads.
9250
9251 2019-06-03 Martin Liska <mliska@suse.cz>
9252
9253 * cfg.c (debug): Use TDF_DETAILS for debug and
9254 print edge info only once.
9255
9256 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
9257
9258 PR fortran/90539
9259 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
9260
9261 2019-06-01 Martin Sebor <msebor@redhat.com>
9262
9263 PR middle-end/90694
9264 * tree-pretty-print.c (dump_generic_node): Add parentheses.
9265
9266 2019-05-31 Jan Hubicka <jh@suse.cz>
9267
9268 * alias.c: Include ipa-utils.h.
9269 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
9270 * ipa-devirt.c (prevailing_odr_type): New.
9271 * ipa-utils.h (previaling_odr_type): Declare.
9272
9273 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
9274 Hongtao Liu <hongtao.liu@intel.com>
9275
9276 PR target/89355
9277 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
9278 NOTE_INSN_DELETED_LABEL check.
9279
9280 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
9281 Robert Suchanek <robert.suchanek@mips.com>
9282
9283 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
9284 and 3rd operands of the fmadd/fmsub/maddv builtin.
9285
9286 2019-05-31 Jakub Jelinek <jakub@redhat.com>
9287
9288 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
9289 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
9290 on OMP_SIMD if not nested inside of worksharing loop that also has
9291 lastprivate conditional clause for the same decl.
9292 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
9293 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
9294 on simd.
9295 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
9296 on simd construct.
9297 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
9298 on simd construct.
9299 (lower_lastprivate_clauses): Likewise.
9300 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
9301 calling lower_rec_input_clauses.
9302 (lower_omp_for): Likewise.
9303 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
9304 clause on simd construct.
9305 * omp-expand.c (expand_omp_simd): Initialize cond_var if
9306 OMP_CLAUSE__CONDTEMP_ clause is present.
9307
9308 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
9309 ivar and lvar.
9310
9311 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
9312
9313 PR c/43673
9314 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
9315 TEX_D32, TEX_D64 or TEX_D128.
9316
9317 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
9318
9319 * match.pd (~(vec?cst1:cst2)): New transformation.
9320
9321 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
9322
9323 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
9324 ((size_t)(A /[ex] B) CMP C): New transformation.
9325
9326 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
9327
9328 * doc/md.texi: Document define_insn_and_rewrite.
9329 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
9330 * gensupport.c (queue_elem): Update comment.
9331 (replace_operands_with_dups): New function.
9332 (gen_rewrite_sequence): Likewise.
9333 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
9334 * read-rtl.c (apply_subst_iterator): Likewise.
9335 (add_condition_to_rtx, named_rtx_p): Likewise.
9336 (rtx_reader::read_rtx_operand): Likewise.
9337 * config/aarch64/aarch64-sve.md
9338 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
9339 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
9340 define_insn_and_rewrite.
9341 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
9342 Remove separate define_split.
9343
9344 2019-05-31 Jan Hubicka <jh@suse.cz>
9345
9346 * tree-ssa-alias.c (type_has_components_p): New function.
9347 (aliasing_component_refs_p): Use it.
9348
9349 2019-05-31 Martin Liska <mliska@suse.cz>
9350
9351 * gdbhooks.py: Add const_tree to TreePrinter.
9352
9353 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
9354
9355 PR debug/86964
9356 * common.opt (feliminate-unused-debug-symbols): Enable by default.
9357 * doc/invoke.texi (Debugging Options): Document new default of
9358 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
9359
9360 2019-05-31 Jakub Jelinek <jakub@redhat.com>
9361
9362 PR tree-optimization/90671
9363 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
9364 template_block used to be empty on the first call, don't use
9365 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
9366 seq with bb_seq and set it with set_bb_seq.
9367
9368 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
9369
9370 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
9371
9372 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
9373 Michael Meissner <meissner@linux.ibm.com>
9374
9375 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
9376 (prefixed_mem_operand): Likewise.
9377 (non_prefixed_mem_operand): Likewise.
9378 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
9379 prototype.
9380 * config/rs6000/rs6000.c (print_operand_address): Handle
9381 PC-relative addresses.
9382 (mode_supports_prefixed_address_p): New function.
9383 (rs6000_prefixed_address): New function.
9384 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
9385 (SYMBOL_REF_PCREL_P): Likewise.
9386
9387 2019-05-30 Jakub Jelinek <jakub@redhat.com>
9388
9389 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
9390 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
9391 (gimplify_omp_for): If worksharing loop with lastprivate conditional
9392 is nested inside of parallel region, add _condtemp_ clause to both.
9393 * tree-nested.c (convert_nonlocal_omp_clauses,
9394 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
9395 assertion failure.
9396 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
9397 member.
9398 * omp-general.c (omp_extract_for_data): Compute it.
9399 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
9400 (lower_rec_input_clauses): Likewise.
9401 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
9402 clause is already present, just add one further one after it.
9403 (lower_lastprivate_clauses): Handle cond_ptr with array type.
9404 (lower_send_shared_vars): Clear _condtemp_ vars.
9405 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
9406 or section or taskgroup.
9407 * omp-expand.c (determine_parallel_type): Disallow combining only if
9408 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
9409 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
9410 (expand_omp_for_generic, expand_omp_for_static_nochunk,
9411 expand_omp_for_static_chunk, expand_omp_for): Use
9412 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
9413 determine if a special set of API routines are needed and if condtemp
9414 needs to be initialized, while always initialize cond_var if
9415 fd->lastprivate_conditional is non-zero.
9416
9417 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
9418 Michael Meissner <meissner@linux.ibm.com>
9419
9420 * config/rs6000/constraints.md (eI): New constraint.
9421 * config/rs6000/predicates.md (cint34_operand): New predicate.
9422 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
9423 (SIGNED_34BIT_OFFSET_P): Likewise.
9424 * doc/md.texi (eI): Document constraint.
9425
9426 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
9427
9428 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
9429
9430 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
9431 Michael Meissner <meissner@linux.ibm.com>
9432
9433 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
9434 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
9435 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
9436 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
9437 (OTHER_FUTURE_MASKS): Likewise.
9438 (POWERPC_MASKS): Likewise.
9439 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
9440 specified without -mprefixed-addr or -mcpu=future. Error if
9441 -mprefixed-addr is specified without -mcpu=future.
9442 (rs6000_opt_masks): Add entry for prefixed-addr.
9443 * rs6000.opt (mprefixed-addr): New option.
9444
9445 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
9446
9447 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
9448 cfun->is_thunk check.
9449
9450 2019-05-30 Jakub Jelinek <jakub@redhat.com>
9451
9452 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
9453 to length.
9454
9455 2019-05-30 Martin Liska <mliska@suse.cz>
9456
9457 * gdbinit.in: Fix 'ptc' command. Add trt
9458 that prints TREE_TYPE($).
9459
9460 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
9461 Alan Modra <amodra@gmail.com>
9462
9463 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
9464 calls here...
9465 (rs6000_indirect_call_template_1): ...and here.
9466 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
9467 plt16_ha, plt16_lo, mtctr indirect calls. Use
9468 rs6000_pltseq_enum.
9469 (rs6000_decl_ok_for_sibcall): New function.
9470 (rs6000_function_ok_for_sibcall): Refactor.
9471 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
9472 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
9473 when pcrel. Reorganize.
9474 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
9475 * rs6000.h (rs6000_pltseq_enum): New enum.
9476 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
9477 (*pltseq_tocsave): Use rs6000_pltseq_enum.
9478 (*pltseq_plt16_ha): Likewise.
9479 (*pltseq_plt16_lo): Likewise.
9480 (*pltseq_mtctr): Likewise.
9481 (*pltseq_plt_pcrel): New insn.
9482 (*call_local_aix): Handle @notoc calls.
9483 (*call_value_local_aix): Likewise.
9484 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
9485 (*call_value_nonlocal_aix): Likewise.
9486 (*call_indirect_pcrel): New insn.
9487 (*call_value_indirect_pcrel): Likewise.
9488
9489 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
9490
9491 * config/i386/sse.md (*save_multiple<mode>): Rename from
9492 save_multiple<mode>.
9493 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
9494 (*restore_multiple_and_return<mode>): Rename from
9495 restore_multiple_and_return<mode>.
9496 (*restore_multiple_leave_return<mode>): Rename from
9497 restore_multiple_leave_return<mode>.
9498
9499 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
9500
9501 * config.gcc (rx-*-linux*): New target.
9502 * config/rx/elf.opt: New file.
9503 * config/rx/linux.h: Likewise.
9504 * config/rx/t-linux: Likewise.
9505 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
9506 make it zero.
9507 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
9508 (ASM_APP_OFF): Likewise.
9509 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
9510 moved elsewhere.
9511
9512 2019-05-29 Jan Hubicka <jh@suse.cz>
9513
9514 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
9515 variants are pointer equivalent.
9516
9517 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
9518
9519 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
9520 * config/aarch64/aarch64-sve2.md: New file.
9521 (<u>avg<mode>3_floor): New pattern.
9522 (<u>avg<mode>3_ceil): Likewise.
9523 (*<sur>h<addsub><mode>): Likewise.
9524 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
9525 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
9526
9527 2019-05-29 Jakub Jelinek <jakub@redhat.com>
9528
9529 PR bootstrap/90543
9530 * optc-save-gen.awk: In cl_optimization_print, use correct condition
9531 for var_opt_string printing. In cl_optimization_print_diff, print
9532 (null) instead of invoking undefined behavior if one of the
9533 var_opt_string pointers is NULL and use && instead of first || in the
9534 guarding condition. For var_target_other options, handle const char *
9535 target variables similarly to const char * optimize node variables.
9536
9537 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
9538
9539 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
9540 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
9541 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
9542 Add autib1716 and pacib1716 initialisation.
9543 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
9544 for autib1716 and pacib1716.
9545 * config/aarch64/aarch64-protos.h (aarch64_key_type,
9546 aarch64_post_cfi_startproc): Define.
9547 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
9548 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
9549 aarch64_handle_pac_ret_protection): Set default sign key to A.
9550 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
9551 aarch64_expand_prologue): Add check for b-key.
9552 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
9553 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
9554 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
9555 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
9556 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
9557 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
9558 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
9559 * config/aarch64/aarch64.md (do_return): Add check for b-key.
9560 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
9561 pauth_hint_num_a with pauth_hint_num.
9562 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
9563 pauth_hint_num_a with pauth_hint_num.
9564 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
9565 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
9566 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
9567 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
9568 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
9569 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
9570 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
9571 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
9572 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
9573 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
9574 UNSPEC_AUTIA1716 respectively.
9575 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to
9576 pauth_hint_num and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP,
9577 UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
9578 * doc/invoke.texi (-mbranch-protection): Add b-key type.
9579 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
9580 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
9581
9582 2019-05-29 Jakub Jelinek <jakub@redhat.com>
9583
9584 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
9585 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
9586 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
9587 explicit clause on combined parallel into implicit shared clause.
9588 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
9589 and firstprivate if the decl has one too from combined parallel to
9590 the worksharing construct.
9591
9592 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
9593 Michael Meissner <meissner@linux.ibm.com>
9594
9595 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
9596
9597 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
9598
9599 * rtl.h (LABEL_REF_P): New #define.
9600
9601 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
9602
9603 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
9604
9605 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
9606
9607 * internal-fn.c: Marked mask_load_direct as vectorizable.
9608 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
9609 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
9610 combined even if masks different with allow_slp_p param.
9611 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
9612 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
9613 dissolve SLP-only vectorizable groups when SLP has been discarded.
9614 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
9615 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
9616 masks.
9617 (vect_build_slp_tree_1): Fixed comment typo.
9618 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
9619 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
9620 loads for SLP only.
9621 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
9622 vectorizable.
9623 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
9624
9625 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9626
9627 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
9628 Remove obsolete use_thunk reference.
9629 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
9630 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
9631 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
9632 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
9633 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
9634 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
9635 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
9636 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
9637 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
9638
9639 2019-05-28 Nathan Sidwell <nathan@acm.org>
9640
9641 * tree.h (IDENTIFIER_ANON_P): New.
9642 (anon_aggrname_format, anon_aggname_p): Don't declare.
9643 (make_anon_name): Declare.
9644 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
9645 (hash_tree): Likewise.
9646 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
9647 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
9648 (anon_cnt, make_anon_name): New.
9649
9650 2019-05-28 Martin Liska <mliska@suse.cz>
9651
9652 PR other/90315
9653 * opts-global.c (decode_options): Print help for all
9654 help_option_arguments.
9655 * opts.c (print_help): Add new argument.
9656 (common_handle_option): Remember all values into
9657 help_option_arguments.
9658 * opts.h (print_help): Add new argument.
9659
9660 2019-05-28 Martin Liska <mliska@suse.cz>
9661
9662 PR ipa/90555
9663 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
9664 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
9665 (func_checker::compare_bb): Call compare_loops.
9666
9667 2019-05-27 Jakub Jelinek <jakub@redhat.com>
9668
9669 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
9670 on sections construct.
9671 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
9672 construct.
9673 (lower_omp_sections): Handle lastprivate conditional.
9674 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
9675 lastprivate_conditional_map.
9676 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
9677
9678 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
9679 critical, taskgroup and section regions when looking for a region
9680 with non-NULL lastprivate_conditional_map.
9681
9682 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
9683
9684 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
9685 (*ix86_gen_sub3): Ditto.
9686 (*ix86_gen_sub3_carry): Ditto.
9687 (*ix86_gen_one_cmpl2): Ditto.
9688 (*ix86_gen_andsp): Ditto.
9689 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
9690 (gen_and2_insn): New static function.
9691 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
9692 Use gen_add3_insn instead of ix86_gen_add3.
9693 (ix86_expand_split_stack_prologue): Use gen_add2_insn
9694 instead of ix86_gen_add3.
9695 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
9696 Use gen_sub3_insn instead of ix86_gen_sub3.
9697 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
9698 instead of ix86_gen_add3.
9699 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
9700 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
9701 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
9702 * config/i386/i386-options.c (ix86_option_override_internal):
9703 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
9704 ix86_gen_one_cmpl2 and ix86_gen_andsp.
9705
9706 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
9707
9708 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
9709 and DW_OP_GNU_const_index opcodes.
9710
9711 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
9712
9713 * config/i386/i386.h (STACK_SIZE_MODE): Define.
9714
9715 2019-05-27 Richard Biener <rguenther@suse.de>
9716
9717 PR tree-optimization/90637
9718 * tree-ssa-sink.c (statement_sink_location): Honor the
9719 computed sink location for single-uses.
9720
9721 2019-05-27 Richard Biener <rguenther@suse.de>
9722
9723 PR middle-end/90610
9724 * match.pd (vec_perm): Avoid clobbering op0 when not generating
9725 a bit-insert.
9726
9727 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
9728
9729 * config/i386/i386.md (@sub<mode>3_carry): Rename
9730 from sub<mode>3_carry.
9731 (@leave_<mode>): New expander.
9732 (*leave): Rename from leave.
9733 (*leave_rex64): Rename from leave_rex64.
9734 (@monitorx_<mode>): Rename from monitorx_<mode>.
9735 (@clzero_<mode>): Rename from clzero_<mode>.
9736 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
9737 from sse3_monitor_<mode>.
9738 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
9739 (*ix86_gen_leave): Ditto.
9740 (*ix86_gen_monitor): Ditto.
9741 (*ix86_gen_monitorx): Ditto.
9742 (*ix86_gen_clzero): Ditto.
9743 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
9744 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
9745 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
9746 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
9747 Use gen_sse3_monitor instead of ix86_gen_monitor.
9748 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
9749 instead of ix86_gen_monitorx.
9750 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
9751 instead of ix86_gen_clzero.
9752 * config/i386/i386-options.c (ix86_option_override_internal):
9753 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
9754 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
9755
9756 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
9757
9758 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
9759 Rename from tls_global_dynamic_64_<mode>.
9760 (@tls_local_dynamic_base_64_<mode>): Rename from
9761 tls_local_dynamic_base_64_<mode>.
9762 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
9763 Remove indirect function.
9764 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
9765 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
9766 instead of ix86_gen_tls_global_dynamic_64.
9767 Use gen_tls_local_dynamic_base_64 instead of
9768 ix86_gen_tls_local_dynamic_base_64.
9769 * config/i386/i386-options.c (ix86_option_override_internal):
9770 Do not initialize ix86_gen_tls_global_dynamic_64 and
9771 ix86_gen_tls_local_dynamic_base_64.
9772
9773 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
9774
9775 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
9776 Rename from pro_epilogue_adjust_stack_<mode>_add.
9777 (@pro_epilogue_adjust_stack_sub_<mode>)
9778 Rename from pro_epilogue_adjust_stack_<mode>_sub.
9779 (@allocate_stack_worker_probe_<mode>):
9780 Rename from allocate_stack_worker_probe_<mode>.
9781 (allocate_stack): Use gen_allocate_stack_worker_probe.
9782 (probe_stack): Use gen_probe_stack_1.
9783 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
9784 (@adjust_stack_and_probe_<mode>): Rename from
9785 adjust_stack_and_probe<mode>.
9786 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
9787 (stack_protect_set): Use gen_stack_protect_set_1.
9788 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
9789 (stack_protect_test): Use gen_stack_protect_test_1.
9790 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
9791 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
9792 Remove indirect function.
9793 (*ix86_gen_adjust_stack_and_probe): Ditto.
9794 (*ix86_gen_probe_stack_range): Ditto.
9795 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
9796 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
9797 (ix86_adjust_stack_and_probe_stack_clash): Use
9798 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
9799 (ix86_adjust_stack_and_probe): Ditto.
9800 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
9801 of ix86_gen_probe_stack_range.
9802 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
9803 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
9804 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
9805 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
9806 CODE_FOR_stack_protect_test_{si,di}.
9807 * config/i386/i386-options.c (ix86_option_override_internal):
9808 Do not initialize ix86_gen_allocate_stack_worker,
9809 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
9810
9811 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
9812
9813 * doc/invoke.texi (Link Options): Many editorial changes around
9814 -flinker-output.
9815
9816 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9817
9818 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
9819 pre-Solaris 11 referene and most Studio compiler details.
9820
9821 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
9822
9823 PR target/90530
9824 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
9825 DImode to SImode in floating-point registers on 64-bit target.
9826 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
9827 register_operand in xmpyu patterns.
9828
9829 2019-05-24 Jakub Jelinek <jakub@redhat.com>
9830
9831 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
9832 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
9833 OMP_CLAUSE__REDUCTEMP_.
9834 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
9835 OMP_CLAUSE__CONDTEMP_.
9836 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
9837 * tree-pretty-print.c (dump_omp_clause): Likewise.
9838 * tree-nested.c (convert_nonlocal_omp_clauses,
9839 convert_local_omp_clauses): Likewise.
9840 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
9841 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
9842 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
9843 on OMP_FOR.
9844 (gimplify_omp_for): Warn and disable conditional modifier from
9845 lastprivate on loop iterators.
9846 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
9847 member.
9848 * omp-general.c (omp_extract_for_data): Initialize it.
9849 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
9850 member.
9851 (delete_omp_context): Delete it.
9852 (lower_lastprivate_conditional_clauses): New function.
9853 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
9854 handle lastprivate conditional clauses.
9855 (lower_reduction_clauses): Add CLIST argument, emit it into
9856 the critical section if any.
9857 (lower_omp_sections): Adjust lower_lastprivate_clauses and
9858 lower_reduction_clauses callers.
9859 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
9860 to lower_lastprivate_clauses.
9861 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
9862 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
9863 clist into a critical section if not emitted there already by
9864 lower_reduction_clauses.
9865 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
9866 callers.
9867 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
9868 conditional variables.
9869 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
9870 clause is present.
9871 (expand_omp_for_generic, expand_omp_for_static_nochunk,
9872 expand_omp_for_static_chunk): Handle lastprivate conditional.
9873 (expand_omp_for): Handle fd.lastprivate_conditional like
9874 fd.have_reductemp.
9875
9876 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
9877
9878 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
9879 kernel does not exit cleanly.
9880 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
9881
9882 2019-05-24 Jason Merrill <jason@redhat.com>
9883
9884 Revert:
9885 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
9886
9887 2019-05-24 Richard Biener <rguenther@suse.de>
9888
9889 PR testsuite/90607
9890 * tree-loop-distribution.c (struct partition): Add location
9891 member.
9892 (partition_alloc): Initialize all fields.
9893 (generate_memset_builtin): Use the location recorded in the
9894 partition for the generated call.
9895 (generate_memcpy_builtin): Likewise.
9896 (classify_partition): Record the location of a single store
9897 as location for the partition.
9898
9899 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
9900
9901 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
9902 for lo-part.
9903
9904 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
9905
9906 PR target/90588
9907 * common/config/aarch64/aarch64-common.c
9908 (aarch64_rewrite_selected_cpu): Change local temporary variable
9909 type from unsigned long to uint64_t.
9910 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
9911 aarch64_get_extension_string_for_isa_flags): Change declaration to
9912 match new definition by replacing unsigned long with uint64_t.
9913
9914 2019-05-24 Jakub Jelinek <jakub@redhat.com>
9915
9916 PR target/90568
9917 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
9918 gen_attr_type just once instead of 4-7 times. Formatting fixes.
9919 Handle stack_protect_test_<mode> codegen similarly to corresponding
9920 sub instruction.
9921
9922 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
9923
9924 * config/i386/darwin.h: Reject -mfentry*.
9925 * doc/sourcebuild.texi: Document mfentry target support.
9926
9927 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
9928
9929 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
9930 Rename to rs6000_global_entry_point_prologue_needed_p. Return
9931 false for PC-relative functions.
9932 (rs6000_output_function_prologue): Change called function name to
9933 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
9934 name,1" for PC-relative functions.
9935 (rs6000_elf_declare_function_name): Change called function name to
9936 rs6000_global_entry_point_prologue_needed_p.
9937
9938 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
9939
9940 PR target/90552
9941 * config/i386/i386.c (gen_rtx_cost):
9942 Use ix86_tune_cost instead of ix86_cost.
9943
9944 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
9945 Michael Meissner <meissner@linux.ibm.com>
9946 Segher Boessenkool <segher@kernel.crashing.org>
9947
9948 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
9949 OPTION_MASK_PCREL.
9950 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
9951 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
9952 (rs6000_fndecl_pcrel_p): Likewise.
9953 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
9954 error if -mpcrel is requested without -mcpu=future.
9955 (rs6000_opt_masks): Add entry for pcrel.
9956 (rs6000_fndecl_pcrel_p): New function.
9957 (rs6000_pcrel_p): Likewise.
9958 * config/rs6000/rs6000.opt (mpcrel): New option.
9959 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
9960
9961 2019-05-23 Jan Hubicka <jh@suse.cz>
9962 Martin Liska <mliska@suse.cz>
9963
9964 PR tree-optimization/90576
9965 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
9966 poly_int_tree_p.
9967 (aliasing_component_refs_p): Fix three way size compare conditional;
9968 give up earlier in case we can not decide on equivalence.
9969
9970 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
9971 Michael Meissner <meissner@linux.ibm.com>
9972 Segher Boessenkool <segher@kernel.crashing.org>
9973
9974 * config.gcc: Add future cpu.
9975 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
9976 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
9977 #define.
9978 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
9979 (RS6000_CPU): New instantiation for future cpu.
9980 * config/rs6000/rs6000-opts.h (enum processor_type): Add
9981 PROCESSOR_FUTURE.
9982 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
9983 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
9984 * config/rs6000/rs6000-tables.opt: Regenerate.
9985 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
9986 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
9987 (rs6000_machine_from_flags): Handle future cpu.
9988 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
9989 PROCESSOR_POWER9 for now.
9990 (rs6000_adjust_cost): Likewise.
9991 (rs6000_issue_rate): Likewise.
9992 (rs6000_register_move_cost): Likewise.
9993 (rs6000_opt_masks): Add entry for future.
9994 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
9995 (MASK_FUTURE): New #define.
9996 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
9997 * config/rs6000/rs6000.opt (mfuture): New target option.
9998 * doc/invoke.texi (mcpu): Add future cpu.
9999
10000 2019-05-23 Martin Liska <mliska@suse.cz>
10001
10002 PR c++/90587
10003 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
10004 operation points to a temporary (pointed via tree_to_wide_ref)
10005 that is out of scope after the &.
10006
10007 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
10008
10009 PR c++/90592
10010 * doc/extend.texi (Function Names): Add missing word.
10011
10012 2019-05-23 Richard Biener <rguenther@suse.de>
10013
10014 PR tree-optimization/88440
10015 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
10016 at -O[2s]+.
10017 * tree-loop-distribution.c (generate_memset_builtin): Fold the
10018 generated call.
10019 (generate_memcpy_builtin): Likewise.
10020 (distribute_loop): Pass in whether to only distribute patterns.
10021 (prepare_perfect_loop_nest): Also allow size optimization.
10022 (pass_loop_distribution::execute): When optimizing a loop
10023 nest for size allow pattern replacement.
10024
10025 2019-05-23 Jakub Jelinek <jakub@redhat.com>
10026
10027 PR target/90568
10028 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
10029 of xor.
10030
10031 2019-05-23 Martin Liska <mliska@suse.cz>
10032
10033 PR sanitizer/90570
10034 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
10035 expression similarly to gimplify_decl_expr.
10036
10037 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10038
10039 * cse.c (cse_dump_path): s/dump_file/f.
10040
10041 2019-05-22 David Malcolm <dmalcolm@redhat.com>
10042
10043 PR c++/90462
10044 * diagnostic-format-json.cc: Include "selftest.h".
10045 (json_from_expanded_location): Only add "file" key for non-NULL
10046 file strings.
10047 (json_from_location_range): Don't add "start" and "finish"
10048 children if they are UNKNOWN_LOCATION.
10049 (selftest::test_unknown_location): New selftest.
10050 (selftest::test_bad_endpoints): New selftest.
10051 (selftest::diagnostic_format_json_cc_tests): New function.
10052 * json.cc (json::object::get): New function.
10053 (selftest::test_object_get): New selftest.
10054 (selftest::json_cc_tests): Call it.
10055 * json.h (json::object::get): New decl.
10056 * selftest-run-tests.c (selftest::run_tests): Call
10057 selftest::diagnostic_format_json_cc_tests.
10058 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
10059 decl.
10060
10061 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
10062 Andrew Stubbs <amd@codesourcery.com>
10063
10064 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
10065 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
10066 (kernel): Rename to...
10067 (main_kernel): ... this.
10068 (load_image): Load _init_array and _fini_array kernels.
10069 (run): Add argument for kernel to run.
10070 (main): Run init_array_kernel before main_kernel, and
10071 fini_array_kernel after.
10072 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
10073 amdgpu_hsa_kernel attribute on functions.
10074 (gcn_disable_constructors): Delete.
10075 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
10076 * config/gcn/crt0.c (size_t): Define.
10077 (_init_array, _fini_array): New.
10078 (__preinit_array_start, __preinit_array_end,
10079 __init_array_start, __init_array_end,
10080 __fini_array_start, __fini_array_end): Declare weak references.
10081
10082 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
10083
10084 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
10085
10086 2019-05-22 Jason Merrill <jason@redhat.com>
10087
10088 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
10089
10090 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
10091
10092 PR target/88483
10093 * config/i386/i386-options.c (ix86_init_machine_status): Set
10094 stack_frame_required to true.
10095 * config/i386/i386.c (ix86_get_frame_size): New function.
10096 (ix86_frame_pointer_required): Replace get_frame_size with
10097 ix86_get_frame_size.
10098 (ix86_compute_frame_layout): Likewise.
10099 (ix86_find_max_used_stack_alignment): Changed to void. Set
10100 stack_frame_required.
10101 (ix86_finalize_stack_frame_flags): Always call
10102 ix86_find_max_used_stack_alignment. Replace get_frame_size with
10103 ix86_get_frame_size.
10104 * config/i386/i386.h (machine_function): Add stack_frame_required.
10105
10106 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
10107
10108 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
10109
10110 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
10111
10112 * common/config/aarch64/aarch64-common.c
10113 (struct aarch64_option_extension, struct processor_name_to_arch,
10114 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
10115 aarch64_contains_opt,
10116 aarch64_get_extension_string_for_isa_flags): Change type of
10117 variables storing flags to uint64_t.
10118 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
10119 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
10120 * config/aarch64/aarch64.c (struct processor,
10121 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
10122 aarch64_validate_march, aarch64_override_options,
10123 aarch64_option_print, aarch64_handle_attr_isa_flags,
10124 aarch64_declare_function_name, aarch64_start_file): Make flag
10125 variables uint64_t.
10126 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
10127 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
10128 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
10129 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
10130 * config/aarch64/driver-aarch64.c
10131 (struct aarch64_arch_extension, struct aarch64_core_data,
10132 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
10133 flag variables uint64_t.
10134 * doc/invoke.texi: Add documentation for new arguments.
10135
10136 2019-05-22 Richard Biener <rguenther@suse.de>
10137
10138 * alias.c (ao_ref_from_mem): Move stack-slot sharing
10139 rewrite ...
10140 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
10141
10142 2019-05-22 Martin Liska <mliska@suse.cz>
10143
10144 PR lto/90500
10145 * doc/extend.texi: Document the change.
10146
10147 2019-05-22 Richard Biener <rguenther@suse.de>
10148
10149 PR tree-optimization/90450
10150 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
10151 (mem_ref_hasher::equal): Check it.
10152 (mem_ref_alloc): Initialize it.
10153 (gather_mem_refs_stmt): Set it.
10154
10155 2019-05-22 Richard Biener <rguenther@suse.de>
10156
10157 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
10158 Add ABS_EXPR.
10159 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
10160 as ABSU_EXPR.
10161
10162 2019-05-22 Alan Modra <amodra@gmail.com>
10163
10164 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
10165 (ASM_CPU_SPEC): Conditionally add -many.
10166 * config/rs6000/rs6000.c (rs6000_machine): New static var.
10167 (rs6000_machine_from_flags, emit_asm_machine): New functions..
10168 (rs6000_file_start): ..extracted from here, and modified to
10169 test all ISA bits.
10170 (rs6000_output_function_prologue): Emit .machine as necessary.
10171
10172 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
10173
10174 PR middle-end/90553
10175 * ira-lives.c (process_bb_node_lives): Consider defs
10176 for a call insn to be die before the call, not after.
10177
10178 * function.c (assign_parm_setup_block): Raise alignment of
10179 stacked parameter only for STRICT_ALIGNMENT targets.
10180
10181 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10182
10183 * config/rs6000/constraints.md (define_register_constraint "wz"):
10184 Delete.
10185 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10186 RS6000_CONSTRAINT_wz.
10187 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10188 (rs6000_init_hard_regno_mode_ok): Adjust.
10189 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
10190 * doc/md.texi (Machine Constraints): Adjust.
10191
10192 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10193
10194 * config/rs6000/constraints.md (define_register_constraint "wl"):
10195 Delete.
10196 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10197 RS6000_CONSTRAINT_wl.
10198 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10199 (rs6000_init_hard_regno_mode_ok): Adjust.
10200 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
10201 * doc/md.texi (Machine Constraints): Adjust.
10202
10203 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10204
10205 * config/rs6000/constraints.md (define_register_constraint "wm"):
10206 Delete.
10207 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10208 RS6000_CONSTRAINT_wm.
10209 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10210 (rs6000_init_hard_regno_mode_ok): Adjust.
10211 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
10212 * doc/md.texi (Machine Constraints): Adjust.
10213
10214 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10215
10216 * config/rs6000/constraints.md (define_register_constraint "wk"):
10217 Delete.
10218 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10219 RS6000_CONSTRAINT_wk.
10220 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10221 (rs6000_init_hard_regno_mode_ok): Adjust.
10222 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
10223 * doc/md.texi (Machine Constraints): Adjust.
10224
10225 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10226
10227 * config/rs6000/constraints.md (define_register_constraint "wj"):
10228 Delete.
10229 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10230 RS6000_CONSTRAINT_wj.
10231 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10232 (rs6000_init_hard_regno_mode_ok): Adjust.
10233 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
10234 (VS_64dm): Delete.
10235 * config/rs6000/vsx.md: Ditto.
10236 * doc/md.texi (Machine Constraints): Adjust.
10237
10238 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
10239
10240 * config/rs6000/constraints.md (define_register_constraint "wh"):
10241 Delete.
10242 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10243 RS6000_CONSTRAINT_wh.
10244 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10245 (rs6000_init_hard_regno_mode_ok): Adjust.
10246 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
10247 * doc/md.texi (Machine Constraints): Adjust.
10248
10249 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
10250
10251 PR target/90547
10252 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
10253 Avoid calling gen_lowpart with CONST operand.
10254
10255 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
10256
10257 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
10258 field template_last_to_copy.
10259 (ssa_create_duplicates): Set it, and use it. Attempt to
10260 preserve more debug stmts.
10261
10262 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
10263
10264 * config/i386/sse.md (VF1_AVX2): New mode iterator.
10265 (signbit<mode>2): New expander
10266
10267 2019-05-21 James Clarke <jrtc27@jrtc27.com>
10268
10269 PR bootstrap/87338
10270 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
10271 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
10272
10273 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
10274
10275 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
10276 %ebx and %ecx bafore calling cpuid with leaf 1 or
10277 non-constant leaf argument.
10278
10279 2019-05-21 Alan Modra <amodra@gmail.com>
10280
10281 PR target/90545
10282 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
10283 power9 direct move cost.
10284
10285 2019-05-21 Richard Biener <rguenther@suse.de>
10286
10287 PR middle-end/90510
10288 * fold-const.c (fold_read_from_vector): New function.
10289 * fold-const.h (fold_read_from_vector): Declare.
10290 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
10291 single-element insert permutations. Canonicalize selector
10292 further and fix issue with last commit.
10293
10294 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
10295
10296 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
10297 parameter with default value false to declaration.
10298 (split_edges_for_insertion): New inline function. Wrapper for
10299 split_critical_edges with for_edge_insertion_p = true.
10300 * tree-cfg.c (split_critical_edges): Don't split non-critical
10301 edges if for_edge_insertion_p is false. Fix whitespace.
10302 * tree-ssa-pre.c (pass_pre::execute): Call
10303 split_edges_for_insertion instead of split_critical_edges.
10304 * tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
10305 * tree-ssa-sink.c (pass_sink_code::execute): Ditto.
10306 (pass_data_sink_code): Update function name in the comment.
10307
10308 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
10309
10310 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
10311 around is_value_included_in that knows how to handle BIT_AND_EXPR.
10312 (is_pred_expr_subset_of): Use the new function. Handle more cases where
10313 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
10314 positives.
10315
10316 2019-05-21 Martin Liska <mliska@suse.cz>
10317
10318 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
10319 an extra newline.
10320 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
10321 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
10322 vec_lvsr.
10323 * config/rs6000/rs6000.c (rs6000_option_override_internal):
10324 Quote a C type.
10325 (rs6000_function_arg): Likewise.
10326 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
10327 (rs6000_expand_ternop_builtin): Use interval syntax.
10328 (get_element_number): Likewise.
10329 (altivec_expand_builtin): Likewise.
10330 (rs6000_get_function_versions_dispatcher): Quote target_clones.
10331
10332 2019-05-20 Jakub Jelinek <jakub@redhat.com>
10333
10334 PR c++/59813
10335 PR target/90418
10336 * function.h (struct function): Add calls_eh_return member.
10337 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
10338 gimplifying __builtin_eh_return call.
10339 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
10340 to cfun.
10341 (expand_call_inline): Or in src_cfun->calls_eh_return into
10342 dst_cfun->calls_eh_return.
10343 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
10344 cfun->calls_eh_return.
10345 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
10346 * lto-streamer-out.c (output_struct_function_base): Write
10347 calls_eh_return.
10348
10349 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
10350
10351 PR rtl-optimization/43147
10352 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
10353 IX86_BUILTIN_SHUFPD.
10354
10355 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
10356
10357 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
10358 (refs_may_alias_p_1): ... here; update stats.
10359 (refs_may_alias_p): Do not update stats here.
10360
10361 2019-05-20 Richard Biener <rguenther@suse.de>
10362
10363 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
10364 doesn't produce pointers.
10365 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
10366 the first operand points to.
10367
10368 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
10369
10370 * tree-ssa-alias.c (compare_sizes): New function.
10371 (sompare_type_sizes): New function
10372 (aliasing_component_refs_p): Use it.
10373 (indirect_ref_may_alias_decl_p): Likewise.
10374
10375 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10376
10377 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
10378
10379 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10380
10381 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
10382 (LIBLSAN_EARLY_SPEC): Likewise.
10383 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
10384
10385 2019-05-20 Martin Liska <mliska@suse.cz>
10386
10387 * config/i386/i386.c (ix86_libc_has_fast_function):
10388 Add ATTRIBUTE_UNUSED for the argument.
10389
10390 2019-05-20 Richard Biener <rguenther@suse.de>
10391
10392 * gimple-match-head.c: Include vec-perm-indices.h.
10393 * generic-match-head.c: Likewise.
10394 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
10395 is included.
10396 * fold-const.c (fold_vec_perm): Export.
10397 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
10398 (match.pd): ...here.
10399
10400 2019-05-20 Jakub Jelinek <jakub@redhat.com>
10401
10402 * cfgloop.h (struct loop): Add simdlen member.
10403 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
10404 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
10405 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
10406 as new argument to autovectorize_vector_sizes target hook. If
10407 loop->simdlen, pick up vector size where the vectorization factor
10408 is equal to loop->simd, and if there is none, fall back to the first
10409 successful one.
10410 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
10411 caller.
10412 * omp-low.c (omp_clause_aligned_alignment): Likewise.
10413 * omp-general.c (omp_max_vf): Likewise.
10414 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
10415 * tree-vect-slp.c (vect_slp_bb): Likewise.
10416 * target.def (autovectorize_vector_sizes): Add ALL argument and
10417 document it.
10418 * doc/tm.texi: Adjust documentation.
10419 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
10420 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
10421 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
10422 bool argument.
10423 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
10424 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
10425 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
10426 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
10427 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
10428 preferred vector size is not 512-bit or 256-bit, just put those
10429 unpreferred ones last.
10430
10431 2019-05-20 Martin Liska <mliska@suse.cz>
10432
10433 * targhooks.c (default_libc_has_fast_function): New function.
10434 * targhooks.h (default_libc_has_fast_function): Likewise.
10435
10436 2019-05-20 Martin Liska <mliska@suse.cz>
10437
10438 PR middle-end/90263
10439 * builtins.c (expand_builtin_memory_copy_args): When having a
10440 target with fast mempcpy implementation do now use memcpy.
10441 * config/i386/i386.c (ix86_libc_has_fast_function): New.
10442 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
10443 * doc/tm.texi: Likewise.
10444 * doc/tm.texi.in: Likewise.
10445 * target.def:
10446 * expr.c (emit_block_move_hints): Add 2 new arguments.
10447 * expr.h (emit_block_move_hints): Bail out when libcall
10448 to memcpy would be used.
10449
10450 2019-05-20 Martin Liska <mliska@suse.cz>
10451
10452 * profile-count.c: Add vertical spacing in order
10453 to separate functions.
10454 * profile-count.h: Likewise.
10455
10456 2019-05-20 Martin Liska <mliska@suse.cz>
10457
10458 * profile-count.h: Do not use full qualified
10459 names if possible.
10460 * profile-count.c (profile_count::to_frequency): Likewise.
10461
10462 2019-05-20 Martin Liska <mliska@suse.cz>
10463
10464 * profile-count.h (enum profile_quality): Use capital letters
10465 for enum value names. Use the adjusted names.
10466 * profile-count.c: Use the adjusted names.
10467
10468 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10469
10470 * config/rs6000/constraints.md (define_register_constraint "wH"):
10471 Delete.
10472 (define_register_constraint "wI"): Delete.
10473 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10474 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
10475 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10476 (rs6000_init_hard_regno_mode_ok): Adjust.
10477 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
10478 resp. "d", or with "wa" as appropriate, all with "p8v".
10479 * config/rs6000/vsx.md: Ditto.
10480 * doc/md.texi (Machine Constraints): Adjust.
10481
10482 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10483
10484 * config/rs6000/constraints.md (define_register_constraint "wy"):
10485 Delete.
10486 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10487 RS6000_CONSTRAINT_wy.
10488 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10489 (rs6000_init_hard_regno_mode_ok): Adjust.
10490 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
10491 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
10492 (define_mode_attr Fisa): New.
10493 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
10494 * doc/md.texi (Machine Constraints): Adjust.
10495
10496 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10497
10498 * config/rs6000/constraints.md (define_register_constraint "wu"):
10499 Delete.
10500 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10501 RS6000_CONSTRAINT_wu.
10502 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10503 (rs6000_init_hard_regno_mode_ok): Adjust.
10504 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
10505 both with "p8v".
10506 (define_mode_attr Fa): Delete.
10507 * config/rs6000/vsx.md: Ditto.
10508 * doc/md.texi (Machine Constraints): Adjust.
10509
10510 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10511
10512 * config/rs6000/constraints.md (define_register_constraint "wJ"):
10513 Delete.
10514 (define_register_constraint "wK"): Delete.
10515 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10516 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
10517 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10518 (rs6000_init_hard_regno_mode_ok): Adjust.
10519 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
10520 Replace "wK" constraint by "wH" with "p9v".
10521 * config/rs6000/vsx.md: Ditto.
10522 * doc/md.texi (Machine Constraints): Adjust.
10523
10524 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10525
10526 * config/rs6000/constraints.md (define_register_constraint "wb"):
10527 Delete.
10528 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10529 RS6000_CONSTRAINT_wb.
10530 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10531 (rs6000_init_hard_regno_mode_ok): Adjust.
10532 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
10533 * config/rs6000/vsx.md: Ditto.
10534 * doc/md.texi (Machine Constraints): Adjust.
10535
10536 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
10537
10538 * config/rs6000/constraints.md (define_register_constraint "wo"):
10539 Delete.
10540 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
10541 RS6000_CONSTRAINT_wo.
10542 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
10543 (rs6000_init_hard_regno_mode_ok): Adjust.
10544 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
10545 * config/rs6000/altivec.md: Ditto.
10546 * doc/md.texi (Machine Constraints): Adjust.
10547
10548 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
10549
10550 * config/darwin-c.c (darwin_register_objc_includes): Do not
10551 prepend the sysroot when building gnu-runtime header search
10552 paths.
10553
10554 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
10555
10556 * config/darwin.c (darwin_file_end): Use switch_to_section ()
10557 instead of direct output of the asm.
10558
10559 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
10560
10561 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
10562 argument to be type bool (was int before).
10563 (rs6000_emit_epilogue): Simplify some code. Declare some variables
10564 at first use. Use type bool for some variables. Fix a theoretical
10565 eh_return bug for svr4.
10566
10567 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
10568
10569 * config/rs6000/rs6000.md (isa): New attribute.
10570 (enabled): New attribute.
10571
10572 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
10573
10574 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
10575 assemble_start_function and assemble_end_function.
10576
10577 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
10578
10579 PR middle-end/89433
10580 * omp-general.c (oacc_verify_routine_clauses): Change formal
10581 parameters. Add checking if already marked with an OpenACC
10582 'routine' directive. Adjust all users.
10583
10584 PR middle-end/89433
10585 * omp-general.c (oacc_build_routine_dims): Move some of its
10586 processing into...
10587 (oacc_verify_routine_clauses): ... this new function.
10588 * omp-general.h (oacc_verify_routine_clauses): New prototype.
10589
10590 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
10591
10592 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
10593 formating of picbase labels to match other ports.
10594
10595 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
10596
10597 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
10598 in the generated code.
10599
10600 2019-05-16 Martin Sebor <msebor@redhat.com>
10601
10602 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
10603 identifiers, keywords, operators, and types in diagnostics. Correct
10604 quoting, spelling, and sentence capitalization issues.
10605 (expand_builtin_atomic_is_lock_free): Same.
10606 (fold_builtin_next_arg): Same.
10607 * cfgexpand.c (expand_one_var): Same.
10608 (tree_conflicts_with_clobbers_p): Same.
10609 (expand_asm_stmt): Same.
10610 (verify_loop_structure): Same.
10611 * cgraphunit.c (process_function_and_variable_attributes): Same.
10612 * collect-utils.c (collect_execute): Same.
10613 * collect2.c (maybe_run_lto_and_relink): Same.
10614 (is_lto_object_file): Same.
10615 (scan_prog_file): Same.
10616 * convert.c (convert_to_real_1): Same.
10617 * dwarf2out.c (dwarf2out_begin_prologue): Same.
10618 * except.c (verify_eh_tree): Same.
10619 * gcc.c (execute): Same.
10620 (eval_spec_function): Same.
10621 (run_attempt): Same.
10622 (driver::set_up_specs): Same.
10623 (compare_debug_auxbase_opt_spec_function): Same.
10624 * gcov-tool.c (unlink_gcda_file): Same.
10625 (do_merge): Same.
10626 (do_rewrite): Same.
10627 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
10628 * gimplify.c (gimplify_asm_expr): Same.
10629 (gimplify_adjust_omp_clauses): Same.
10630 * hsa-gen.c (gen_hsa_addr_insns): Same.
10631 (gen_hsa_insns_for_load): Same.
10632 (gen_hsa_cmp_insn_from_gimple): Same.
10633 (gen_hsa_insns_for_operation_assignment): Same.
10634 (gen_get_level): Same.
10635 (gen_hsa_alloca): Same.
10636 (omp_simple_builtin::generate): Same.
10637 (gen_hsa_atomic_for_builtin): Same.
10638 (gen_hsa_insns_for_call): Same.
10639 * input.c (dump_location_info): Same.
10640 * ipa-devirt.c (compare_virtual_tables): Same.
10641 * ira.c (ira_setup_eliminable_regset): Same.
10642 * lra-assigns.c (lra_assign): Same.
10643 * lra-constraints.c (lra_constraints): Same.
10644 * lto-streamer-in.c (lto_input_mode_table): Same.
10645 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
10646 (merge_and_complain): Same.
10647 (compile_offload_image): Same.
10648 (compile_images_for_offload_targets): Same.
10649 (debug_objcopy): Same.
10650 (run_gcc): Same.
10651 (main): Same.
10652 * opts.c (print_specific_help): Same.
10653 (parse_no_sanitize_attribute): Same.
10654 (print_help): Same.
10655 (handle_param): Same.
10656 * plugin.c (add_new_plugin): Same.
10657 (parse_plugin_arg_opt): Same.
10658 (try_init_one_plugin): Same.
10659 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
10660 operators, and types in diagnostics. Correct quoting and spelling
10661 issues.
10662 * read-rtl-function.c (parse_edge_flag_token): Same.
10663 (function_reader::parse_enum_value): Same.
10664 * reg-stack.c (check_asm_stack_operands): Same.
10665 * regcprop.c (validate_value_data): Same.
10666 * sched-rgn.c (make_pass_sched_fusion): Same.
10667 * stmt.c (check_unique_operand_names): Same.
10668 * targhooks.c (default_target_option_pragma_parse): Same.
10669 * tlink.c (recompile_files): Same.
10670 * toplev.c (process_options): Same.
10671 (do_compile): Same.
10672 * trans-mem.c (diagnose_tm_1): Same.
10673 (ipa_tm_scan_irr_block): Same.
10674 (ipa_tm_diagnose_transaction): Same.
10675 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
10676 format a tree code name in a diagnostic.
10677 (verify_types_in_gimple_min_lval): Same.
10678 (verify_types_in_gimple_reference): Same.
10679 (verify_gimple_call): Same.
10680 (verify_gimple_assign_unary): Same.
10681 (verify_gimple_assign_binary): Same.
10682 (verify_gimple_assign_ternary): Same.
10683 (verify_gimple_assign_single): Same.
10684 (verify_gimple_switch): Same.
10685 (verify_gimple_label): Same.
10686 (verify_gimple_phi): Same.
10687 (verify_gimple_in_seq): Same.
10688 (verify_eh_throw_stmt_node): Same.
10689 (collect_subblocks): Same.
10690 (gimple_verify_flow_info): Same.
10691 (do_warn_unused_result): Same.
10692 * tree-inline.c (expand_call_inline): Same.
10693 * tree-into-ssa.c (update_ssa): Same.
10694 * tree.c (tree_int_cst_elt_check_failed): Same.
10695 (tree_vec_elt_check_failed): Same.
10696 (omp_clause_operand_check_failed): Same.
10697 (verify_type_variant): Same.
10698 (verify_type): Same.
10699 * value-prof.c (verify_histograms): Same.
10700 * varasm.c (assemble_start_function): Same.
10701
10702 2019-05-16 Martin Sebor <msebor@redhat.com>
10703
10704 * config/i386/i386-expand.c (get_element_number): Quote keywords
10705 and other internal names in diagnostics. Adjust other diagnostic
10706 formatting issues noted by -Wformat-diag.
10707 * config/i386/i386-features.c
10708 (ix86_mangle_function_version_assembler_name): Same.
10709 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
10710 * config/i386/i386.c (ix86_function_type_abi): Same.
10711 (ix86_function_ms_hook_prologue): Same.
10712 (classify_argument): Same.
10713 (ix86_expand_prologue): Same.
10714 (ix86_md_asm_adjust): Same.
10715 (ix86_memmodel_check): Same.
10716
10717 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
10718
10719 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
10720 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
10721 and fpxx modes.
10722
10723 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
10724
10725 PR target/90497
10726 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
10727 intrinsics without SSE/SSE2/SSSE3.
10728 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
10729 check.
10730 (*mmx_uavgv8qi3): Likewise.
10731
10732 2019-05-17 Richard Biener <rguenther@suse.de>
10733
10734 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
10735 VEC_PERM_EXPR as __VEC_PERM with -gimple.
10736
10737 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
10738
10739 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
10740 vec_sldw insn pattern.
10741
10742 2019-05-17 Richard Biener <rguenther@suse.de>
10743
10744 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
10745
10746 2019-05-17 Martin Liska <mliska@suse.cz>
10747
10748 PR driver/90496
10749 * toplev.c (output_stack_usage): With LTO and sanitizer it
10750 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
10751 has no file location.
10752
10753 2019-05-16 Jakub Jelinek <jakub@redhat.com>
10754
10755 PR c++/90484
10756 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
10757 sz0 is equal to sz1, instead return false in that case.
10758
10759 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
10760 has non-constant expression, force sctx.lane and use two
10761 argument IFN_GOMP_SIMD_LANE instead of single argument.
10762 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
10763 two argument IFN_GOMP_SIMD_LANE without lhs.
10764 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
10765 member.
10766 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
10767 Define.
10768 (LOOP_REQUIRES_VERSIONING): Or in
10769 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
10770 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
10771 simd_if_cond.
10772 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
10773 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
10774 from simd if clause if needed.
10775
10776 2019-05-16 Richard Biener <rguenther@suse.de>
10777
10778 * tree-affine.c (expr_to_aff_combination): New function split
10779 out from...
10780 (tree_to_aff_combination): ... here.
10781 (aff_combination_expand): Avoid building a GENERIC tree.
10782
10783 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
10784
10785 * cgraphunit.c (cgraph_node::expand_thunk): Remove
10786 assemble_start_function and assemble_end_function calls.
10787 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
10788 assemble_start_function and assemble_end_function.
10789 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
10790 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
10791 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
10792 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
10793 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
10794 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
10795 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
10796 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
10797 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
10798 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
10799 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
10800 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
10801 Likewise.
10802 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
10803 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
10804 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
10805 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
10806 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
10807 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
10808 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
10809 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
10810 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
10811 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
10812 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
10813 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
10814 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
10815 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
10816 Likewise.
10817 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
10818 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
10819 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
10820
10821 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
10822
10823 * tree-ssa-alias.c (alias_stats): Add
10824 aliasing_component_refs_p_may_alias and
10825 aliasing_component_refs_p_no_alias.
10826 (dump_alias_stats): Print aliasing_component_refs_p stats.
10827 (aliasing_component_refs_p): Update stats.
10828
10829 2019-05-16 Martin Liska <mliska@suse.cz>
10830
10831 PR lto/90500
10832 * multiple_target.c (expand_target_clones): Do not allow
10833 target_clones being used with a symbol that is an alias.
10834
10835 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
10836
10837 PR tree-optimization/90394
10838 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
10839 positives rather than ICE for cases where (code2 == NE_EXPR
10840 && code1 == BIT_AND_EXPR).
10841
10842 2019-05-16 Jakub Jelinek <jakub@redhat.com>
10843
10844 PR fortran/90329
10845 * tree-core.h (struct tree_decl_common): Document
10846 decl_nonshareable_flag for PARM_DECLs.
10847 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
10848 * calls.c (expand_call): Don't try tail call if caller
10849 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
10850 passed on the stack and callee needs to pass any arguments on the
10851 stack.
10852 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
10853 else if instead of series of mutually exclusive ifs. Handle
10854 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
10855 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
10856
10857 * lto-streamer.h (LTO_major_version): Bump to 9.
10858
10859 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
10860
10861 PR tree-optimization/90106
10862 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
10863 new parameter as new internal function call, also move it to new
10864 basic block.
10865 (use_internal_fn): Pass internal function call to
10866 shrink_wrap_one_built_in_call_with_conds.
10867
10868 2019-05-15 Jakub Jelinek <jakub@redhat.com>
10869
10870 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
10871 max_vf to 1.
10872 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
10873 safelen_int and set loop->dont_vectorize.
10874
10875 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10876
10877 PR target/89021
10878 * config/i386/i386-builtin.def: Enable MMX intrinsics with
10879 SSE/SSE2/SSSE3.
10880 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
10881 Likewise.
10882 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
10883 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
10884 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
10885 is defined.
10886
10887 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10888
10889 PR target/89021
10890 * config/i386/mmx.md (*vec_dupv2sf): Changed to
10891 define_insn_and_split to support SSE emulation.
10892 (*vec_extractv2sf_0): Likewise.
10893 (*vec_extractv2sf_1): Likewise.
10894 (*vec_extractv2si_0): Likewise.
10895 (*vec_extractv2si_1): Likewise.
10896 (*vec_extractv2si_zext_mem): Likewise.
10897 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
10898 (vec_extractv2sf_1 splitter): Likewise.
10899 (vec_extractv2sfsf): Likewise.
10900 (vec_setv2si): Likewise.
10901 (vec_extractv2si_1 splitter): Likewise.
10902 (vec_extractv2sisi): Likewise.
10903 (vec_setv4hi): Likewise.
10904 (vec_extractv4hihi): Likewise.
10905 (vec_setv8qi): Likewise.
10906 (vec_extractv8qiqi): Likewise.
10907 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
10908 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
10909 (vec_extractv2sisi): Likewise.
10910 (vec_extractv4hihi): Likewise.
10911 (vec_extractv8qiqi): Likewise.
10912 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
10913 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
10914 (vec_initv2sisi): Likewise.
10915 (vec_initv4hihi): Likewise.
10916 (vec_initv8qiqi): Likewise.
10917 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
10918 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
10919 (vec_setv4hi): Likewise.
10920 (vec_setv8qi): Likewise.
10921
10922 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10923
10924 PR target/89021
10925 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
10926 TARGET_MMX_WITH_SSE.
10927 (MMXMODE:*mov<mode>_internal): Likewise.
10928 (MMXMODE:movmisalign<mode>): Likewise.
10929
10930 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
10931
10932 PR target/89021
10933 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
10934 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
10935 (sse2_cvtpd2pi): Ditto.
10936 (sse2_cvttpd2pi): Ditto.
10937 (*vec_concatv2sf_sse4_1): Ditto.
10938 (*vec_concatv2sf_sse): Ditto.
10939 (*vec_concatv2si_sse4_1): Ditto.
10940 (*vec_concatv2si): Ditto.
10941 (*vec_concatv4si_0): Ditto.
10942 (*vec_concatv2di_0): Ditto.
10943
10944 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10945
10946 PR target/89021
10947 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
10948
10949 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10950
10951 PR target/89021
10952 * config/i386/sse.md (ssse3_palignrdi): Changed to
10953 define_insn_and_split to support SSE emulation.
10954
10955 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10956
10957 PR target/89021
10958 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
10959
10960 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10961
10962 PR target/89021
10963 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
10964 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
10965 SSE emulation.
10966
10967 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10968
10969 PR target/89021
10970 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
10971 or TARGET_MMX_WITH_SSE.
10972 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
10973
10974 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10975
10976 PR target/89021
10977 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
10978
10979 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10980
10981 PR target/89021
10982 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
10983 Changed to define_insn_and_split to support SSE emulation.
10984
10985 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10986
10987 PR target/89021
10988 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
10989 Changed to define_insn_and_split to support SSE emulation.
10990
10991 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10992
10993 PR target/89021
10994 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
10995 (*mmx_<emms>): This.
10996 (mmx_<emms>): New expander.
10997
10998 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
10999
11000 PR target/89021
11001 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
11002 support.
11003 (*sse2_umulv1siv1di3): Add SSE2 emulation.
11004
11005 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11006
11007 PR target/89021
11008 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
11009
11010 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11011
11012 PR target/89021
11013 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
11014
11015 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11016
11017 PR target/89021
11018 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
11019 TARGET_MMX_WITH_SSE.
11020 (*mmx_uavgv4hi3): Add SSE emulation.
11021
11022 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11023
11024 PR target/89021
11025 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
11026 and TARGET_MMX_WITH_SSE.
11027 (*mmx_uavgv8qi3): Add SSE emulation.
11028
11029 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11030
11031 PR target/89021
11032 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
11033 maskmovdqu for __MMX_WITH_SSE__.
11034
11035 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11036
11037 PR target/89021
11038 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
11039 TARGET_MMX and TARGET_MMX_WITH_SSE.
11040 (*mmx_umulv4hi3_highpart): Add SSE emulation.
11041
11042 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11043
11044 PR target/89021
11045 * config/i386/mmx.md (mmx_pmovmskb): Changed to
11046 define_insn_and_split to support SSE emulation.
11047
11048 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11049
11050 PR target/89021
11051 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
11052 and TARGET_MMX_WITH_SSE.
11053 (mmx_<code>v8qi3): Likewise.
11054 (smaxmin:<code>v4hi3): New.
11055 (umaxmin:<code>v8qi3): Likewise.
11056 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
11057 (umaxmin:*mmx_<code>v8qi3): Likewise.
11058
11059 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11060
11061 PR target/89021
11062 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
11063 TARGET_MMX_WITH_SSE.
11064 (*mmx_pinsrw): Add SSE emulation.
11065
11066 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11067
11068 PR target/89021
11069 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
11070
11071 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11072
11073 PR target/89021
11074 * config/i386/sse.md (sse_cvtpi2ps): Changed to
11075 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
11076 SSE emulation.
11077
11078 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11079
11080 PR target/89021
11081 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
11082 (sse_cvttps2pi): Likewise.
11083
11084 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11085
11086 PR target/89021
11087 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
11088 TARGET_MMX_WITH_SSE.
11089 (mmx_pshufw_1): Add SSE emulation.
11090 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
11091 TARGET_MMX_WITH_SSE to support SSE emulation.
11092
11093 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11094
11095 PR target/89021
11096 * config/i386/constraints.md (Yw): New constraint.
11097 * config/i386/mmx.md (*vec_dupv2si): Changed to
11098 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
11099 support SSE emulation.
11100
11101 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11102
11103 PR target/89021
11104 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
11105 TARGET_MMX_WITH_SSE.
11106 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
11107 support.
11108 (mmx_gt<mode>3): Likewise.
11109
11110 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11111
11112 PR target/89021
11113 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
11114 TARGET_MMX_WITH_SSE. Add SSE support.
11115
11116 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11117
11118 PR target/89021
11119 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
11120 TARGET_MMX_WITH_SSE.
11121 (any_logic:<code><mode>3): New.
11122 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
11123 Add SSE support.
11124
11125 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11126
11127 PR target/89021
11128 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
11129 TARGET_MMX_WITH_SSE. Add SSE emulation.
11130 (mmx_<shift_insn><mode>3): Likewise.
11131 (ashr<mode>3): New.
11132 (<shift_insn><mode>3): Likewise.
11133
11134 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11135
11136 PR target/89021
11137 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
11138 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
11139
11140 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11141
11142 PR target/89021
11143 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
11144 TARGET_MMX_WITH_SSE.
11145 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
11146 SSE support.
11147
11148 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11149
11150 PR target/89021
11151 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
11152 TARGET_MMX_WITH_SSE.
11153 (mulv4hi3): New.
11154 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
11155 support.
11156
11157 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11158
11159 PR target/89021
11160 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
11161 (plusminus:mmx_<plusminus_insn><mode>3): Check
11162 TARGET_MMX_WITH_SSE.
11163 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
11164 (<plusminus_insn><mode>3): New.
11165 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
11166 (*mmx_<plusminus_insn><mode>3): Likewise.
11167
11168 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11169
11170 PR target/89021
11171 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
11172 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
11173 prototype.
11174 * config/i386/mmx.m (mmx_punpckhbw): Changed to
11175 define_insn_and_split to support SSE emulation.
11176 (mmx_punpcklbw): Likewise.
11177 (mmx_punpckhwd): Likewise.
11178 (mmx_punpcklwd): Likewise.
11179 (mmx_punpckhdq): Likewise.
11180 (mmx_punpckldq): Likewise.
11181
11182 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11183 Uros Bizjak <ubizjak@gmail.com>
11184
11185 PR target/89021
11186 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
11187 New function.
11188 (ix86_split_mmx_pack): Likewise.
11189 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
11190 New prototype.
11191 (ix86_split_mmx_pack): Likewise.
11192 * config/i386/i386.md (mmx_isa): New.
11193 (enabled): Also check mmx_isa.
11194 * config/i386/mmx.md (any_s_truncate): New code iterator.
11195 (s_trunsuffix): New code attr.
11196 (mmx_packsswb): Removed.
11197 (mmx_packssdw): Likewise.
11198 (mmx_packuswb): Likewise.
11199 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
11200 MMX packsswb/packuswb with SSE2.
11201 (mmx_packssdw): Likewise.
11202 * config/i386/predicates.md (register_mmxmem_operand): New.
11203
11204 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
11205
11206 PR target/89021
11207 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11208 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
11209 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
11210 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
11211 (ix86_vector_mode_supported_p): Likewise.
11212 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
11213
11214 2019-05-15 Martin Liska <mliska@suse.cz>
11215
11216 PR middle-end/90478
11217 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
11218 Check for overflow.
11219
11220 2019-05-15 Richard Biener <rguenther@suse.de>
11221
11222 * tree-into-ssa.c (pass_build_ssa::execute): Run
11223 update_address_taken before going into SSA.
11224
11225 2019-05-15 Richard Biener <rguenther@suse.de>
11226
11227 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
11228 as __BIT_FIELD_REF with type with -gimple.
11229
11230 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
11231
11232 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
11233 semantically equivalent branches (left over after prior refactorings).
11234
11235 2019-05-15 Richard Biener <rguenther@suse.de>
11236
11237 PR tree-optimization/88828
11238 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
11239 bogus check.
11240
11241 2019-05-14 Richard Biener <rguenther@suse.de>
11242
11243 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
11244 as __VIEW_CONVERT with -gimple.
11245
11246 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
11247
11248 PR target/82920
11249 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
11250 Darwin.
11251
11252 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
11253
11254 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
11255 define_split to become a define_insn_and_split.
11256
11257 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
11258
11259 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
11260 arguments.
11261 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
11262 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
11263 (sibcall_epilogue): Adjust.
11264 (epilogue): Adjust.
11265
11266 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
11267
11268 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
11269 to unsupported ones.
11270 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
11271 * config.host: Likewise.
11272 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
11273 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
11274 __svr4__]: Remove "brand" fallback.
11275 [!KSTAT_DATA_STRING]: Remove.
11276 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
11277 to *-*-solaris2*.
11278 (comdat_group): Likewise.
11279 (set_have_as_tls): Likewise.
11280 (gcc_cv_target_dl_iterate_phdr): Likewise.
11281 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
11282 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
11283 * configure: Regenerate.
11284 * doc/install.texi: Simplify Solaris target triplets.
11285 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
11286 (Specific, *-*-solaris2*): Document Solaris 10 removal.
11287 Remove Solaris 10 references.
11288 Remove obsolete Solaris bug reference.
11289 (Specific, sparc-sun-solaris2.10): Remove.
11290
11291 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
11292
11293 * config/i386/i386.md (any_div): New code iterator.
11294 (paired_mod): New code attribute.
11295 (sgnprefix): Handle DIV and UDIV RTXes.
11296 (u): Ditto.
11297 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
11298 and udivmod<mode>4 patterns using any_div code iterator.
11299 (divmod splitters): Macroize splitters using any_div code iterator.
11300 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
11301 (*udivmodsi4_pow2_zext_2): Ditto.
11302 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
11303 and *udivmod<mode>4_noext patterns using any_div code iterator.
11304 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
11305 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
11306 patterns using any_div code iterator.
11307 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
11308 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
11309 patterns using any_div code iterator.
11310 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
11311 udivmodhiqi3 patterns using any_extend code iterator.
11312
11313 2019-05-14 Richard Biener <rguenther@suse.de>
11314 H.J. Lu <hongjiu.lu@intel.com>
11315
11316 PR tree-optimization/88828
11317 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
11318 permuting in a single non-constant element not extracted
11319 from a vector.
11320
11321 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
11322
11323 * internal-fn.def (SIGNBIT): New.
11324 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
11325 defined.
11326 (signbitv4sf2): Likewise.
11327
11328 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
11329
11330 PR target/90357
11331 * config/mips/mips.c (mips_split_move): Skip forward SRC into
11332 next insn when the SRC reg is dead.
11333
11334 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
11335
11336 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
11337 (alloc_cand_and_find_basis): Ditto.
11338 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
11339 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
11340 (create_add_imm_cand, slsr_process_cast): Ditto.
11341 (slsr_process_copy, replace_mult_candidate): Ditto.
11342 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
11343 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
11344 (pass_strength_reduction::execute): Init the first NULL element.
11345
11346 2019-05-13 Nathan Sidwell <nathan@acm.org>
11347
11348 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
11349 (run_attempt): Reformat line break.
11350
11351 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
11352
11353 PR target/90418
11354 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
11355 data registers in sibcall epilogues.
11356 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
11357
11358 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
11359
11360 PR target/89221
11361 * configure.ac (--enable-frame-pointer):
11362 Disable by default for cygwin and mingw.
11363 * configure: Regenerate.
11364
11365 2019-05-13 Nathan Sidwell <nathan@acm.org>
11366
11367 * dwarf2out.c (breakout_comdat_types): Move comment to correct
11368 piece of code.
11369 (const_ok_for_output_1): Balance parens around #if/#else/#endif
11370 (gen_member_die): Move abstract origin check earlier. Only VARs
11371 can be static_inline_p. Simplify splicing control flow.
11372
11373 2019-05-13 Richard Biener <rguenther@suse.de>
11374
11375 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
11376 VIEW_CONVERT_EXPR.
11377 (vect_build_slp_tree_1): Likewise.
11378
11379 2019-05-13 Richard Biener <rguenther@suse.de>
11380
11381 PR tree-optimization/90402
11382 * tree-if-conv.c (tree_if_conversion): Value number only
11383 the loop body by making the latch an exit of the region
11384 as well.
11385 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
11386 processing PHIs.
11387 (do_rpo_vn): Deal with multiple edges into the entry block
11388 that are not backedges inside the region by skipping PHIs
11389 of the entry block.
11390
11391 2019-05-13 Richard Biener <rguenther@suse.de>
11392
11393 PR tree-optimization/90316
11394 * tree-ssa-pre.c (insert_aux): Fold into ...
11395 (insert): ... this function. Use a RPO walk to reduce the
11396 number of required iterations.
11397
11398 2019-05-13 Martin Liska <mliska@suse.cz>
11399
11400 PR tree-optimization/90416
11401 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
11402 string instead of passing the second part as va_arg argument.
11403
11404 2019-05-13 Martin Liska <mliska@suse.cz>
11405
11406 PR gcov-profile/90380
11407 * gcov.c (handle_cycle): Do not support zero cycle count,
11408 it should not be possible.
11409 (path_contains_zero_cycle_arc): New function.
11410 (circuit): Ignore zero cycle arc counts.
11411
11412 2019-05-13 Martin Liska <mliska@suse.cz>
11413
11414 PR gcov-profile/90380
11415 * gcov.c (enum loop_type): Remove the enum and
11416 the operator.
11417 (handle_cycle): Assert that we should not reach
11418 a negative count.
11419 (circuit): Use loop_found instead of a tri-state loop_type.
11420 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
11421 happen.
11422
11423 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
11424
11425 PR target/82920
11426 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
11427 (ix86_output_indirect_branch_via_reg): Use output mechanism
11428 accounting for __USER_LABEL_PREFIX__.
11429 (ix86_output_indirect_branch_via_push): Likewise.
11430 (ix86_output_function_return): Likewise.
11431 (ix86_output_indirect_function_return): Likewise.
11432
11433 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
11434
11435 * doc/md.texi: Document use of code attributes in rtx patterns.
11436 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
11437 * read-rtl.c (find_code): Split out search loops into...
11438 (maybe_find_code): ...this new function.
11439 (check_code_iterator): Make the error message more informative.
11440 (check_code_attribute): New function.
11441 (rtx_reader::rtx_alloc_for_name): Likewise.
11442 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
11443 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
11444 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
11445 <max_opp> directly as an rtx code instead of via a match_operator.
11446 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
11447 (<su>abd<mode>_3): Update accordingly.
11448
11449 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
11450
11451 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
11452 is given, print the state of the EH "save world" computation for
11453 Darwin.
11454
11455 2019-05-11 Jakub Jelinek <jakub@redhat.com>
11456
11457 PR c++/59813
11458 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
11459 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
11460
11461 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
11462
11463 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
11464 Use pinsrd for TARGET_SSE4_1.
11465 * config/i386/sse.md (movdi_to_sse): Ditto.
11466
11467 2019-05-10 Richard Biener <rguenther@suse.de>
11468
11469 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
11470 (do_rpo_vn): Initialize next_value_id.
11471
11472 2019-05-10 Martin Liska <mliska@suse.cz>
11473
11474 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
11475 Fix plural form.
11476
11477 2019-05-10 Jakub Jelinek <jakub@redhat.com>
11478
11479 PR tree-optimization/90385
11480 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
11481 arguments of the exit phis.
11482
11483 PR c++/90383
11484 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
11485 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
11486 id->do_not_fold.
11487 (copy_tree_body_r): Likewise.
11488 (copy_fn): Set id.do_not_fold to true.
11489
11490 2019-05-10 Martin Liska <mliska@suse.cz>
11491
11492 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
11493 Reapply changes from r269790.
11494
11495 2019-05-10 Martin Liska <mliska@suse.cz>
11496
11497 PR middle-end/90340
11498 * doc/invoke.texi: New params.
11499 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
11500 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
11501 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
11502 Use it.
11503 * tree-switch-conversion.h (struct jump_table_cluster):
11504 Likewise.
11505
11506 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
11507
11508 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
11509
11510 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
11511
11512 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
11513
11514 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
11515
11516 PR rtl-optimization/88879
11517 * sel-sched.c (sel_target_adjust_priority): Remove assert.
11518
11519 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
11520
11521 PR target/90405
11522 * config/arm/arm.c (callee_saved_reg_p): Move before
11523 thumb_find_work_register.
11524 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
11525 thumb_find_work_register. Only call df_get_live_out once.
11526 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
11527 (thumb_find_work_register): Use
11528 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
11529 algorithms to locate a spare call clobbered reg.
11530
11531 2019-05-09 Martin Liska <mliska@suse.cz>
11532
11533 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
11534 and MAX_EXPR in GIMPLE FE format.
11535
11536 2019-05-09 Martin Liska <mliska@suse.cz>
11537
11538 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
11539 * gimple-pretty-print.c (dump_gimple_bb_header):
11540 Dump BB count.
11541 (pp_cfg_jump): Dump edge probability.
11542 * profile-count.c (profile_quality_as_string): Simplify
11543 with a static array.
11544 (parse_profile_quality): New function.
11545 (profile_count::dump): Simplify with a static array.
11546 (profile_count::from_gcov_type): Add new argument.
11547 * profile-count.h (parse_profile_quality): Likewise.
11548 * predict.h (set_hot_bb_threshold): New.
11549 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
11550 New param.
11551 * predict.c (get_hot_bb_threshold): Set from the new param.
11552 (set_hot_bb_threshold): New.
11553
11554 2019-05-09 Richard Biener <rguenther@suse.de>
11555
11556 PR tree-optimization/90395
11557 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
11558 rewrite vector stores that throw internally.
11559
11560 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
11561
11562 * cif-code.def (CHKP): Remove.
11563
11564 PR target/89221
11565 * configure.ac (--enable-frame-pointer): Disable by default for
11566 GNU systems.
11567 * configure: Regenerate.
11568
11569 2019-05-09 Alan Modra <amodra@gmail.com>
11570
11571 PR target/89271
11572 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
11573 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
11574 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
11575 cost for general <-> vsx when direct moves are available.
11576 Cost union classes at minimal cost for any reg in the class.
11577 Correct calculation for moves between vsx, float, and altivec.
11578 Don't return a low cost for moves between special regs. Don't
11579 use hard coded register numbers.
11580 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
11581 (rs6000_ira_change_pseudo_allocno_class): New function.
11582 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
11583 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
11584 alternatives.
11585 (movsi_internal1): Don't disparage vector alternatives.
11586 (mov<mode>_internal): Likewise, excepting alternative that
11587 will be split.
11588 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
11589 we <- b alternative.
11590
11591 2019-05-08 Jakub Jelinek <jakub@redhat.com>
11592
11593 PR c++/59813
11594 PR tree-optimization/89060
11595 * tree-ssa-live.h (live_vars_map): New typedef.
11596 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
11597 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
11598 (struct compute_live_vars_data): New type.
11599 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
11600 live_vars_at_stmt, destroy_live_vars): New functions.
11601 * tree-tailcall.c: Include tree-ssa-live.h.
11602 (live_vars, live_vars_vec): New global variables.
11603 (find_tail_calls): Perform variable life analysis before punting.
11604 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
11605 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
11606 member.
11607 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
11608 Perform variable life analysis to select variables that really need
11609 clobbers added.
11610 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
11611 instead set id->eh_landing_pad_dest and assert it is the same.
11612 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
11613
11614 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
11615 Richard Earnshaw <rearnsha@arm.com>
11616
11617 PR target/88167
11618 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
11619 function.
11620 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
11621 (thumb1_compute_save_core_reg_mask): Don't force a spare work
11622 register if both the epilogue and prologue can use call-clobbered
11623 regs.
11624 (thumb1_unexpanded_epilogue): Use
11625 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
11626 picking temporaries for restoring high regs to match that of the
11627 prologue where possible.
11628 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
11629 the list of work registers. Detect if the return address is still live
11630 at the end of the prologue and avoid using it for a work register if so.
11631 If the return address is not live, add LR to the list of pushable regs
11632 after the first pass.
11633
11634 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
11635
11636 PR tree-optimization/90078
11637 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
11638 (INFTY): Increase the value for infinite cost.
11639 (struct comp_cost): Promote type of members to int64_t.
11640 (infinite_cost): Don't set complexity in initialization.
11641 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
11642 overflows to infinite_cost.
11643 (adjust_setup_cost): Promote type of parameter and cost computation
11644 to int64_t.
11645 (struct ainc_cost_data, struct iv_ca): Promote type of member to
11646 int64_t.
11647 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
11648 cost computation to int64_t.
11649 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
11650 int64_t's format specifier in dump.
11651
11652 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
11653
11654 PR tree-optimization/90240
11655 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
11656 with respect to scaling factor pre-computed for each basic block.
11657 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
11658 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
11659 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
11660 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
11661 live range for array of loop's basic blocks. Cleanup aux field of
11662 loop's basic blocks.
11663
11664 2019-05-08 Jakub Jelinek <jakub@redhat.com>
11665
11666 PR tree-optimization/90356
11667 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
11668
11669 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
11670
11671 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
11672 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
11673 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
11674 (ix86_handle_option): Handle -mavx512bf16.
11675 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
11676 to extra_headers.
11677 * config/i386/avx512bf16vlintrin.h: New.
11678 * config/i386/avx512bf16intrin.h: New.
11679 * config/i386/cpuid.h (bit_AVX512BF16): New.
11680 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
11681 * config/i386/i386-builtin-types.def: Add new types.
11682 * config/i386/i386-builtin.def: Add new builtins.
11683 * config/i386/i386-c.c (ix86_target_macros_internal): Define
11684 __AVX512BF16__.
11685 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
11686 (ix86_option_override_internal): Handle BF16.
11687 (ix86_valid_target_attribute_inner_p): Ditto.
11688 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
11689 * config/i386/i386-builtin.c (enum processor_features): Add
11690 F_AVX512BF16.
11691 (static const _isa_names_table isa_names_table): Ditto.
11692 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
11693 (PTA_AVX512BF16): Ditto.
11694 * config/i386/i386.opt: Add -mavx512bf16.
11695 * config/i386/immintrin.h: Include avx512bf16intrin.h
11696 and avx512bf16vlintrin.h.
11697 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
11698 avx512f_cvtneps2bf16_<mode><mask_name>,
11699 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
11700 * config/i386/subst.md (mask_half): Add new subst.
11701 * doc/invoke.texi: Document -mavx512bf16.
11702
11703 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
11704
11705 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
11706 Delete declaration.
11707 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
11708 (rs6000_debug_legitimize_reload_address): Delete.
11709 (rs6000_legitimize_reload_address_ptr): Delete.
11710 (rs6000_option_override_internal): Adjust.
11711 (mem_operand_gpr): Adjust comment.
11712 (legitimate_lo_sum_address_p): Ditto.
11713 (rs6000_legitimize_reload_address): Delete.
11714 (rs6000_debug_legitimize_reload_address): Delete.
11715 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
11716
11717 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
11718
11719 PR target/89765
11720 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
11721 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
11722 to compute vector element selector for both constant and variable
11723 operands.
11724
11725 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
11726
11727 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
11728 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
11729 ashrdi3_cvt using SWI48 mode iterator.
11730
11731 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11732
11733 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
11734 (aarch64_<su>abd<mode>_3): Likewise.
11735 (*aarch64_<su>abd<mode>_3): New define_insn.
11736 (<sur>sad<vsi2qi>): New define_expand.
11737 * config/aarch64/iterators.md: Added MAX_OPP attribute.
11738 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
11739 (build_vect_cond_expr): Likewise.
11740
11741 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
11742
11743 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
11744 clobbers outside of accessible_reg_set.
11745 * config/i386/i386.c (ix86_conditional_register_usage):
11746 Disable register sets by clearing corresponding bits in
11747 accessible_reg_set. Do not set corresponding bits in fixed_regs,
11748 call_used_regs and don't clear corresponding reg_names array members.
11749
11750 2019-05-07 Richard Biener <rguenther@suse.de>
11751
11752 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
11753 not specified still compute a comp_vectype for invariant
11754 compares.
11755
11756 2019-05-07 Richard Biener <rguenther@suse.de>
11757
11758 PR tree-optimization/90316
11759 * tree-ssa-pre.c (translate_vuse_through_block): When
11760 same_valid is NULL do not bother to search for a virtual
11761 PHI continuation.
11762 (phi_translate_1): When operands changed we cannot keep
11763 the same value-number so do not bother to ask whether
11764 that's possible from translate_vuse_through_block.
11765
11766 2019-05-07 Martin Liska <mliska@suse.cz>
11767
11768 * bitmap.c (bitmap_register): Come up with
11769 alloc_descriptor_max_uid and assign it for
11770 a new bitmap.
11771 (register_overhead): Use get_descriptor as
11772 a descriptor.
11773 (release_overhead): New.
11774 (bitmap_elem_to_freelist): Call it.
11775 (bitmap_elt_clear_from): Likewise.
11776 (bitmap_obstack_free): Likewise.
11777 (bitmap_move): Sensitively release memory.
11778 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
11779 (bitmap_initialize): Initialize alloc_descriptor to zero.
11780 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
11781
11782 2019-05-07 Richard Biener <rguenther@suse.de>
11783
11784 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
11785 we build a SLP node. Remove max_size and limiting.
11786 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
11787
11788 2019-05-07 Richard Biener <rguenther@suse.de>
11789
11790 PR tree-optimization/90316
11791 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
11792 limit by reference.
11793 (walk_non_aliased_vuses): Take walking limit argument.
11794 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
11795 walking if it is reached instead of just counting.
11796 (get_continuation_for_phi): Likewise.
11797 (walk_non_aliased_vuses): Likewise, instead of leaving counter
11798 limiting to the callback.
11799 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
11800 (vn_reference_lookup_3): Likewise.
11801 (vn_reference_lookup_pieces): Likewise.
11802 (vn_reference_lookup): Likewise.
11803 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
11804 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
11805 (avail_exprs_stack::lookup_avail_expr): Likewise.
11806
11807 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
11808
11809 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
11810 for comparaible types in the second direction even if first one
11811 hits incomparable type.
11812
11813 2019-05-07 Richard Biener <rguenther@suse.de>
11814
11815 PR lto/90369
11816 * lto-wrapper.c (debug_objcopy): Use the original filename
11817 including archive offset for the filename used for -save-temps.
11818
11819 2019-05-07 Li Jia He <helijia@linux.ibm.com>
11820
11821 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
11822 detection.
11823
11824 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
11825 Hongtao Liu <hongtao.liu@intel.com>
11826
11827 PR target/89750
11828 PR target/86444
11829 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
11830 Modified, original implementation isn't correct.
11831
11832 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
11833
11834 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
11835 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
11836 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
11837 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
11838 (FRAME_POINTER_REGNUM): Change numbering.
11839 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
11840 (alt_reg_names): Adjust.
11841 (rs6000_conditional_register_usage): Don't mark hard register 64 as
11842 fixed.
11843 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
11844 (DWARF_FRAME_REGISTERS): Delete.
11845 (DWARF2_FRAME_REG_OUT): Fix whitespace.
11846 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
11847 Adjust.
11848 (REG_ALLOC_ORDER): Adjust.
11849 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
11850 (REG_CLASS_CONTENTS): Adjust.
11851 (RETURN_ADDR_RTX): Change comment.
11852 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
11853 instead of 67.
11854 (REGISTER_NAMES): Adjust.
11855 (ADDITIONAL_REGISTER_NAMES): Adjust.
11856 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
11857
11858 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
11859
11860 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
11861 Delete.
11862 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
11863 (DWARF_FRAME_REGISTERS): Adjust.
11864 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
11865 Adjust.
11866 (REG_ALLOC_ORDER): Adjust.
11867 (enum reg_class): Delete SPR_REGS.
11868 (REG_CLASS_NAMES): Delete SPR_REGS.
11869 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
11870 (REGISTER_NAMES): Adjust.
11871 (ADDITIONAL_REGISTER_NAMES): Adjust.
11872 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
11873 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
11874 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
11875 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
11876 (htm_spr_regno): Delete.
11877 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
11878 argument.
11879 (rs6000_dbx_register_number): Adjust.
11880
11881 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
11882
11883 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
11884
11885 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
11886
11887 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
11888 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
11889
11890 2019-05-06 Jakub Jelinek <jakub@redhat.com>
11891
11892 PR tree-optimization/88709
11893 PR tree-optimization/90271
11894 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
11895 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
11896 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
11897 variable.
11898 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
11899 of the store merging group is larger than
11900 PARAM_STORE_MERGING_MAX_SIZE parameter.
11901 (split_group): Add bzero_first argument. If set, always emit first
11902 the first store which must be = {} of the whole area and then for the
11903 rest of the stores consider all zero bytes as paddings.
11904 (imm_store_chain_info::output_merged_store): Check if first store
11905 is = {} of the whole area and if yes, determine which setting of
11906 bzero_first for split_group gives smaller number of stores. Adjust
11907 split_group callers.
11908 (lhs_valid_for_store_merging_p): Allow decls.
11909 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
11910 no elts.
11911 (pass_store_merging::process_store): Likewise.
11912
11913 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
11914
11915 PR target/89424
11916 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
11917 handling of V1TImode.
11918
11919 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
11920
11921 PR target/89221
11922 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
11923 and enable_frame_pointer ...
11924 * configure.ac: ... here. Update help strings for
11925 --enable-frame-pointer.
11926 * configure: Regenerate.
11927 * config/i386/i386-options.c (ix86_option_override_internal): Remove
11928 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
11929 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
11930 (USE_X86_64_FRAME_POINTER): Ditto.
11931
11932 2019-05-06 Martin Liska <mliska@suse.cz>
11933
11934 * config.gcc: Append to target_gtfiles and fix indentation.
11935
11936 2019-05-06 Richard Biener <rguenther@suse.de>
11937
11938 PR tree-optimization/90358
11939 * tree-vect-stmts.c (get_group_load_store_type): Properly
11940 detect unused upper half of load.
11941 (vectorizable_load): Likewise.
11942
11943 2019-05-06 Richard Biener <rguenther@suse.de>
11944
11945 PR tree-optimization/88828
11946 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
11947 (simplify_vector_constructor): ...here. Handle constants in
11948 the constructor.
11949
11950 2019-05-06 Richard Biener <rguenther@suse.de>
11951
11952 PR tree-optimization/90328
11953 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
11954 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
11955 is valid in the loop nest before using it.
11956 (initialize_data_dependence_relation): Adjust.
11957 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
11958 loop as loop-nest to dr_may_alias_p.
11959
11960 2019-05-06 Richard Biener <rguenther@suse.de>
11961
11962 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
11963
11964 2019-05-06 Richard Biener <rguenther@suse.de>
11965
11966 PR tree-optimization/90316
11967 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
11968 compute target on demand.
11969 (get_continuation_for_phi): Remove code walking stmts to
11970 get to a target virtual operand which could end up being
11971 quadratic.
11972
11973 2019-05-06 Martin Liska <mliska@suse.cz>
11974
11975 PR sanitizer/90312
11976 * config/i386/i386-options.c (ix86_option_override_internal): Error only
11977 when -mabi is selected to a non-default version.
11978
11979 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
11980 Martin Liska <mliska@suse.cz>
11981
11982 * Makefile.in: Add lto-dump.texi.
11983 * cgraph.h: Add new functions get_visibility_string and
11984 get_symtab_type_string.
11985 * doc/gcc.texi: Include lto-dump section.
11986 * doc/lto-dump.texi: New file.
11987 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
11988 (parse_dump_option): Factor out this function.
11989 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
11990 (parse_dump_option): Export the function.
11991 * symtab.c (symtab_node::get_visibility_string): New function.
11992 (symtab_node::get_symtab_type_string): Likewise.
11993
11994 2019-05-06 Martin Liska <mliska@suse.cz>
11995
11996 * config/i386/i386-builtins.c: New file.
11997 * config/i386/i386-builtins.h: New file.
11998 * config/i386/i386-expand.c: New file.
11999 * config/i386/i386-expand.h: New file.
12000 * config/i386/i386-features.c: New file.
12001 * config/i386/i386-features.h: New file.
12002 * config/i386/i386-options.c: New file.
12003 * config/i386/i386-options.h: New file.
12004 * config.gcc: Add new files into extra_objs and
12005 target_gtfiles.
12006 * config/i386/i386.c: Split content of the file
12007 into newly introduced files.
12008 * config/i386/i386.h: Declare common variables
12009 and macros.
12010 * config/i386/t-i386: Define dependencies for new files.
12011
12012 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
12013
12014 PR target/89400
12015 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
12016 Restrict 'all' variant to 32-bit configurations.
12017 (unaligned_loadhiu): Likewise.
12018 (unaligned_storehi): Likewise.
12019 (unaligned_storesi): Likewise.
12020 (unaligned_loadhis): Disable when compiling for thumb1.
12021
12022 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
12023
12024 PR tree-optimization/90269
12025 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
12026 Ignore clobbers.
12027
12028 2019-05-03 Martin Liska <mliska@suse.cz>
12029
12030 * hash-map.h: Add is_empty function.
12031 * hash-set.h: Likewise.
12032 * hash-table.h: Likewise.
12033 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
12034 elements () == 0 (and similar usages).
12035 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
12036 * gimplify.c (gimplify_bind_expr): Likewise.
12037 (gimplify_switch_expr): Likewise.
12038 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
12039 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
12040 * postreload-gcse.c (dump_hash_table): Likewise.
12041 (gcse_after_reload_main): Likewise.
12042 * predict.c (combine_predictions_for_bb): Likewise.
12043 * tree-parloops.c (reduction_phi): Likewise.
12044 (separate_decls_in_region): Likewise.
12045 (transform_to_exit_first_loop): Likewise.
12046 (gen_parallel_loop): Likewise.
12047 (gather_scalar_reductions): Likewise.
12048 (try_create_reduction_list): Likewise.
12049 * var-tracking.c (dump_vars): Likewise.
12050 (emit_notes_for_changes): Likewise.
12051 (vt_emit_notes): Likewise.
12052
12053 2019-05-03 Richard Biener <rguenther@suse.de>
12054
12055 PR tree-optimization/90316
12056 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
12057 before running VN.
12058
12059 2019-05-03 Richard Biener <rguenther@suse.de>
12060
12061 * tree-vect-stmts.c (get_group_load_store_type): Avoid
12062 peeling for gaps by loading only lower halves of vectors
12063 if possible.
12064 (vectorizable_load): Likewise.
12065
12066 2019-05-03 Richard Biener <rguenther@suse.de>
12067
12068 PR middle-end/89518
12069 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
12070
12071 2019-05-03 Richard Biener <rguenther@suse.de>
12072
12073 PR middle-end/87314
12074 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
12075 Handle STRING_CST vs DECL or STRING_CST.
12076
12077 2019-05-03 Richard Biener <rguenther@suse.de>
12078
12079 PR tree-optimization/88963
12080 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
12081 vector loads feeding only BIT_FIELD_REFs to component
12082 loads. Rewrite stores fed by CONSTRUCTORs to component
12083 stores.
12084
12085 2019-05-03 Jakub Jelinek <jakub@redhat.com>
12086
12087 * opts.h (finish_options): Remove lang_mask argument.
12088 (print_help, help_option_argument): Declare.
12089 * opts.c (print_help): Remove forward declaration, no longer static.
12090 (finish_options): Remove lang_mask argument, don't call print_help
12091 here.
12092 * opts-global.c (decode_options): Adjust finish_option caller, call
12093 print_help here.
12094
12095 PR tree-optimization/90303
12096 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
12097 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
12098
12099 2019-05-03 Richard Biener <rguenther@suse.de>
12100
12101 PR tree-optimization/89698
12102 * gimple-fold.c (canonicalize_constructor_val): Early out
12103 for constants, handle unfolded INTEGER_CSTs as they appear in
12104 C++ virtual table ctors.
12105
12106 2019-05-03 Richard Biener <rguenther@suse.de>
12107
12108 * passes.c (execute_function_todo): Remove dead code.
12109
12110 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
12111
12112 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
12113 the internal register number, for any "real" register.
12114
12115 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
12116
12117 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
12118 correct numbers for TFHAR, TFIAR, TEXASR.
12119
12120 2019-05-02 Richard Biener <rguenther@suse.de>
12121
12122 PR tree-optimization/89653
12123 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
12124 update-address-taken before the pass.
12125 * passes.def (pass_tree_loop_init): Put comment before it.
12126
12127 2019-05-02 Richard Biener <rguenther@suse.de>
12128
12129 PR tree-optimization/89509
12130 * tree-ssa-structalias.c (compute_dependence_clique): Look
12131 at the first subvar when determining whether it is restrict.
12132
12133 2019-05-02 Richard Biener <rguenther@suse.de>
12134
12135 PR tree-optimization/90273
12136 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
12137 useless debug stmts.
12138
12139 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
12140
12141 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
12142 ACLE branch.
12143 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
12144 SVE ACLE branch.
12145 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
12146 VEC_COND_EXPR be inserted to emulate a conditional internal function.
12147 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
12148 (vectorizable_reduction): Use the functions above to vectorize in a
12149 fully masked loop codes that don't have a conditional internal
12150 function.
12151
12152 2019-05-02 Martin Liska <mliska@suse.cz>
12153
12154 * cgraphclones.c: Call valid_attribute_p with 1 for
12155 target_clone.
12156 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
12157 it's for target attribute.
12158 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
12159 Add new boolean argument.
12160 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
12161 Likewise.
12162 (ix86_valid_target_attribute_tree): Pass target_clone_attr
12163 to ix86_valid_target_attribute_inner_p.
12164 (ix86_valid_target_attribute_p): Pass flags argument to
12165 ix86_valid_target_attribute_inner_p.
12166 (get_builtin_code_for_version): Use 0 as it's target attribute.
12167
12168 2019-05-02 Martin Liska <mliska@suse.cz>
12169
12170 * gcc.c (process_command): Add dummy file only
12171 if n_infiles == 0.
12172 * opts-global.c (decode_options): Pass lang_mask.
12173 * opts.c (print_help): New function.
12174 (finish_options): Print --help if help_option_argument
12175 is set.
12176 (common_handle_option): Factor out content of OPT__help_
12177 into print_help.
12178 * opts.h (finish_options): Add new argument.
12179
12180 2019-05-02 Martin Liska <mliska@suse.cz>
12181
12182 PR target/88809
12183 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
12184 With -minline-all-stringops use inline expansion using 4B loop.
12185 * doc/invoke.texi: Document the change of
12186 -minline-all-stringops.
12187
12188 2019-05-01 Jeff Law <law@redhat.com>
12189
12190 PR tree-optimization/88797
12191 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
12192 PHI feeds a conditional on the RHS of an assignment.
12193
12194 2019-04-30 Andrew Waterman <andrew@sifive.com>
12195 Jim Wilson <jimw@sifive.com>
12196
12197 * config/riscv/constraints.md (L): New.
12198 * config/riscv/predicates.md (lui_operand): New.
12199 (sfb_alu_operand): New.
12200 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
12201 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
12202 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
12203 * config/riscv/risc.md (type): Add sfb_alu.
12204 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
12205 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
12206 (branch_zero<mode>): Delete.
12207 (mov<mode>cc): New.
12208 (mov<GPR:mode><X:mode>cc): Likewise.
12209 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
12210
12211 2019-04-30 Nathan Sidwell <nathan@acm.org>
12212
12213 * tree.h (MARK_TS_EXP): New.
12214
12215 2019-04-30 Martin Liska <mliska@suse.cz>
12216
12217 * opts.c (enable_warning_as_error): Provide hints
12218 for unknown options.
12219
12220 2019-04-30 Martin Liska <mliska@suse.cz>
12221
12222 PR debug/90288
12223 * doc/invoke.texi: Add missing dash for gas-locview-support
12224 and gno-as-locview-support.
12225
12226 2019-04-30 Jakub Jelinek <jakub@redhat.com>
12227
12228 PR target/89093
12229 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
12230 whitespace at the start of target attribute string.
12231
12232 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12233
12234 PR target/86538
12235 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
12236 Define __ARM_FEATURE_ATOMICS.
12237
12238 2019-04-30 Martin Liska <mliska@suse.cz>
12239
12240 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
12241 into built_in_function enum. Remove code for endp == 2 and
12242 use BUILT_IN_* constants.
12243 (gimple_fold_builtin): Call the function with fcode.
12244
12245 2019-04-30 Martin Liska <mliska@suse.cz>
12246
12247 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
12248 DECL_FUNCTION_CODE into ix86_builtins enum before
12249 the switch statement.
12250
12251 2019-04-30 Jakub Jelinek <jakub@redhat.com>
12252
12253 PR tree-optimization/89475
12254 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
12255 calls.
12256
12257 2019-04-30 Martin Liska <mliska@suse.cz>
12258
12259 PR translation/90274
12260 * opts.c (print_filtered_help): Wrap string in _(...).
12261
12262 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
12263
12264 PR tree-optimization/90240
12265 Revert:
12266 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
12267
12268 PR tree-optimization/90078
12269 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
12270 checks for infinite_cost overflow.
12271
12272 2019-04-29 Jeff Law <law@redhat.com>
12273
12274 * passes.def: Move -Wrestrict pass after copy propagation.
12275
12276 2019-04-29 Maya Rashish <coypu@sdf.org>
12277
12278 * config.gcc (default_gnu_indirect_function): Default to yes
12279 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
12280 sparc*-*-netbsd*, x86_64-*-netbsd*.
12281
12282 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
12283
12284 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
12285 where cond2 is NE_EXPR.
12286 (is_value_included_in): Update comment.
12287
12288 2019-04-29 Richard Biener <rguenther@suse.de>
12289
12290 PR tree-optimization/90278
12291 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
12292 EH on comparison simplification.
12293
12294 2019-04-29 Jason Merrill <jason@redhat.com>
12295
12296 PR c++/82081 - tail call optimization breaks noexcept
12297 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
12298 nothrow function to a might-throw function into a tail call.
12299
12300 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
12301
12302 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
12303 (DDR_INNER_LOOP): Likewise.
12304 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
12305 (initialize_data_dependence_relation): Likewise.
12306 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
12307
12308 2019-04-29 Jakub Jelinek <jakub@redhat.com>
12309
12310 PR rtl-optimization/90257
12311 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
12312 return value.
12313
12314 Revert the revert:
12315 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
12316
12317 PR target/90178
12318 Revert:
12319 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
12320
12321 Revert the revert:
12322 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
12323
12324 Revert:
12325 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
12326
12327 * lra-spills.c (lra_final_code_change): Remove useless move insns.
12328
12329 2019-04-29 Richard Biener <rguenther@suse.de>
12330
12331 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
12332 rhs issue a reset.
12333
12334 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
12335
12336 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
12337 varasm.h, and netbsd-protos.h.
12338
12339 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
12340
12341 PR target/89261
12342 * config/i386/i386-protos.h (ix86_data_alignment): Change
12343 the second argument type to unsigned int.
12344 * config/i386/i386.c (ix86_data_alignment): Change "align"
12345 argument type to unsigned int.
12346
12347 2019-04-27 Martin Liska <mliska@suse.cz>
12348
12349 PR middle-end/90258
12350 * opt-suggestions.c (option_proposer::build_option_suggestions):
12351 When get_valid_option_values returns empty values, add the
12352 misspelling candidate.
12353
12354 2019-04-26 Jim Wilson <jimw@sifive.com>
12355
12356 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
12357 parameter.
12358 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
12359 Pass orig_mode to riscv_build_integer.
12360 (riscv_split_integer): Pass mode to riscv_move_integer.
12361 (riscv_legitimize_const_move): Likewise.
12362 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
12363 promoted_mode. Replace force_reg call with code to load constant into
12364 promoted reg and then subreg it for the store.
12365 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
12366 riscv_move_integer.
12367
12368 2018-04-26 Eugene Sharygin <eush@ispras.ru>
12369
12370 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
12371 corrupt codes.
12372
12373 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
12374
12375 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
12376 commentary about the encoding of precision.
12377
12378 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
12379
12380 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
12381 * config/i386/t-freebsd64: New file.
12382 * config.gcc: Add the t-freebsd64 for multilib support.
12383
12384 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
12385
12386 * doc/extend.texi (vector_size): Add missing comma after @xref.
12387
12388 2019-04-25 Jakub Jelinek <jakub@redhat.com>
12389
12390 * BASE-VER: Set to 10.0.0.
12391
12392 2019-04-25 Richard Biener <rguenther@suse.de>
12393
12394 PR middle-end/89765
12395 * gimplify.c (gimplify_expr): Avoid turning a lvalue
12396 VIEW_CONVERT_EXPR into one operating on an rvalue.
12397
12398 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
12399
12400 PR target/89929
12401 * config/i386/i386.c (feature_priority): Moved to file scope.
12402 (processor_features): Likewise.
12403 (processor_model): Likewise.
12404 (_arch_names_table): Likewise.
12405 (arch_names_table): Likewise.
12406 (_feature_list): Removed.
12407 (feature_list): Likewise.
12408 (_isa_names_table): Moved to file scope. Add priority.
12409 (isa_names_table): Likewise.
12410 (get_builtin_code_for_version): Replace feature_list with
12411 isa_names_table. Update error message for P_ZERO priority.
12412
12413 2019-04-25 Richard Biener <rguenther@suse.de>
12414
12415 * tree-pass.h (make_pass_phi_only_cprop): Remove.
12416 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
12417
12418 2019-04-24 Jeff Law <law@redhat.com>
12419
12420 PR tree-optimization/90037
12421 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
12422 * passes.def: Replace all instance of phi-only cprop with the
12423 lattice propagator. Move propagation pass from after erroneous
12424 path isolation to before erroneous path isolation.
12425 * tree-ssa-phionlycprop.c: Remove.
12426
12427 2019-04-24 Richard Biener <rguenther@suse.de>
12428
12429 PR middle-end/90213
12430 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
12431 by size and BITS_PER_UNIT on poly-wide-ints.
12432
12433 2019-04-25 Richard Biener <rguenther@suse.de>
12434
12435 PR middle-end/90194
12436 * match.pd: Add pattern to simplify view-conversion of an
12437 empty constructor.
12438
12439 2019-04-24 Clement Chigot <clement.chigot@atos.net>
12440
12441 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
12442 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
12443 for Go on 32 bit AIX.
12444 * config/rs6000/aix72.h: Likewise.
12445
12446 2019-04-24 Jakub Jelinek <jakub@redhat.com>
12447
12448 PR target/90193
12449 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
12450 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
12451
12452 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
12453
12454 PR target/89952
12455 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
12456 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
12457 for restored hard frame pointer.
12458 (s390_sched_dependencies_evaluation): Implement new target hook.
12459 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
12460
12461 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
12462
12463 * config/arc/arc-options.def: Fix typos and spelling mistakes.
12464 * config/arc/arc.c (arc_init): Cleanup warning message.
12465 (arc_override_options): Likewise.
12466
12467 2019-04-24 Jakub Jelinek <jakub@redhat.com>
12468
12469 PR target/90187
12470 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
12471 a register if both if_true and if_false are MEMs.
12472
12473 PR tree-optimization/90208
12474 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
12475 after labels of new_bb, not before them.
12476
12477 PR tree-optimization/90211
12478 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
12479 which are not SSA_NAMEs.
12480
12481 2018-04-23 Sudakshina Das <sudi.das@arm.com>
12482
12483 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
12484 AArch64.
12485 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
12486
12487 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
12488
12489 PR rtl-optimization/87979
12490 * modulo-sched.c (sms_schedule): Start ii value "mii" should
12491 not equal zero.
12492
12493 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
12494
12495 PR rtl-optimization/84032
12496 * modulo-sched.c (ps_insn_find_column): Change condition so that
12497 branch will always be the last insn in a row inside partial
12498 schedule.
12499
12500 2019-04-23 Richard Biener <rguenther@suse.de>
12501
12502 PR debug/90131
12503 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
12504 dest_single_pred_p argument.
12505 (remove_forwarder_block): Adjust.
12506 (remove_forwarder_block_with_phi): Likewise.
12507
12508 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12509 Bernd Edlinger <bernd.edlinger@hotmail.de>
12510 Jakub Jelinek <jakub@redhat.com>
12511
12512 PR target/89093
12513 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
12514 if used with general-regs-only.
12515 (arm_conditional_register_usage): Don't add non-general regs if
12516 general-regs-only.
12517 (arm_valid_target_attribute_rec): Handle general-regs-only.
12518 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
12519 general-regs-only.
12520 (TARGET_HARD_FLOAT_SUB): Define.
12521 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
12522 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
12523 (TARGET_REALLY_IWMMXT2): Likewise.
12524 * config/arm/arm.opt: Add -mgeneral-regs-only.
12525 * doc/extend.texi: Document ARM general-regs-only target.
12526 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
12527
12528 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
12529
12530 PR tree-optimization/90078
12531 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
12532 checks for infinite_cost overflow.
12533
12534 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
12535
12536 PR tree-optimization/90021
12537 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
12538 and check univariate against it.
12539 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
12540 * tree-data-ref.c (add_other_self_distances): Pass new argument.
12541
12542 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
12543
12544 PR target/90178
12545 Revert:
12546 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
12547
12548 Revert the revert:
12549 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
12550
12551 Revert:
12552 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
12553
12554 * lra-spills.c (lra_final_code_change): Remove useless move insns.
12555
12556 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
12557
12558 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
12559 names using operand format, rather than hard-wired.
12560 (speculation_barrier): Likewise.
12561
12562 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
12563
12564 PR tree-optimization/88055
12565 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
12566 (gen_one_condition): Use it if !HONOR_NANS.
12567
12568 2019-04-19 Jakub Jelinek <jakub@redhat.com>
12569
12570 PR middle-end/90139
12571 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
12572 assign_temp instead of gen_reg_rtx.
12573
12574 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
12575
12576 PR translation/90118
12577 * config/aarch64/aarch64.c (aarch64_override_options_internal):
12578 Add missing space before %<.
12579
12580 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
12581
12582 PR rtl-optimization/87871
12583 * ira-lives.c (make_object_dead): Don't add conflicts to
12584 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
12585
12586 2019-04-18 Martin Sebor <msebor@redhat.com>
12587
12588 PR middle-end/89797
12589 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
12590 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
12591 assuming type size fits in SHWI.
12592
12593 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
12594
12595 PR ipa/85051
12596 * ipa-inline.c (flatten_function): New parameter UPDATE.
12597 (ipa_inline, early_inliner): Use it.
12598
12599 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
12600
12601 * fold-const.c (int_const_binop): Return early on failure.
12602
12603 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
12604
12605 PR middle-end/85164
12606 * combine.c (force_int_to_mode): Cast the argument rather than
12607 the result of known_alignment.
12608 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
12609
12610 2019-04-18 Richard Biener <rguenther@suse.de>
12611
12612 PR debug/90131
12613 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
12614 out from ...
12615 (remove_forwarder_block): ... here.
12616 (remove_forwarder_block_with_phi): Also move debug stmts here.
12617
12618 2019-04-18 Jakub Jelinek <jakub@redhat.com>
12619
12620 PR translation/79183
12621 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
12622 inform where appropriate.
12623
12624 2019-04-18 Richard Biener <rguenther@suse.de>
12625
12626 * tree.c (get_qualified_type): Put found type variants at the
12627 head of the variant list.
12628
12629 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
12630
12631 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
12632
12633 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
12634
12635 PR target/90125
12636 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
12637 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
12638 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
12639 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
12640 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
12641
12642 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
12643
12644 * ira-conflicts.c (print_allocno_conflicts): Always print something,
12645 even for allocno's with no conflicts.
12646 (print_conflicts): Print an extra newline.
12647
12648 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
12649
12650 * auto-inc-dec.c (attempt_change): Set the alignment of the
12651 temporary memory to that of the original.
12652
12653 2019-04-17 Joao Moreira <jmoreira@suse.de>
12654
12655 * targhooks.c (default_print_patchable_function_entry): Emit
12656 __patchable_function_entries section with writable flags to allow
12657 relocation resolution.
12658
12659 2019-04-17 Jonny Grant <jg@jguk.org>
12660
12661 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
12662
12663 2019-04-17 Jakub Jelinek <jakub@redhat.com>
12664
12665 PR middle-end/90095
12666 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
12667 on lowpart SUBREGs.
12668
12669 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
12670
12671 * config/arc/arc.c (arc_init): Format diagnostic string.
12672 (arc_override_options): Likewise.
12673 (check_if_valid_regno_const): Likewise.
12674 (arc_reorg): Likewise.
12675
12676 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
12677
12678 PR target/17108
12679 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
12680 name.
12681 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
12682 name.
12683 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
12684 (*movdi_update1): Use Pmode.
12685 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
12686 (movdi_<mode>_update_stack): Rename to ...
12687 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
12688 use Pmode.
12689 (*movsi_update1): Use Pmode.
12690 (*movsi_update2): Use Pmode.
12691 (movsi_update): Rename to ...
12692 (movsi_<mode>_update): ... this. Use Pmode.
12693 (movsi_update_stack): Fix condition.
12694 (*movhi_update1): Use Pmode. Fix argument to
12695 avoiding_indexed_address_p.
12696 (*movhi_update2): Ditto.
12697 (*movhi_update3): Ditto.
12698 (*movhi_update4): Ditto.
12699 (*movqi_update1): Ditto.
12700 (*movqi_update2): Ditto.
12701 (*movqi_update3): Ditto.
12702 (*movsf_update1, *movdf_update1): Merge, rename to...
12703 (*mov<mode>_update1): This. Use Pmode. Fix argument to
12704 avoiding_indexed_address_p. Add "size" attribute.
12705 (*movsf_update2, *movdf_update2): Merge, rename to...
12706 (*mov<mode>_update2): This. Ditto.
12707 (*movsf_update3): Use Pmode. Fix argument to
12708 avoiding_indexed_address_p.
12709 (*movsf_update4): Ditto.
12710 (allocate_stack): Simplify condition. Adjust pattern names.
12711
12712 2019-04-17 Jakub Jelinek <jakub@redhat.com>
12713
12714 PR target/89093
12715 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
12716 whitespace at the start of target attribute string.
12717
12718 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
12719
12720 PR target/84369
12721 * config/rs6000/power9.md: Add store forwarding bypass.
12722
12723 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
12724
12725 PR debug/89528
12726 * valtrack.c (dead_debug_insert_temp): Reset debug references
12727 to the return value of a call being removed.
12728
12729 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12730
12731 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
12732 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
12733 implement target hook.
12734 (arc_memory_move_cost): New function.
12735 (TARGET_REGISTER_MOVE_COST): Define.
12736 (TARGET_MEMORY_MOVE_COST): Likewise.
12737 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
12738 (MEMORY_MOVE_COST): Likewise.
12739
12740 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12741
12742 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
12743 (sibcall_value_insn): Likewise.
12744 * config/arc/constraints.md (Rs5): Remove.
12745
12746 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12747
12748 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
12749 for last two fake registers.
12750 (arc_conditional_register_usage): Make sure fake frame and arg
12751 pointer regs are in general regs class.
12752 (FRAME_POINTER_MASK): Remove.
12753 (RETURN_ADDR_MASK): Remove.
12754 (arc_must_save_register): Use hard frame regnum.
12755 (frame_restore_reg): Use hard_frame_pointer_rtx.
12756 (arc_save_callee_saves): Likewise.
12757 (arc_restore_callee_saves): Likewise.
12758 (arc_save_callee_enter): Likewise.
12759 (arc_restore_callee_leave): Likewise.
12760 (arc_save_callee_milli): Likewise.
12761 (arc_eh_return_address_location): Likewise.
12762 (arc_check_multi): Use hard frame regnum.
12763 (arc_can_eliminate): Likewise.
12764 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
12765 for register allocator.
12766 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
12767 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
12768 (FRAME_POINTER_REGNUM): Change it to a fake register.
12769 (HARD_FRAME_POINTER_REGNUM): Defined.
12770 (ARG_POINTER_REGNUM): Change it to a new fake register.
12771 (ELIMINABLE_REGS): Update.
12772 (REGISTER_NAMES): Update names.
12773 * config/arc/arc.md (LP_START): Remove.
12774 (LP_END): Likewise.
12775 (shift_si3_loop): Update pattern.
12776
12777 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
12778
12779 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
12780 to avoid delay slot scheduling.
12781 (arc_must_save_register): Don't save SP.
12782 * config/arc/arc.md (stack_tie): Remove.
12783 (UNSPEC_ARC_STKTIE): Likewise.
12784
12785 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
12786 Shiva Chen <shiva0217@gmail.com>
12787
12788 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
12789 code gen with large shift amount.
12790
12791 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
12792
12793 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
12794 subreg.
12795
12796 2019-04-16 Jakub Jelinek <jakub@redhat.com>
12797
12798 PR target/90096
12799 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
12800 print -m64/-mx32/-m32 if it is true.
12801 (ix86_debug_options, ix86_function_specific_print): Pass true as
12802 ADD_ABI_P to ix86_target_string.
12803 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
12804 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
12805 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
12806
12807 PR rtl-optimization/90082
12808 * dce.c (can_delete_call): New function.
12809 (deletable_insn_p, mark_insn): Use it.
12810
12811 PR tree-optimization/90090
12812 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
12813 throw internally.
12814 (is_division_by_square): Likewise. Formatting fix.
12815
12816 2019-04-16 Richard Biener <rguenther@suse.de>
12817
12818 PR tree-optimization/56049
12819 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
12820 equality check if alias-set zero will prevail.
12821
12822 2019-04-15 Jeff Law <law@redhat.com>
12823
12824 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
12825 size and alignment as unsigned.
12826
12827 2019-04-15 Richard Biener <rguenther@suse.de>
12828
12829 PR debug/90074
12830 * tree-loop-distribution.c (destroy_loop): Preserve correct
12831 debug info.
12832
12833 2019-04-15 Richard Biener <rguenther@suse.de>
12834
12835 PR tree-optimization/90071
12836 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
12837 abnormal operands from def stmts.
12838
12839 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
12840
12841 PR rtl-optimization/89794
12842 * combine.c (count_auto_inc): New function.
12843 (try_combine): Count how many auto_inc expressions there were in the
12844 original instructions. Ensure we have the same number in the new
12845 instructions. Remove the code that tried to ensure auto_inc side
12846 effects on i1 and i0 are not lost.
12847
12848 2019-04-15 Richard Biener <rguenther@suse.de>
12849
12850 PR ipa/88936
12851 * tree.h (auto_var_p): Declare.
12852 * tree.c (auto_var_p): New function, split out from ...
12853 (auto_var_in_fn_p): ... here.
12854 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
12855 member.
12856 (new_var_info): Initialize it.
12857 (set_uids_in_ptset): Also set the shadow variable uid if required.
12858 (ipa_pta_execute): Postprocess points-to solutions assigning
12859 shadow variable uids for locals that may reach their containing
12860 function recursively.
12861 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
12862 assert but instead check whether the points-to solution is
12863 a singleton.
12864
12865 2019-04-15 Martin Jambor <mjambor@suse.cz>
12866
12867 PR ipa/pr89693
12868 * cgraph.c (clone_of_p): Loop over clone chain for each step in
12869 the thunk chain.
12870
12871 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
12872
12873 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
12874
12875 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
12876 Kito Cheng <kito.cheng@gmail.com>
12877 Shiva Chen <shiva0217@gmail.com>
12878
12879 * config/nds32/nds32-md-auxiliary.c
12880 (nds32_legitimize_pic_address): Use new PIC pattern.
12881 (nds32_legitimize_tls_address): Use new TLS pattern.
12882 (nds32_output_symrel): New.
12883 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
12884 (nds32_alloc_relax_group_id): Ditto.
12885 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
12886 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
12887 relax_group_id.
12888 (nds32_group_tls_insn): Ditto.
12889 (nds32_group_float_insns): Ditto.
12890 * config/nds32/nds32.md (tls_le): New.
12891 (sym_got): Ditto.
12892
12893 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
12894
12895 * configure: Add nds32 target for dwarf2 debug_line checking.
12896 * configure.ac: Regenerated.
12897
12898 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
12899
12900 PR lto/89358
12901 * ipa-devirt.c (skip_in_fields_list_p): New.
12902 (odr_types_equivalent_p): Use it.
12903
12904 2019-04-13 Jakub Jelinek <jakub@redhat.com>
12905
12906 PR target/89093
12907 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
12908 instead of strncmp when checking for thumb and arm. Formatting fixes.
12909
12910 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
12911
12912 * doc/install.texi: Document --with-target-system-zlib.
12913
12914 2019-04-12 Martin Sebor <msebor@redhat.com>
12915
12916 PR c/88383
12917 PR c/89288
12918 PR c/89798
12919 PR c/89797
12920 * targhooks.c (default_vector_alignment): Avoid assuming
12921 argument fits in SHWI.
12922 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
12923 a shift expression.
12924 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
12925
12926 2019-04-12 Jakub Jelinek <jakub@redhat.com>
12927
12928 PR rtl-optimization/89965
12929 * dce.c: Include rtl-iter.h.
12930 (struct check_argument_load_data): New type.
12931 (check_argument_load): New function.
12932 (find_call_stack_args): Check for loads from stack slots still tracked
12933 in sp_bytes and punt if any is found.
12934
12935 * config/mips/loongson-mmiintrin.h: Fix up #error message.
12936
12937 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
12938
12939 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
12940 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
12941
12942 2019-04-12 Martin Liska <mliska@suse.cz>
12943
12944 PR middle-end/89970
12945 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
12946 in error message.
12947 (separate_attrs): Handle multiple 'default's.
12948 (expand_target_clones): Rework error handling code.
12949
12950 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
12951
12952 PR target/87532
12953 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
12954 mode of vector rather than mode of destination for move instruction.
12955 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
12956 Use QI inner mode with V16QI vector mode.
12957
12958 2019-04-12 Jakub Jelinek <jakub@redhat.com>
12959
12960 PR target/52726
12961 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
12962 "invalid %%t operand" in output_operand_lossage message.
12963
12964 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
12965
12966 * config/s390/predicates.md (permute_pattern_operand): New
12967 predicate.
12968 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
12969 operand for the permute pattern.
12970 ("*vec_perm<mode>"): New insn definition.
12971 ("bswap<mode>"): Generate the permute pattern operand in the
12972 expander and perform the operand reloads for pre arch13 level
12973 already.
12974 ("*bswap<mode>_emu"): Rename to ...
12975 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
12976 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
12977 Add the USE operand for the permute pattern.
12978 ("*vec_set_bswap_vec<mode>"): Likewise.
12979
12980 2019-04-12 Jakub Jelinek <jakub@redhat.com>
12981
12982 PR c/89946
12983 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
12984 and gcc_unreachable if it fails, just call tree_to_uhwi which
12985 verifies that too. Test TREE_CHAIN instead of list_length > 1.
12986 Start warning message with a lower-case letter. Formatting fixes.
12987
12988 PR rtl-optimization/90026
12989 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
12990 successors, look for BARRIERs inside of the whole BB_FOOTER chain
12991 rather than just at the start of it. If e->src BB_FOOTER is not NULL
12992 in cfglayout mode, use emit_barrier_after_bb.
12993
12994 2018-04-11 Steve Ellcey <sellcey@marvell.com>
12995
12996 PR rtl-optimization/87763
12997 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
12998 New Instruction.
12999
13000 2019-04-11 Tom de Vries <tdevries@suse.de>
13001
13002 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
13003 max macro using statement expression.
13004
13005 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
13006
13007 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
13008 * xcoffout.c (xcoff_private_rodata_section_name): Define.
13009 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
13010 read_only_private_data_section using xcoff_private_rodata_section_name.
13011 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
13012
13013 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
13014
13015 PR target/90016
13016 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
13017
13018 2019-04-11 Jakub Jelinek <jakub@redhat.com>
13019
13020 PR rtl-optimization/89965
13021 * dce.c (sp_based_mem_offset): New function.
13022 (find_call_stack_args): Use sp_based_mem_offset.
13023
13024 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
13025
13026 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
13027
13028 2019-04-11 Richard Biener <rguenther@suse.de>
13029
13030 PR tree-optimization/90020
13031 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
13032 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
13033 * tree-ssa-pre.c (compute_avail): Use it to not put
13034 possibly trapping references after a call that might not
13035 return into EXP_GEN.
13036 * gcse.c (compute_hash_table_work): Do not elide
13037 marking a block containing a call if the call might not
13038 return.
13039
13040 2019-04-11 Richard Biener <rguenther@suse.de>
13041
13042 PR tree-optimization/90018
13043 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
13044 Test both SLP and interleaving variants.
13045
13046 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
13047
13048 * config/s390/8561.md: New file.
13049 * config/s390/driver-native.c (s390_host_detect_local_cpu):
13050 Add arch13 cpu model.
13051 * config/s390/s390-opts.h (enum processor_type): Likewise.
13052 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
13053 (s390_get_unit_mask): Likewise.
13054 (s390_is_fpd): Likewise.
13055 (s390_is_fxd): Likewise.
13056 * config/s390/s390.h (s390_tune_attr): Likewise.
13057 * config/s390/s390.md: Include arch13 pipeline description.
13058 * config/s390/s390.opt: Add arch13.
13059
13060 2018-04-10 Steve Ellcey <sellcey@marvell.com>
13061
13062 PR rtl-optimization/87763
13063 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
13064 New prototype.
13065 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
13066 New function.
13067 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
13068 New instruction.
13069 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
13070 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
13071 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
13072 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
13073
13074 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
13075
13076 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
13077 "Although" in -fipa-icf documentation.
13078
13079 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
13080 of using multiple -g options.
13081
13082 2019-04-10 Martin Liska <mliska@suse.cz>
13083
13084 PR gcov-profile/89959
13085 * doc/gcov.texi: Make documentation of -x option
13086 more precise.
13087
13088 2019-04-10 Richard Biener <rguenther@suse.de>
13089
13090 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
13091 member.
13092 (DR_GROUP_SAME_DR_STMT): Remove.
13093 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
13094 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
13095 replace with assert.
13096 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
13097 (vect_record_grouped_load_vectors): Remove unreachable code.
13098
13099 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
13100
13101 PR target/90016
13102 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
13103 obsolete reference to N.
13104
13105 2019-04-10 Jakub Jelinek <jakub@redhat.com>
13106
13107 PR middle-end/90025
13108 * expr.c (store_expr): Set properly size on the MEM passed to
13109 clear_storage.
13110
13111 PR c++/90010
13112 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
13113 with strlen in between hostsz-3 and hostsz-1 inclusive when no
13114 translation is needed, and when translation is needed, only append
13115 ... if the string length is hostsz or more bytes long. Avoid using
13116 strncpy or strcat.
13117
13118 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
13119
13120 PR target/90024
13121 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
13122 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
13123 into three.
13124 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
13125 differences directly.
13126 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
13127
13128 2019-04-09 Jakub Jelinek <jakub@redhat.com>
13129
13130 PR translation/90011
13131 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
13132 from diagnostics.
13133 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
13134 diagnostics.
13135 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
13136 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
13137 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
13138 trailing space from -gsplit-dwarf diagnostics.
13139
13140 PR tree-optimization/89998
13141 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
13142 instead of integer_type_node if possible, don't add ranges if return
13143 type is not compatible with int.
13144 * gimple-fold.c (gimple_fold_builtin_sprintf,
13145 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
13146 integer_type_node.
13147
13148 2019-04-09 Martin Liska <mliska@suse.cz>
13149
13150 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
13151 * doc/install.texi: Document the new config.
13152
13153 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
13154
13155 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
13156 use gimple_expr_type for load and store calls. Skip over the
13157 condition argument in a conditional internal function.
13158 Protect use of TREE_INT_CST_LOW.
13159
13160 2019-04-09 Jakub Jelinek <jakub@redhat.com>
13161
13162 PR target/90015
13163 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
13164 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
13165 trailing period from it too.
13166
13167 2019-04-08 wu yuan <wuyuan5@huawei.com>
13168
13169 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
13170 * config/aarch64/aarch64.md : Add "tsv110.md"
13171 * config/aarch64/tsv110.md: New file.
13172
13173 2019-04-08 Richard Biener <rguenther@suse.de>
13174
13175 PR tree-optimization/90006
13176 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
13177 calls like lrint.
13178
13179 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
13180
13181 PR target/83033
13182 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
13183 construction.
13184 (fma_root_node): Likewise.
13185 (func_fma_steering): Likewise.
13186
13187 2019-04-08 Jakub Jelinek <jakub@redhat.com>
13188
13189 PR rtl-optimization/89865
13190 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
13191
13192 PR rtl-optimization/89865
13193 * config/i386/i386.md
13194 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
13195 numbers not to clash with the additional operands[4].
13196 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
13197 with extra register copy in the middle.
13198
13199 2019-04-08 Martin Liska <mliska@suse.cz>
13200
13201 PR gcov-profile/89961
13202 * doc/gcov.texi: Document data_file.
13203 * gcov.c (generate_results): Add data_info into JSON output.
13204
13205 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
13206
13207 PR tree-optimization/89725
13208 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
13209 loop's chrec as invariant symbol.
13210 * tree-chrec.h (chrec_contains_symbols): New parameter.
13211 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
13212 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
13213 function of loops not in DDR's loop_nest.
13214 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
13215
13216 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
13217
13218 PR target/89623
13219 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
13220 Mask.
13221
13222 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
13223
13224 PR target/89945
13225 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
13226 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
13227
13228 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
13229
13230 * sched-deps.c (sched_macro_fuse_insns): Check return value of
13231 targetm.fixed_condition_code_regs.
13232
13233 2019-04-05 Richard Biener <rguenther@suse.de>
13234
13235 PR debug/89892
13236 PR debug/89905
13237 * tree-cfgcleanup.c (remove_forwarder_block): Always move
13238 debug bind stmts but reset them if they are not valid at the
13239 destination.
13240
13241 2019-04-05 Martin Liska <mliska@suse.cz>
13242
13243 PR translation/89936
13244 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
13245 order to wrap keywords or arguments.
13246 * collect2.c (main): Likewise.
13247 (scan_prog_file): Likewise.
13248 (scan_libraries): Likewise.
13249 * common/config/riscv/riscv-common.c
13250 (riscv_subset_list::parsing_subset_version): Likewise.
13251 (riscv_subset_list::parse_std_ext): Likewise.
13252 * config/aarch64/aarch64.c (aarch64_override_options_internal):
13253 Likewise.
13254 * config/arm/arm.c (arm_option_override): Likewise.
13255 * config/cris/cris.c (cris_print_operand): Likewise.
13256 * config/darwin-c.c (darwin_pragma_options): Likewise.
13257 (darwin_pragma_unused): Likewise.
13258 (darwin_pragma_ms_struct): Likewise.
13259 * config/ft32/ft32.c (ft32_print_operand): Likewise.
13260 * config/i386/i386.c (print_reg): Likewise.
13261 (ix86_print_operand): Likewise.
13262 * config/i386/xm-djgpp.h: Likewise.
13263 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
13264 * config/m32c/m32c.c (m32c_option_override): Likewise.
13265 * config/msp430/msp430.c (msp430_option_override): Likewise.
13266 * config/nds32/nds32.c (nds32_option_override): Likewise.
13267 * config/nvptx/mkoffload.c (main): Likewise.
13268 * config/rx/rx.c (rx_print_operand): Likewise.
13269 (valid_psw_flag): Likewise.
13270 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
13271 (vms_pragma_nomember_alignment): Likewise.
13272 (vms_pragma_extern_model): Likewise.
13273 * lto-wrapper.c (compile_offload_image): Likewise.
13274 * omp-offload.c (oacc_parse_default_dims): Likewise.
13275 * symtab.c (symtab_node::verify_base): Likewise.
13276 * tlink.c (recompile_files): Likewise.
13277 (start_tweaking): Likewise.
13278 * tree-profile.c (parse_profile_filter): Likewise.
13279
13280 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
13281
13282 PR tree-optimization/89956
13283 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
13284 multiple negates of the same value.
13285
13286 2019-04-04 Martin Sebor <msebor@redhat.com>
13287
13288 PR middle-end/89957
13289 PR middle-end/89911
13290 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
13291 have the same precision since the function crashes otherwise.
13292 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
13293 has non-zero arguments.
13294
13295 2019-04-04 Martin Sebor <msebor@redhat.com>
13296
13297 PR middle-end/89934
13298 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
13299 out if the number of arguments is less than expected.
13300
13301 2019-04-04 Jeff Law <law@redhat.com>
13302
13303 PR rtl-optimization/89399
13304 * ree.c (combine_set_extension): Use single_set rather than
13305 digging into PATTERN for items on the candidate list.
13306 (combine_reaching_defs): Likewise.
13307
13308 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
13309
13310 PR rtl-optimization/46590
13311 * loop-invariant.c (find_defs): Move df_remove_problem and
13312 df_process_deferred_rescans to move_invariants.
13313 Move df_live_add_problem and df_live_set_all_dirty calls
13314 to move_invariants.
13315 (move_invariants): Likewise.
13316 (move_loop_invariants): Likewise, making the df_live calls
13317 conditional on -O. Remove the problem again if we added it
13318 locally.
13319
13320 2019-04-03 qing zhao <qing.zhao@oracle.com>
13321
13322 PR tree-optimization/89730
13323 * ipa-inline.c (can_inline_edge_p): Delete the checking for
13324 -flive-patching=inline-only-static.
13325 (can_inline_edge_by_limits_p): Add the checking for
13326 -flive-patching=inline-only-static and grant always_inline
13327 even when -flive-patching=inline-only-static is specified.
13328
13329 2019-04-03 Jeff Law <law@redhat.com>
13330
13331 PR rtl-optimization/81025
13332 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
13333
13334 2019-04-03 Richard Biener <rguenther@suse.de>
13335
13336 PR tree-optimization/84101
13337 * tree-vect-stmts.c: Include explow.h for hard_function_value,
13338 regs.h for hard_regno_nregs.
13339 (cfun_returns): New helper.
13340 (vect_model_store_cost): When vectorizing a store to a decl
13341 we return and the function ABI returns in a multi-reg location
13342 account for the possible spilling that will happen.
13343
13344 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
13345
13346 * config/s390/s390.c (s390_legitimate_address_p): Reject long
13347 displacement addresses for vector mode operands.
13348
13349 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
13350
13351 * config/arc/arc.c (GMASK_LEN): Define.
13352 (arc_restore_callee_saves): Restore first blink when
13353 !optimize_size.
13354
13355 2019-04-03 Sudakshina Das <sudi.das@arm.com>
13356
13357 * doc/extend.texi: Add deprecated comment on sign-return-address
13358 function attribute and add mbranch-protection.
13359 * doc/invoke.texi: Add bti to the options for mbranch-protection.
13360
13361 2019-04-03 Richard Biener <rguenther@suse.de>
13362
13363 PR lto/89896
13364 * lto-wrapper.c (run_gcc): Avoid implicit rules making
13365 the all target phony.
13366
13367 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
13368
13369 PR target/89902
13370 PR target/89903
13371 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
13372 Return false for variable DImode shifts.
13373 (dimode_scalar_chain::compute_convert_gain): Do not handle
13374 register count operand in variable DImode shifts.
13375 (dimode_scalar_chain::make_vector_copies): Remove support to copy
13376 count argument of a variable shift instruction to a vector register.
13377 (dimode_scalar_chain::convert_reg): Remove support to convert
13378 count argument of a variable shift instruction.
13379
13380 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
13381
13382 PR rtl-optimization/84206
13383 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
13384 iterating over loop headers.
13385
13386 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
13387
13388 PR rtl-optimization/85876
13389 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
13390 beyond the original fence.
13391
13392 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
13393
13394 * config.gcc: Mark spu* targets as deprecated/obsolete.
13395
13396 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13397
13398 * config/s390/s390-builtin-types.def: New builtin function type
13399 definitions. Remove unused types.
13400 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
13401 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
13402 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
13403 overloaded builtins.
13404 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
13405 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
13406 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
13407 (vec_double, vec_signed, vec_unsigned): Define to use the new
13408 overloaded builtins.
13409 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
13410 Remove expanders.
13411
13412 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13413
13414 * config/s390/s390-builtin-types.def: New builtin function type
13415 definitions.
13416 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
13417 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
13418 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
13419 (s390_vstrszh, s390_vstrszf): New low-level builtins.
13420 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
13421 constant definitions.
13422 * config/s390/vecintrin.h (vec_search_string_cc)
13423 (vec_search_string_until_zero_cc): New builtin name definitions.
13424 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
13425 expanders.
13426 ("vec_vstrs<mode>"): New insn definition.
13427
13428 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13429
13430 * config/s390/s390-builtin-types.def: Add new builtin function
13431 types.
13432 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
13433 New overloaded builtins.
13434 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
13435 s390_vsrd.
13436 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
13437 (UNSPEC_VEC_SLDBYTE): ... this.
13438 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
13439 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
13440 definitions.
13441 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
13442 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
13443 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
13444
13445 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13446
13447 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
13448 New insn definition.
13449 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
13450 * config/s390/vector.md (V_HW_HSD): ... here.
13451
13452 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13453
13454 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
13455 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
13456 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
13457 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
13458 New insn definitions.
13459
13460 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13461
13462 * config/s390/s390-builtin-types.def: Add new builtin function type.
13463 * config/s390/s390-builtins.def: Add overloaded builtin
13464 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
13465 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
13466 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
13467 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
13468 ("eltswap<mode>"): New expander.
13469 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
13470 insn definitions.
13471
13472 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13473
13474 * config/s390/s390-builtin-types.def: Add new builtin function types.
13475 * config/s390/s390-builtins.def: Add overloaded builtin
13476 s390_vec_revb. Add low-level builtins for vlbr and vstbr
13477 instructions.
13478 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
13479 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
13480 ("bswap<mode>"): New expander.
13481 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
13482
13483 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13484
13485 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
13486 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
13487 vector builtin version number in __VEC__.
13488
13489 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13490
13491 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
13492 iterators.
13493 (SFSI): New mode attribute.
13494 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
13495 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
13496 rename to ...
13497 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
13498 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
13499 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
13500 ("floatsi<mode>2"): Add wcefb instruction.
13501
13502 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13503
13504 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
13505 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
13506 mode iterators.
13507 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
13508 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
13509 support 32 bit fp-int conversions. Rename to ...
13510 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
13511 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
13512 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
13513 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
13514 ... to these.
13515
13516 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13517
13518 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
13519 if-then-else constructs if we can use the select instruction.
13520 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
13521
13522 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13523
13524 * config/s390/s390.md ("*popcountdi_arch13_cc")
13525 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
13526 definition.
13527 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
13528 Append _z196 to make it ...
13529 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
13530 ("popcounthi2_z196"): ... this.
13531 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
13532 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
13533
13534 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13535
13536 * config/s390/s390.c (s390_canonicalize_comparison): Convert
13537 certain compares for arch13 in order to make use of the condition
13538 code result produced by the new instructions.
13539 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
13540 nxrk, and nxgrk instruction patterns.
13541 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
13542 (inv_no): Add new code iterator together with some attributes.
13543 ("*andc_split_<mode>"): Disable splitter for arch13.
13544 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
13545 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
13546 ("*<ANDOR:bitops_name>c<GPR:mode>")
13547 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
13548 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
13549 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
13550 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
13551
13552 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
13553
13554 * common/config/s390/s390-common.c (processor_flags_table): New
13555 entry for arch13.
13556 * config.gcc: Support arch13 with the --with-arch= configure flag.
13557 * config/s390/driver-native.c (s390_host_detect_local_cpu):
13558 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
13559 * config/s390/s390.c (s390_get_sched_attrmask)
13560 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
13561 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
13562 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
13563 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
13564 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
13565 definitions.
13566 * config/s390/s390.opt: Support arch13 as processor type in
13567 command line options.
13568
13569 2019-04-02 Martin Liska <mliska@suse.cz>
13570
13571 PR translation/89912
13572 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
13573 Fix param description of graphite-max-arrays-per-scop.
13574
13575 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
13576
13577 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
13578 (ASAN_CC1_SPEC): Use it in 64-bit mode.
13579 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
13580
13581 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
13582
13583 PR rtl-optimization/85412
13584 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
13585 sel_sched_region_1, not after.
13586
13587 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
13588
13589 PR rtl-optimization/86928
13590 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
13591 compute_live if necessary.
13592 (sel_redirect_edge_and_branch): Likewise.
13593
13594 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
13595
13596 PR rtl-optimization/89865
13597 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
13598 register if it is a part of small class.
13599
13600 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
13601
13602 PR rtl-optimization/87273
13603 * sel-sched-ir.c (merge_fences): Remove assert.
13604
13605 2019-04-01 Richard Biener <rguenther@suse.de>
13606
13607 PR tree-optimization/46590
13608 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
13609 (dom_walker::m_reachability): Add in place of...
13610 (dom_walker::m_skip_unreachable_blocks): ...this.
13611 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
13612 Move complex initialization ...
13613 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
13614 lazily and initialize edge flags on each invocation.
13615 (dom_walker::bb_reachable): Use m_reachability.
13616
13617 2019-04-01 Martin Liska <mliska@suse.cz>
13618
13619 PR driver/89861
13620 * opt-suggestions.c (option_proposer::build_option_suggestions):
13621 Add variant without any argument in order to provide better
13622 hints.
13623
13624 2019-04-01 Richard Biener <rguenther@suse.de>
13625
13626 PR c/71598
13627 * gimple.c: Include langhooks.h.
13628 (gimple_get_alias_set): Treat enumeral types as the underlying
13629 integer type.
13630
13631 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
13632 Eric Botcazou <ebotcazou@adacore.com>
13633
13634 PR rtl-optimization/89862
13635 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
13636 that operates on the full registers for WORD_REGISTER_OPERATIONS
13637 architectures.
13638
13639 2019-03-29 Jim Wilson <jimw@sifive.com>
13640
13641 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
13642 Clear MASK_RVC and then set if C subset supported.
13643
13644 2019-03-29 Jakub Jelinek <jakub@redhat.com>
13645
13646 PR c/89872
13647 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
13648 non-addressable complit into its initializer if it is volatile.
13649
13650 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
13651
13652 * opts-common.c (integral_argument): Set errno properly in one case.
13653
13654 2019-03-29 Martin Liska <mliska@suse.cz>
13655
13656 * doc/invoke.texi: Remove -Wchkp from documentation.
13657
13658 2019-03-29 Martin Liska <mliska@suse.cz>
13659
13660 * dbgcnt.c (print_limit_reach): New function.
13661 (dbg_cnt): Use it.
13662
13663 2019-03-29 Martin Liska <mliska@suse.cz>
13664
13665 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
13666 (dbg_cnt_process_opt): Parse first tokens aas
13667 dbg_cnt_process_single_pair is also using strtok.
13668
13669 2019-03-29 Jakub Jelinek <jakub@redhat.com>
13670
13671 PR rtl-optimization/87485
13672 * function.c (expand_function_end): Move stack_protect_epilogue
13673 before loading of return value into hard register(s).
13674
13675 2019-03-28 Jakub Jelinek <jakub@redhat.com>
13676
13677 PR middle-end/89621
13678 * tree-inline.h (struct copy_body_data): Add
13679 dont_remap_vla_if_no_change flag.
13680 * tree-inline.c (remap_type_3, remap_type_2): New functions.
13681 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
13682 and remap_type_2 returns false.
13683 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
13684 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
13685 only from where it is copied to nested contexts.
13686
13687 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
13688
13689 PR target/89865
13690 * config/i386/i386.md (RMW operation with LEA peephole):
13691 Use LEAMODE mode attribute instead of SWI mode iterator for
13692 LEA pattern.
13693
13694 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
13695
13696 PR target/89848
13697 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
13698 Also process XEXP (src, 0) of a shift insn.
13699
13700 2019-03-28 David Malcolm <dmalcolm@redhat.com>
13701
13702 PR middle-end/89725
13703 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
13704 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
13705
13706 2019-03-28 Jakub Jelinek <jakub@redhat.com>
13707
13708 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
13709 test.
13710 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
13711 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
13712 immediately after first one with df_analyze in between, but rather
13713 process all bbs, queueing ones that need second pass in a worklist,
13714 df_analyze, process queued debug insn changes and if second pass is
13715 needed, process bbs from worklist, df_analyze, process queued debug
13716 insns again.
13717
13718 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
13719 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
13720 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
13721
13722 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
13723
13724 PR c/79022
13725 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
13726 definition.
13727
13728 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
13729
13730 PR target/85667
13731 * config/i386/i386.c (ix86_function_value_1): Call the newly added
13732 function for 32-bit MS_ABI.
13733 (function_value_ms_32): New function.
13734
13735 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
13736
13737 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
13738 (movdi): Call gen_movdi_symbol_save_scc.
13739 (gen_movdi_symbol_save_scc): New insn and split.
13740
13741 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
13742
13743 PR rtl-optimization/89313
13744 * function.c (matching_constraint_num): New static function.
13745 (match_asm_constraints_1): Use it. Fixup white space and comment.
13746 Don't replace inputs with non-matching constraints which conflict
13747 with early clobber outputs.
13748
13749 2019-03-27 Jeff Law <law@redhat.com>
13750
13751 PR rtl-optimization/87761
13752 PR rtl-optimization/89826
13753 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
13754 slightly later.
13755 (pass_cprop_hardreg::execute): Call df_analyze after adding the
13756 note problem to get REG_DEAD/REG_UNUSED notes updated.
13757
13758 2019-03-27 Richard Biener <rguenther@suse.de>
13759
13760 PR tree-optimization/89463
13761 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
13762 queue edges to remove.
13763 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
13764 dead stmts. Delay edge removal until PHIs are removed to
13765 make debug-stmt creation not confused by seemingly degenerate
13766 PHIs.
13767
13768 2019-03-27 Alan Modra <amodra@gmail.com>
13769
13770 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
13771 throughout file.
13772 * config/rs6000/darwin.h: Likewise.
13773 * config/rs6000/rs6000.c: Likewise.
13774
13775 2019-03-27 Alan Modra <amodra@gmail.com>
13776
13777 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
13778 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
13779
13780 2019-03-26 Andrew Waterman <andrew@sifive.com>
13781 Jim Wilson <jimw@sifive.com>
13782
13783 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
13784 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
13785 (generic_idivdi, generic_fmul_single, generic_fmul_double)
13786 (generic_fdiv, generic_fsqrt): Add check for generic tune.
13787 (generic_alu): Add auipc to type list.
13788 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
13789 (riscv_microarchitecture): Declare.
13790 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
13791 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
13792 field.
13793 (riscv_microarchitecture): New.
13794 (sifive_7_tune_info): New.
13795 (riscv_cpu_info_table): Add microarchitecture value for rocket and
13796 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
13797 entries.
13798 (riscv_store_data_bypass_p): New.
13799 (riscv_option_override): Set riscv_microarchitecture from
13800 cpu->microarchitecture.
13801 * config/riscv/riscv.md: Include sifive-7.md.
13802 (type): Add auipc.
13803 (tune): New.
13804 (auipc<mode>): Change type to auipc.
13805 (restore_stack_nonlocal): New.
13806 * config/riscv/sifive-7.md: New.
13807 * doc/invoke.texi (RISC-V Options): Update mtune docs.
13808
13809 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
13810
13811 PR target/89827
13812 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
13813 Also process XEXP (src, 0) of a shift insn.
13814
13815 2019-03-26 Richard Biener <rguenther@suse.de>
13816
13817 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
13818 (copy_debug_stmt): Likewise.
13819 (expand_call_inline): Likewise.
13820 (copy_bb): Avoid redundant lookup & set of gimple_block.
13821 * gimple-low.c (lower_gimple_return): Likewise.
13822 (lower_builtin_setjmp): Likewise.
13823
13824 2019-03-26 Jakub Jelinek <jakub@redhat.com>
13825
13826 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
13827 is constant 0, turn into static const data member initialized to false.
13828 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
13829 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
13830
13831 2019-03-26 Jason Merrill <jason@redhat.com>
13832 Jakub Jelinek <jakub@redhat.com>
13833
13834 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
13835 method.
13836 (mem_alloc_description::release_object_overhead): Fix comment typos.
13837 * hash-table.h (hash_table::~hash_table): Call
13838 release_instance_overhead only if m_entries is non-NULL, otherwise
13839 call unregister_descriptor.
13840
13841 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
13842
13843 PR tree-optimization/81740
13844 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
13845 In case of outer loop vectorization, check for backward dependence
13846 at the inner loop if outer loop dependence is reversed.
13847
13848 2019-03-26 Alan Modra <amodra@gmail.com>
13849
13850 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
13851 rs6000_vector_mem init. Correct wI and wJ comment.
13852
13853 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
13854
13855 PR rtl-optimization/88347
13856 PR rtl-optimization/88423
13857 * sched-deps.c (sched_analyze_insn): Take into account that for
13858 tablejumps the barrier appears after a label and a jump_table_data.
13859
13860 2019-03-25 Martin Sebor <msebor@redhat.com>
13861
13862 PR c/89812
13863 * c-common.c (check_user_alignment): Rename local. Correct maximum
13864 alignment in diagnostic. Avoid assuming argument fits in SHWI,
13865 convert it to UHWI when it fits.
13866
13867 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
13868
13869 PR debug/86964
13870 * dwarf2out.c (premark_used_variables): New function.
13871 (prune_unused_types_walk): Do not mark not premarked external
13872 variables.
13873 (prune_unused_types): Call premark_used_variables.
13874
13875 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
13876
13877 PR rtl-optimization/89676
13878 * lra-constraints.c (curr_insn_transform): Do match reload for
13879 early clobbers when the match was successful only for different
13880 registers.
13881
13882 2019-03-25 Martin Sebor <msebor@redhat.com>
13883
13884 * doc/extend.texi (Common Type Attributes): Document vector_size.
13885 (Common Variable Attributes): Mention size constraint. Correct
13886 quoting and typos.
13887 (Vector Extensions): Use @dfn when defining bas type. Clarify
13888 base type and size constraints.
13889
13890 2019-03-25 Richard Biener <rguenther@suse.de>
13891
13892 PR tree-optimization/89789
13893 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
13894 changes from non-undefined back to undefined.
13895
13896 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
13897
13898 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
13899 heap string and a gc string, but since this variable is unknown to
13900 ggc the gc string might get reused and corrupted. Fixed by always
13901 using a heap string.
13902
13903 2019-03-25 Richard Biener <rguenther@suse.de>
13904
13905 PR tree-optimization/89779
13906 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
13907 to remove IV defs, delay actual removal.
13908 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
13909 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
13910 very end, properly also reset loop control IV information.
13911
13912 2019-03-25 Richard Biener <rguenther@suse.de>
13913
13914 PR tree-optimization/89802
13915 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
13916 move EH data to folded stmt.
13917
13918 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
13919
13920 * config/s390/s390-builtin-types.def: Remove few unused types and
13921 fix sort order for others.
13922
13923 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
13924
13925 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
13926 expected and found types with -mdebug during builtin matching.
13927
13928 2019-03-25 Richard Biener <rguenther@suse.de>
13929
13930 PR middle-end/89790
13931 * fold-const.c (operand_equal_p): Revert last change with
13932 updated comment.
13933
13934 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
13935
13936 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
13937 notes for the result of the __tls_get_addr calls.
13938 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
13939
13940 2019-03-24 Jeff Law <law@redhat.com>
13941
13942 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
13943
13944 PR rtl-optimization/87761
13945 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
13946 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
13947 as needed.
13948 (pass_cprop_hardreg::execute): Add df note problem and defer insn
13949 rescans. Reprocess blocks as needed, calling df_analyze before
13950 reprocessing. Always call df_analyze before fixing up debug bind
13951 insns.
13952
13953 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
13954
13955 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
13956 big endian.
13957
13958 2019-03-22 Andrew Pinski <apinski@marvell.com>
13959
13960 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
13961 attrribute for uxtw.
13962
13963 2019-03-26 Jeff Law <law@redhat.com>
13964
13965 PR rtl-optimization/87761
13966 * config/mips/mips-protos.h (mips_split_move): Add new argument.
13967 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
13968 (mips_split_move): Accept new INSN argument. Try to forward SRC
13969 into the next instruction.
13970 (mips_split_move_insn): Pass INSN through to mips_split_move.
13971
13972 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
13973
13974 PR rtl-optimization/89676
13975 * lra-constraints.c (curr_insn_transform): Do match reload for
13976 early clobbers even if the match was successful.
13977
13978 2019-03-22 Jakub Jelinek <jakub@redhat.com>
13979
13980 PR c++/87481
13981 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
13982
13983 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
13984
13985 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
13986
13987 2019-03-22 Jakub Jelinek <jakub@redhat.com>
13988
13989 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
13990 <avx512>_fmsub_<mode>_mask3<round_name>,
13991 <avx512>_fnmadd_<mode>_mask3<round_name>,
13992 <avx512>_fnmsub_<mode>_mask3<round_name>,
13993 avx512f_vmfmadd_<mode>_mask3<round_name>,
13994 avx512f_vmfmsub_<mode>_mask3<round_name>,
13995 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
13996 instead of register_operand and %v instead of v for match_operand 1.
13997 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
13998 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
13999 <round_nimm_predicate> instead of register_operand and %v instead of v
14000 for match_operand 1.
14001
14002 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
14003 <avx512>_fmadd_<mode>_mask3<round_name>,
14004 <avx512>_fmsub_<mode>_mask<round_name>,
14005 <avx512>_fmsub_<mode>_mask3<round_name>,
14006 <avx512>_fnmadd_<mode>_mask<round_name>,
14007 <avx512>_fnmadd_<mode>_mask3<round_name>,
14008 <avx512>_fnmsub_<mode>_mask<round_name>,
14009 <avx512>_fnmsub_<mode>_mask3<round_name>,
14010 <avx512>_fmaddsub_<mode>_mask<round_name>,
14011 <avx512>_fmaddsub_<mode>_mask3<round_name>,
14012 <avx512>_fmsubadd_<mode>_mask<round_name>,
14013 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
14014 <round_nimm_predicate> instead of nonimmediate_operand.
14015 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
14016 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
14017 Use register_operand instead of <round_nimm_predicate> for the
14018 operand that needs to match output.
14019 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
14020 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
14021 Likewise. Formatting fixes.
14022
14023 PR target/89784
14024 * config/i386/i386.c (enum ix86_builtins): Remove
14025 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
14026 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
14027 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
14028 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
14029 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
14030 __builtin_ia32_vfmsubss3_mask3): New builtins.
14031 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
14032 avx512f_vmfmadd_<mode>_mask3<round_name>,
14033 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
14034 *avx512f_vmfmsub_<mode>_mask<round_name>,
14035 avx512f_vmfmsub_<mode>_mask3<round_name>,
14036 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
14037 *avx512f_vmfnmadd_<mode>_mask<round_name>,
14038 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
14039 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
14040 *avx512f_vmfnmsub_<mode>_mask<round_name>,
14041 avx512f_vmfnmsub_<mode>_mask3<round_name>,
14042 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
14043 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
14044 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
14045 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
14046 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
14047 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
14048 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
14049 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
14050 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
14051 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
14052 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
14053 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
14054 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
14055 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
14056 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
14057 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
14058 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
14059 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
14060 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
14061 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
14062 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
14063 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
14064
14065 2019-03-21 Martin Sebor <msebor@redhat.com>
14066
14067 PR tree-optimization/89350
14068 * builtins.c (compute_objsize): Also ignore offsets whose upper
14069 bound is negative.
14070 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
14071 (builtin_memref::builtin_memref): Initialize new member.
14072 Allow EXPR to be null.
14073 (builtin_memref::extend_offset_range): Replace local with a member.
14074 Avoid assuming pointer offsets are unsigned.
14075 (builtin_memref::set_base_and_offset): Determine base object
14076 before computing offset range.
14077 (builtin_access::builtin_access): Handle memset.
14078 (builtin_access::generic_overlap): Replace local with a member.
14079 (builtin_access::strcat_overlap): Same.
14080 (builtin_access::overlap): Same.
14081 (maybe_diag_overlap): Same.
14082 (maybe_diag_access_bounds): Same.
14083 (wrestrict_dom_walker::check_call): Handle memset.
14084 (check_bounds_or_overlap): Same.
14085
14086 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
14087 Jakub Jelinek <jakub@redhat.com>
14088
14089 PR lto/89692
14090 * tree.c (fld_type_variant, fld_incomplete_type_of,
14091 fld_process_array_type): Call fld->pset.add and don't call
14092 add_tree_to_fld_list if it returns true.
14093 (free_lang_data_in_type): Similarly with self-recursive call. Purge
14094 non-marked types from TYPE_NEXT_VARIANT list.
14095 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
14096
14097 2019-03-21 Jakub Jelinek <jakub@redhat.com>
14098
14099 * hash-table.h (hash_table): Add Lazy template parameter defaulted
14100 to false, if true, don't alloc_entries during construction, but defer
14101 it to the first method that needs m_entries allocated.
14102 (hash_table::hash_table, hash_table::~hash_table,
14103 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
14104 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
14105 hash_table::clear_slot, hash_table::traverse_noresize,
14106 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
14107 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
14108 false.
14109 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
14110 NO_INSERT instead of find_with_hash.
14111 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
14112 hash_set::m_table): Add Lazy to template params of hash_table.
14113 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
14114 * attribs.c (test_attribute_exclusions): Likewise.
14115 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
14116 hash_set. Add tests for hash_set with Lazy = true.
14117
14118 2019-03-21 Richard Biener <rguenther@suse.de>
14119
14120 PR tree-optimization/89779
14121 * tree.c (tree_nop_conversion): Consolidate and fix defensive
14122 checks with respect to released SSA names now having error_mark_node
14123 type.
14124 * fold-const.c (operand_equal_p): Likewise.
14125
14126 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
14127
14128 PR target/89775
14129 * config/s390/s390.c (global_not_special_regno_p): Move to make it
14130 available to ...
14131 (s390_optimize_register_info): Use global_not_special_regno_p to
14132 check for global regs.
14133
14134 2019-03-20 Jakub Jelinek <jakub@redhat.com>
14135
14136 PR target/89752
14137 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
14138 update this_alternative nor this_alternative_set.
14139
14140 2019-03-19 Jim Wilson <jimw@sifive.com>
14141
14142 PR target/89411
14143 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
14144 align, size, offset. Use them to handle a BLKmode reference. Update
14145 comment.
14146 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
14147
14148 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14149
14150 PR rtl-optimization/89768
14151 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
14152 instead of GEN_INT.
14153 (unroll_loop_runtime_iterations): Likewise.
14154
14155 2019-03-19 Martin Sebor <msebor@redhat.com>
14156
14157 PR tree-optimization/89644
14158 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
14159 rather than endptr as an indicator of nul-termination.
14160
14161 PR tree-optimization/89644
14162 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
14163 arrays in determining sequence sizes in strncpy and stpncpy.
14164
14165 2019-03-19 Martin Liska <mliska@suse.cz>
14166
14167 PR middle-end/89737
14168 * predict.c (combine_predictions_for_bb): Empty likely_edges and
14169 unlikely_edges if there's an edge that belongs to both these sets.
14170
14171 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
14172
14173 PR target/89746
14174 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
14175 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
14176 go via a stack temporary.
14177
14178 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14179
14180 PR target/89378
14181 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
14182 instead of gen_rtx_SUBREG.
14183 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
14184
14185 2019-03-19 Richard Biener <rguenther@suse.de>
14186
14187 PR debug/88389
14188 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
14189
14190 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
14191
14192 PR lto/87809
14193 PR lto/89335
14194 * tree.c (free_lang_data_in_decl): Do not free context of C++
14195 destrutors.
14196
14197 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14198
14199 PR target/89506
14200 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
14201 subs for the first alternative except when operands[3] is 1.
14202
14203 PR target/89752
14204 * gimplify.c (gimplify_asm_expr): For output argument with
14205 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
14206 diagnose error.
14207
14208 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
14209
14210 PR rtl-optimization/89753
14211 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
14212 explicit unrolling factor even more robust.
14213
14214 2019-03-19 Jakub Jelinek <jakub@redhat.com>
14215
14216 PR target/89726
14217 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
14218 compensation use x2 += 1 instead of x2 -= -1 and when honoring
14219 signed zeros, do another copysign after the compensation.
14220
14221 2019-03-18 Martin Sebor <msebor@redhat.com>
14222
14223 PR tree-optimization/89720
14224 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
14225 more conservatively, the same as anti-range.
14226
14227 2019-03-18 Richard Biener <rguenther@suse.de>
14228
14229 PR middle-end/88945
14230 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
14231 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
14232 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
14233 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
14234
14235 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
14236
14237 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
14238 Extend queue to 1024 entries.
14239 Add "consumed" field.
14240 (gomp_print_output): Remove print_index parameter.
14241 Add final parameter.
14242 Change limit to unsigned.
14243 Use consumed field to implement circular buffer.
14244 Detect interrupted print in final pass.
14245 Flush output at the end.
14246 (run): Update gomp_print_output usage.
14247 (main): Initialize kernargs->output_data.consumed.
14248
14249 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
14250
14251 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
14252 calculation of the minimum number of scalar iterations for
14253 fully-predicated loops.
14254
14255 2019-03-18 Martin Jambor <mjambor@suse.cz>
14256
14257 PR tree-optimization/89546
14258 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
14259 any propagation to its children took place.
14260
14261 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
14262
14263 PR target/89627
14264 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
14265 parameter, and make use of it.
14266 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
14267
14268 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14269
14270 * config/arc/arc.opt (mcode-density-frame): Get the inital value
14271 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
14272 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
14273 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
14274 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
14275 match what the ops is doing.
14276 (push_multi_fp_blink): Likewise.
14277 * config/arc/arc.c (arc_override_options): Enable enter/leave when
14278 compiling for size and elf target.
14279 (arc_save_callee_enter): Adjust note to match what enter/leave
14280 operation does.
14281
14282 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14283
14284 * config/arc/arc.md (tst_movb): Fix constraint.
14285
14286 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14287
14288 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
14289
14290 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
14291
14292 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
14293 * config/arc/arc.c (arc_conditional_register_usage): Remove all
14294 reg_alloc_order references.
14295 (size_alloc_order): Define.
14296 (arc_adjust_reg_alloc_order): New function.
14297 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
14298 order.
14299 (ADJUST_REG_ALLOC_ORDER): Define.
14300 (HONOR_REG_ALLOC_ORDER): Likewise.
14301
14302 2019-03-18 Richard Biener <rguenther@suse.de>
14303
14304 PR target/87561
14305 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
14306 loads and stores a bit more.
14307
14308 2019-03-18 Richard Biener <rguenther@suse.de>
14309
14310 PR target/87561
14311 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
14312 load pessimization to stores as well.
14313
14314 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
14315
14316 PR middle-end/86979
14317 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
14318 successor, use NULL as its av set.
14319
14320 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
14321
14322 PR rtl-optimization/89721
14323 * lra-constraints (invariant_p): Return false if side_effects_p holds.
14324
14325 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
14326
14327 PR target/87532
14328 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
14329 When handling vec_extract, use modular arithmetic to allow
14330 constant selectors greater than vector length.
14331 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
14332 V1TImode vectors to have constant selector values greater than 0.
14333 Use modular arithmetic to compute vector index.
14334 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
14335 index for in-memory vectors. Correct code generation for
14336 in-register vectors.
14337 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
14338 compute index.
14339
14340 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
14341
14342 PR c++/88534
14343 PR c++/88537
14344 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
14345 VAR_DECL args.
14346
14347 2019-03-15 Jakub Jelinek <jakub@redhat.com>
14348
14349 PR c++/89709
14350 * tree.c (inchash::add_expr): Strip any location wrappers.
14351 * fold-const.c (operand_equal_p): Move stripping of location wrapper
14352 after hash verification.
14353
14354 PR debug/89704
14355 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
14356 SIGN_EXTEND and ZERO_EXTEND.
14357
14358 2019-03-14 Jason Merrill <jason@redhat.com>
14359 Jakub Jelinek <jakub@redhat.com>
14360
14361 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
14362 than if is_empty (*slot).
14363 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
14364 existing elt and for elt removal.
14365 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
14366 of already removed elt.
14367
14368 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
14369
14370 PR target/89650
14371 * config/i386/i386.c (remove_partial_avx_dependency): Handle
14372 REG_EH_REGION note.
14373
14374 2019-03-14 Martin Liska <mliska@suse.cz>
14375
14376 PR other/89712
14377 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
14378
14379 2019-03-14 Richard Biener <rguenther@suse.de>
14380
14381 PR target/89711
14382 * config/i386/i386.c (make_resolver_func): Properly set
14383 DECL_CONTEXT on the RESULT_DECL.
14384 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
14385
14386 2019-03-14 Richard Biener <rguenther@suse.de>
14387
14388 * gimple-pretty-print.c: Include cfgloop.h.
14389 (dump_gimple_phi): Adjust.
14390 (dump_gimple_bb_header): Dump loop header for GIMPLE.
14391 (pp_cfg_jump): Adjust.
14392 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
14393 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
14394 (lower_phi_internal_fn): Remove.
14395 (verify_gimple_call): Remove IFN_PHI special-casing.
14396 (dump_function_to_file): Dump IL state.
14397 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
14398 done to deal with PHI nodes being present in non-SSA state.
14399
14400 2019-03-14 Jakub Jelinek <jakub@redhat.com>
14401
14402 PR ipa/89684
14403 * multiple_target.c (create_dispatcher_calls): Change
14404 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
14405 In the node->iterate_referring loop, push *ref rather than ref, call
14406 ref->remove_reference () and always pass 0 to iterate_referring.
14407
14408 PR rtl-optimization/89679
14409 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
14410 would contain a paradoxical SUBREG.
14411
14412 2019-03-14 Richard Biener <rguenther@suse.de>
14413
14414 PR tree-optimization/89710
14415 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
14416 safe_dyn_cast.
14417
14418 2019-03-14 Martin Liska <mliska@suse.cz>
14419
14420 * coverage.c (coverage_begin_function): Stream also
14421 end_column.
14422 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
14423 documentation about function declaration location.
14424 * gcov-dump.c (tag_function): Print whole range
14425 of function declaration.
14426 * gcov.c (struct function_info): Add end_column field.
14427 (function_info::function_info): Initialize it.
14428 (output_json_intermediate_file): Output {start,end}_column
14429 fields.
14430 (read_graph_file): Read end_column.
14431
14432 2019-03-14 Richard Biener <rguenther@suse.de>
14433
14434 PR middle-end/89698
14435 * fold-const.c (operand_equal_p): For INDIRECT_REF check
14436 that the access types are similar.
14437
14438 2019-03-14 Jakub Jelinek <jakub@redhat.com>
14439
14440 PR tree-optimization/89703
14441 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
14442 aren't compatible also with builtin_decl_explicit. Check pure
14443 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
14444 and BUILT_IN_STPNCPY{,_CHK}.
14445
14446 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
14447
14448 PR target/89523
14449 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
14450 addr32 prefix to VSIB address for X32.
14451 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
14452 "%M2" to opcode.
14453 (*avx512pf_gatherpf<mode>df_mask): Likewise.
14454 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
14455 (*avx512pf_scatterpf<mode>df_mask): Likewise.
14456 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
14457 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
14458 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
14459 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
14460 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
14461 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
14462 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
14463 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
14464 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
14465 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
14466 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
14467 (*avx512f_scatterdi<mode>): Likewise.
14468
14469 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
14470
14471 PR target/85860
14472 * lra-constraints.c (inherit_in_ebb): Update
14473 potential_reload_hard_regs along with live_hard_regs.
14474
14475 2019-03-13 Jakub Jelinek <jakub@redhat.com>
14476
14477 PR debug/89498
14478 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
14479 DWARF_OFFSET_SIZE.
14480 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
14481
14482 2019-03-13 Martin Sebor <msebor@redhat.com>
14483
14484 PR tree-optimization/89662
14485 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
14486 has a size.
14487
14488 2019-03-13 Richard Biener <rguenther@suse.de>
14489
14490 PR middle-end/89677
14491 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
14492 throw FP expressions at tree-affine.
14493
14494 2019-03-14 Richard Biener <rguenther@suse.de>
14495
14496 * tree-pretty-print.c (dump_generic_node): For -gimple properly
14497 dump negative integer constants using _Literal (type) -num.
14498
14499 2019-03-13 Jakub Jelinek <jakub@redhat.com>
14500
14501 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
14502 nonlocal_value member.
14503
14504 PR middle-end/88588
14505 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
14506 (ipa_simd_modify_function_body): Handle PHIs.
14507
14508 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
14509
14510 * config/s390/s390.c (s390_option_override_internal): Use more
14511 aggressive inlining parameters.
14512
14513 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
14514
14515 * config/s390/3906.md: New file.
14516 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
14517 (LONGRUNNING_THRESHOLD): Remove.
14518 (MAX_SCHED_MIX_SCORE): Decrease.
14519 (MAX_SCHED_MIX_DISTANCE): Decrease.
14520 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
14521 (struct s390_sched_state): New struct to hold scheduling state.
14522 (S390_SCHED_STATE_NORMAL): Remove.
14523 (S390_SCHED_STATE_CRACKED): Remove.
14524 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
14525 (s390_get_sched_attrmask): Use new attribute.
14526 (s390_get_unit_mask): Use new units.
14527 (s390_is_fpd): New function.
14528 (s390_is_fxd): New function.
14529 (s390_is_longrunning): New function.
14530 (s390_sched_score): Use new functions.
14531 (s390_sched_reorder): Likewise.
14532 (s390_sched_variable_issue): Rework and use new functions.
14533 (s390_sched_init): Use new functions.
14534 * config/s390/s390.h (s390_tune_attr): Add z14.
14535 * config/s390/s390.md: Add z14.
14536
14537 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
14538
14539 * config/s390/2964.md: Update pipeline description.
14540 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
14541 (LONGRUNNING_THRESHOLD): Remove.
14542 (LATENCY_FACTOR): Remove.
14543 (s390_get_unit_mask): Add unit.
14544 (s390_sched_score): Use fxd/fpd.
14545 (s390_sched_variable_issue): Use fxd/fpd.
14546
14547 2019-03-12 Martin Liska <mliska@suse.cz>
14548
14549 * config/i386/i386.c: Reword an error message.
14550
14551 2019-03-12 Martin Jambor <mjambor@suse.cz>
14552
14553 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
14554 terminate with newline.
14555
14556 2019-03-12 Jakub Jelinek <jakub@redhat.com>
14557
14558 PR target/52726
14559 * config/s390/s390.md (tabort): Use %wd instead of
14560 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
14561 letters and periods.
14562 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
14563 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
14564 's with %< and %>.
14565
14566 PR middle-end/89663
14567 * builtins.c (expand_builtin_int_roundingfn,
14568 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
14569 gcc_unreachable if validate_arglist fails.
14570
14571 2019-03-12 Richard Biener <rguenther@suse.de>
14572
14573 PR tree-optimization/89664
14574 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
14575 free the occurance tree after the early out.
14576
14577 2019-03-11 Jakub Jelinek <jakub@redhat.com>
14578
14579 PR middle-end/89655
14580 PR bootstrap/89656
14581 * vr-values.c (vr_values::update_value_range): If
14582 old_vr->varying_p (), don't update it, make new_vr also VARYING
14583 and return false.
14584
14585 2019-03-11 Martin Liska <mliska@suse.cz>
14586
14587 * config/aarch64/aarch64.c (aarch64_override_options_internal):
14588 Fix double string quoting.
14589
14590 2019-03-11 Martin Liska <mliska@suse.cz>
14591
14592 * collect-utils.c (collect_wait): Wrap apostrophes
14593 in gcc internal format with %'.
14594 * collect2.c (main): Likewise.
14595 (scan_prog_file): Likewise.
14596 (scan_libraries): Likewise.
14597 * config/i386/i386.c (ix86_expand_call): Likewise.
14598 (ix86_handle_interrupt_attribute): Likewise.
14599 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
14600 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
14601 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
14602 * lto-wrapper.c (find_crtoffloadtable): Likewise.
14603 * symtab.c (symtab_node::verify_base): Likewise.
14604 * tree-cfg.c (verify_gimple_label): Likewise.
14605 * tree.c (verify_type_variant): Likewise.
14606
14607 2019-03-11 Martin Liska <mliska@suse.cz>
14608
14609 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
14610 in a string format message and fix GNU coding style.
14611 (expand_builtin_set_thread_pointer): Likewise.
14612 * common/config/aarch64/aarch64-common.c
14613 (aarch64_rewrite_selected_cpu): Likewise.
14614 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
14615 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
14616 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
14617 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
14618 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
14619 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
14620 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
14621 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
14622 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
14623 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
14624 Likewise.
14625 * common/config/riscv/riscv-common.c
14626 (riscv_subset_list::parsing_subset_version): Likewise.
14627 (riscv_subset_list::parse_std_ext): Likewise.
14628 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
14629 (riscv_subset_list::parse): Likewise.
14630 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
14631 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
14632 (aarch64_override_options_internal): Likewise.
14633 (aarch64_validate_mcpu): Likewise.
14634 (aarch64_validate_march): Likewise.
14635 (aarch64_validate_mtune): Likewise.
14636 (aarch64_override_options): Likewise.
14637 * config/alpha/alpha.c (alpha_option_override): Likewise.
14638 * config/arc/arc.c (arc_init): Likewise.
14639 (parse_mrgf_banked_regs_option): Likewise.
14640 (arc_override_options): Likewise.
14641 (arc_expand_builtin_aligned): Likewise.
14642 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
14643 (arm_expand_builtin): Likewise.
14644 * config/arm/arm.c (arm_option_check_internal): Likewise.
14645 (arm_configure_build_target): Likewise.
14646 (arm_option_override): Likewise.
14647 (arm_options_perform_arch_sanity_checks): Likewise.
14648 (arm_handle_cmse_nonsecure_entry): Likewise.
14649 (arm_handle_cmse_nonsecure_call): Likewise.
14650 (arm_tls_referenced_p): Likewise.
14651 (thumb1_expand_prologue): Likewise.
14652 * config/avr/avr.c (avr_option_override): Likewise.
14653 * config/bfin/bfin.c (bfin_option_override): Likewise.
14654 * config/c6x/c6x.c (c6x_option_override): Likewise.
14655 * config/cr16/cr16.c (cr16_override_options): Likewise.
14656 * config/cris/cris.c (cris_option_override): Likewise.
14657 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
14658 * config/darwin-c.c (macosx_version_as_macro): Likewise.
14659 * config/darwin.c (darwin_override_options): Likewise.
14660 * config/frv/frv.c (frv_expand_builtin): Likewise.
14661 * config/h8300/h8300.c (h8300_option_override): Likewise.
14662 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
14663 (ix86_option_override_internal): Likewise.
14664 (warn_once_call_ms2sysv_xlogues): Likewise.
14665 (ix86_expand_prologue): Likewise.
14666 (split_stack_prologue_scratch_regno): Likewise.
14667 (ix86_warn_parameter_passing_abi): Likewise.
14668 * config/ia64/ia64.c (fix_range): Likewise.
14669 * config/m68k/m68k.c (m68k_option_override): Likewise.
14670 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
14671 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
14672 (mips_set_compression_mode): Likewise.
14673 * config/mmix/mmix.c (mmix_option_override): Likewise.
14674 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
14675 * config/msp430/msp430.c (msp430_option_override): Likewise.
14676 * config/nds32/nds32.c (nds32_option_override): Likewise.
14677 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
14678 (nios2_option_override): Likewise.
14679 (nios2_expand_custom_builtin): Likewise.
14680 * config/nvptx/mkoffload.c (main): Likewise.
14681 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
14682 * config/pa/pa.c (fix_range): Likewise.
14683 (pa_option_override): Likewise.
14684 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
14685 (riscv_option_override): Likewise.
14686 * config/rl78/rl78.c (rl78_option_override): Likewise.
14687 * config/rs6000/aix61.h: Likewise.
14688 * config/rs6000/aix71.h: Likewise.
14689 * config/rs6000/aix72.h: Likewise.
14690 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
14691 * config/rs6000/freebsd64.h: Likewise.
14692 * config/rs6000/linux64.h: Likewise.
14693 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
14694 (rs6000_expand_zeroop_builtin): Likewise.
14695 (rs6000_expand_mtfsb_builtin): Likewise.
14696 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
14697 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
14698 (rs6000_invalid_builtin): Likewise.
14699 (rs6000_expand_split_stack_prologue): Likewise.
14700 * config/rs6000/rtems.h: Likewise.
14701 * config/rx/rx.c (valid_psw_flag): Likewise.
14702 (rx_expand_builtin): Likewise.
14703 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
14704 * config/s390/s390.c (s390_expand_builtin): Likewise.
14705 (s390_function_profiler): Likewise.
14706 (s390_option_override_internal): Likewise.
14707 (s390_option_override): Likewise.
14708 * config/sh/sh.c (sh_option_override): Likewise.
14709 (sh_builtin_saveregs): Likewise.
14710 (sh_fix_range): Likewise.
14711 * config/sh/vxworks.h: Likewise.
14712 * config/sparc/sparc.c (sparc_option_override): Likewise.
14713 * config/spu/spu.c (spu_option_override): Likewise.
14714 (fix_range): Likewise.
14715 * config/visium/visium.c (visium_option_override): Likewise.
14716 (visium_handle_interrupt_attr): Likewise.
14717 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
14718 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
14719 (dbg_cnt_process_opt): Likewise.
14720 * dwarf2out.c (output_dwarf_version): Likewise.
14721 * except.c (expand_eh_return): Likewise.
14722 * gcc.c (defined): Likewise.
14723 (driver_handle_option): Likewise.
14724 (process_command): Likewise.
14725 (compare_files): Likewise.
14726 (driver::prepare_infiles): Likewise.
14727 (driver::do_spec_on_infiles): Likewise.
14728 (driver::maybe_run_linker): Likewise.
14729 * omp-offload.c (oacc_parse_default_dims): Likewise.
14730 * opts-global.c (handle_common_deferred_options): Likewise.
14731 * opts.c (parse_sanitizer_options): Likewise.
14732 (common_handle_option): Likewise.
14733 (enable_warning_as_error): Likewise.
14734 * passes.c (enable_disable_pass): Likewise.
14735 * plugin.c (parse_plugin_arg_opt): Likewise.
14736 (default_plugin_dir_name): Likewise.
14737 * targhooks.c (default_expand_builtin_saveregs): Likewise.
14738 (default_pch_valid_p): Likewise.
14739 * toplev.c (init_asm_output): Likewise.
14740 (process_options): Likewise.
14741 (toplev::run_self_tests): Likewise.
14742 * tree-cfg.c (verify_gimple_call): Likewise.
14743 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
14744 (tree_inlinable_function_p): Likewise.
14745 * var-tracking.c (vt_find_locations): Likewise.
14746
14747 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
14748
14749 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
14750 only on the else branch.
14751
14752 2019-03-11 Martin Liska <mliska@suse.cz>
14753
14754 * gcov.c (output_intermediate_json_line): Print function
14755 name of each line.
14756 (output_json_intermediate_file): Add new argument.
14757 * doc/gcov.texi: Document the change.
14758
14759 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
14760
14761 PR rtl-optimization/89588
14762 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
14763 explicit unrolling factor more robust.
14764
14765 2019-03-11 Richard Biener <rguenther@suse.de>
14766
14767 PR tree-optimization/89649
14768 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
14769 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
14770 on the prolog and epilog loops.
14771 (vect_loop_versioning): Return copy of loop.
14772 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
14773 on the non-vectorized version of the loop.
14774
14775 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
14776
14777 PR target/68924
14778 * config/i386/sse.md (*vec_extractv2di_0_sse):
14779 Add (=r,x) alternative and corresponding splitter.
14780
14781 2019-03-10 Martin Jambor <mjambor@suse.cz>
14782
14783 PR tree-optimization/85762
14784 PR tree-optimization/87008
14785 PR tree-optimization/85459
14786 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
14787 it points to if there is a type changing MEM_REF. Adjust all callers.
14788 (build_accesses_from_assign): Disable total scalarization if
14789 contains_vce_or_bfcref_p returns true through the new parameter, for
14790 both rhs and lhs.
14791
14792 2019-03-09 Jakub Jelinek <jakub@redhat.com>
14793
14794 PR c/88568
14795 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
14796 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
14797
14798 PR target/79645
14799 * common.opt (fdiagnostics-show-labels,
14800 fdiagnostics-show-line-numbers, fdiagnostics-format=,
14801 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
14802 gas-locview-support, ginline-points, ginternal-reset-location-views):
14803 Terminate description text with a dot.
14804 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
14805 * config/mcore/mcore.opt (m210, m340): Likewise.
14806 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
14807 mnops=): Start description text with a capital letter.
14808 * config/arc/arc.opt (msize-level=): Likewise.
14809 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
14810 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
14811 mnewlib): Likewise.
14812 * config/ft32/ft32.opt (msim): Likewise.
14813 (mft32b, mcompress): Likewise. Terminate description text with a dot.
14814 (mnodiv, mnopm): Terminate description text with a dot.
14815 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
14816 a colon.
14817 * config/i386/i386.opt (prefer_vector_width, instrument_return):
14818 Likewise.
14819 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
14820 text.
14821
14822 PR rtl-optimization/89634
14823 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
14824 are modified in BB_END (e->src) instruction.
14825
14826 2019-03-08 David Malcolm <dmalcolm@redhat.com>
14827
14828 PR target/79926
14829 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
14830 messages more amenable to translation, and improve wording.
14831
14832 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
14833
14834 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
14835 ud- and du-chains between phases.
14836
14837 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
14838
14839 PR debug/89631
14840 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
14841 instead of POLY_INT_CST.
14842
14843 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
14844
14845 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
14846 requirement.
14847
14848 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
14849
14850 PR target/68924
14851 PR target/78782
14852 PR target/87558
14853 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
14854 (_mm_storeu_si64): Ditto.
14855
14856 2019-03-08 Martin Liska <mliska@suse.cz>
14857
14858 PR target/86952
14859 * config/i386/i386.c (ix86_option_override_internal): Disable
14860 jump tables when retpolines are used.
14861
14862 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
14863
14864 PR go/63560
14865 * ipa-split.c (execute_split_functions): Do not split
14866 'noinline' or 'section' function.
14867
14868 2019-03-08 Jakub Jelinek <jakub@redhat.com>
14869
14870 PR target/79846
14871 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
14872 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
14873 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
14874
14875 PR ipa/80000
14876 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
14877 from diagnostics. Formatting fixes.
14878
14879 PR target/85665
14880 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
14881 warn_odr diagnostics.
14882
14883 PR other/80058
14884 * lra-constraints.c (process_alt_operands): Avoid one space before
14885 " at the end of line and another after " on another line in a string
14886 literal.
14887 * attribs.c (handle_dll_attribute): Likewise.
14888 * config/avr/avr-devices.c (avr_texinfo): Likewise.
14889
14890 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
14891 warning_at or inform messages in G_() if there is no ?:.
14892
14893 PR tree-optimization/89550
14894 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
14895 returned true. Formatting fixes.
14896 (expand_builtin_strnlen): Formatting fixes.
14897 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
14898 if warning_at returned true.
14899 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
14900
14901 2019-03-08 Richard Biener <rguenther@suse.de>
14902
14903 PR middle-end/89578
14904 * cfgloop.h (struct loop): Add owned_clique field.
14905 * cfgloopmanip.c (copy_loop_info): Copy it.
14906 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
14907 cliques.
14908 * tree-inline.c (copy_loops): Remap owned_clique.
14909 * lto-streamer-in.c (input_cfg): Stream owned_clique.
14910 * lto-streamer-out.c (output_cfg): Likewise.
14911
14912 2019-03-08 Jakub Jelinek <jakub@redhat.com>
14913
14914 PR target/80190
14915 * config/darwin.c: Include intl.h.
14916 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
14917 composing the message out of two separate parts.
14918
14919 2019-03-07 Jakub Jelinek <jakub@redhat.com>
14920
14921 PR target/80003
14922 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
14923 doesn't start with a capital letter and doesn't end with a dot.
14924 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
14925 with a capital letter.
14926 (ix86_mangle_function_version_assembler_name): Likewise.
14927 (ix86_generate_version_dispatcher_body): Likewise.
14928 (fold_builtin_cpu): Likewise.
14929 (get_builtin_code_for_version): Likewise. Remove extraneous space.
14930 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
14931 translators, wrap full type name in %qs.
14932
14933 PR translation/79999
14934 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
14935 depend clause with source (or sink) modifier.
14936 * omp-expand.c (expand_omp_ordered_sink): Likewise.
14937
14938 PR target/89602
14939 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
14940 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
14941 (avx512f_load<mode>_mask): New define_expand.
14942 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
14943 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
14944 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
14945 __builtin_ia32_movess_mask): New builtins.
14946 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
14947 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
14948 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
14949 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
14950
14951 2019-03-07 Martin Jambor <mjambor@suse.cz>
14952
14953 PR lto/87525
14954 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
14955 for extern inline functions.
14956
14957 2019-03-07 Martin Jambor <mjambor@suse.cz>
14958
14959 PR ipa/88235
14960 * cgraph.h (cgraph_node): New inline method former_thunk_p.
14961 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
14962 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
14963 have multiple callees. At the end check if declarations match as
14964 opposed to cgraph_nodes.
14965
14966 2019-03-07 Martin Liska <mliska@suse.cz>
14967
14968 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
14969 which is equivalent to searching for this in clones chain.
14970 * symtab.c (symtab_node::verify_base): Similarly compare ASM
14971 names with a neighbour and special case first node in a chain.
14972
14973 2019-01-25 Jason Merrill <jason@redhat.com>
14974
14975 PR c++/80916 - spurious "static but not defined" warning.
14976 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
14977 for an internal symbol with DECL_EXTERNAL.
14978
14979 2019-04-07 Richard Biener <rguenther@suse.de>
14980
14981 PR middle-end/89618
14982 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
14983 * tree-inline.c (copy_loops): Simplify.
14984
14985 2019-03-07 Martin Liska <mliska@suse.cz>
14986
14987 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
14988
14989 2019-03-07 Richard Biener <rguenther@suse.de>
14990
14991 PR tree-optimization/89595
14992 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
14993 stmt iterator as reference, take boolean output parameter to
14994 indicate whether the stmt was removed and thus the iterator
14995 already advanced.
14996 (dom_opt_dom_walker::before_dom_children): Re-iterate over
14997 stmts created by folding.
14998
14999 2019-03-07 Jakub Jelinek <jakub@redhat.com>
15000
15001 PR c++/89585
15002 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
15003 at toplevel.
15004
15005 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
15006
15007 PR rtl-optimization/88845
15008 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
15009 LRA.
15010 * lra.c (remove_scratches_1): New function.
15011 (remove_scratches): Use it.
15012 (lra_emit_move): Likewise.
15013
15014 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
15015
15016 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
15017 unaligned_access variable.
15018 * config/arc/arc.c (arc_override_options): Set unaligned access
15019 default on for HS CPUs.
15020 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
15021
15022 2019-03-06 Martin Liska <mliska@suse.cz>
15023
15024 PR gcov-profile/89577
15025 * doc/gcov.texi: Prefer to use --coverage.
15026 * doc/sourcebuild.texi: Likewise.
15027
15028 2019-03-02 Jason Merrill <jason@redhat.com>
15029
15030 PR c++/86485 - -Wmaybe-unused with empty class ?:
15031 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
15032
15033 2019-03-05 Jakub Jelinek <jakub@redhat.com>
15034
15035 PR target/89587
15036 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
15037 if_multiarch.
15038
15039 PR middle-end/89590
15040 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
15041 exactly one argument.
15042
15043 2019-03-05 Jakub Jelinek <jakub@redhat.com>
15044 Richard Sandiford <richard.sandiford@arm.com>
15045
15046 PR tree-optimization/89570
15047 * match.pd (vec_cond into cond_op simplification): Don't use
15048 get_conditional_internal_fn, use as_internal_fn (cond_op).
15049
15050 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
15051
15052 PR target/89222
15053 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
15054 to decide when to split off a non-zero offset from a symbol.
15055 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
15056 in function symbols.
15057
15058 2019-03-05 Richard Biener <rguenther@suse.de>
15059
15060 PR tree-optimization/89594
15061 * tree-if-conv.c (pass_if_conversion::execute): Handle
15062 case where .LOOP_VECTORIZED_FUNCTION was removed.
15063
15064 2019-03-05 Jakub Jelinek <jakub@redhat.com>
15065
15066 PR bootstrap/89560
15067 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
15068 instead alloca it only when needed with the needed size.
15069
15070 PR tree-optimization/89570
15071 * match.pd (vec_cond into cond_op simplification): Guard with
15072 vectorized_internal_fn_supported_p test and #if GIMPLE.
15073
15074 PR tree-optimization/89566
15075 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
15076 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
15077 Punt if get_user_idx_format succeeds, but idx_format argument is
15078 not provided or doesn't have pointer type, or if idx_args is above
15079 number of provided arguments.
15080
15081 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
15082
15083 PR tree-optimization/89437
15084 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
15085
15086 2019-03-04 Richard Biener <rguenther@suse.de>
15087
15088 PR middle-end/89572
15089 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
15090 safe_dyn_cast.
15091
15092 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
15093
15094 PR tree-optimization/89487
15095 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
15096 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
15097 (distribute_loop): Don't do runtime alias check if there is non-
15098 addressable data reference.
15099 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
15100 is a register variable.
15101
15102 2019-03-02 Jakub Jelinek <jakub@redhat.com>
15103
15104 PR target/89506
15105 * config/arm/arm.md (cmpsi2_addneg): Use
15106 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
15107 If operands[2] is 0 or INT_MIN, force use of subs.
15108 (*compare_scc splitter): Use gen_int_mode.
15109 (*negscc): Likewise.
15110 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
15111
15112 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
15113 Monk Chiang <sh.chiang04@gmail.com>
15114
15115 * common/config/riscv/riscv-common.c: Include sstream.
15116 (riscv_subset_list::to_string): New.
15117 (riscv_arch_str): Likewise.
15118 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
15119 * config.in: Regen.
15120 * config/riscv/riscv-protos.h (riscv_arch_str): New.
15121 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
15122 (riscv_emit_attribute): New.
15123 (riscv_file_start): Emit attribute if needed.
15124 (riscv_option_override): Init riscv_emit_attribute_p.
15125 * config/riscv/riscv.opt (mriscv-attribute): New option.
15126 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
15127 * configure: Regen.
15128 * doc/install.texi: Document --with-riscv-attribute.
15129 * doc/invoke.texi: Document -mriscv-attribute.
15130
15131 * common/config/riscv/riscv-common.c:
15132 Include config/riscv/riscv-protos.h.
15133 (INCLUDE_STRING): Defined.
15134 (RISCV_DONT_CARE_VERSION): Defined.
15135 (riscv_subset_t): Declare.
15136 (riscv_subset_t::riscv_subset_t): New.
15137 (riscv_subset_list): Declare.
15138 (riscv_subset_list::riscv_subset_list): New.
15139 (riscv_subset_list::~riscv_subset_list): Likewise.
15140 (riscv_subset_list::parsing_subset_version): Likewise.
15141 (riscv_subset_list::parse_std_ext): Likewise.
15142 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
15143 (riscv_subset_list::add): Likewise.
15144 (riscv_subset_list::lookup): Likewise.
15145 (riscv_subset_list::xlen): Likewise.
15146 (riscv_subset_list::parse): Likewise.
15147 (riscv_supported_std_ext): Likewise.
15148 (current_subset_list): Likewise.
15149 (riscv_parse_arch_string): Using riscv_subset_list::parse to
15150 parse.
15151
15152 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
15153
15154 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
15155 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
15156 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
15157
15158 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
15159
15160 PR rtl-optimization/85899
15161 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
15162 fallthru edges leading to the exit block.
15163
15164 2019-03-01 Tamar Christina <tamar.christina@arm.com>
15165
15166 PR target/89517
15167 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
15168 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
15169
15170 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
15171
15172 PR tree-optimization/89535
15173 * tree-vect-stmts.c (vectorizable_call): Record the vector types
15174 for each operand. Calculate the fallback choice for mask operands
15175 and pass it to vect_get_vec_def_for_operand.
15176
15177 2019-03-01 Richard Biener <rguenther@suse.de>
15178
15179 PR middle-end/89541
15180 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
15181 get virtual operands.
15182 (get_expr_operands): Handle CONST_DECL like other decls.
15183
15184 2019-03-01 Jakub Jelinek <jakub@redhat.com>
15185
15186 PR middle-end/89503
15187 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
15188 on DECL_P and EXPR_P.
15189
15190 2019-03-01 Richard Biener <rguenther@suse.de>
15191
15192 PR middle-end/89497
15193 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
15194 argument, defaulted to zero.
15195 * passes.c (execute_function_todo): Pass down SSA update flags
15196 to cleanup_tree_cfg.
15197 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
15198 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
15199 form if requested.
15200 (cleanup_tree_cfg): Get and pass down SSA update flags.
15201
15202 2019-03-01 Jakub Jelinek <jakub@redhat.com>
15203
15204 PR bootstrap/89539
15205 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
15206 early_lto_debug argument.
15207
15208 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
15209
15210 PR tree-optimization/89536
15211 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
15212 only whether bit #0 of the value is 0 instead of the entire value.
15213
15214 2019-02-28 Marek Polacek <polacek@redhat.com>
15215
15216 PR c++/87068 - missing diagnostic with fallthrough statement.
15217 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
15218 at the end of a seq, save its location to walk_stmt_info.
15219 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
15220 a switch.
15221
15222 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
15223
15224 PR lto/88585
15225 * tree.c (find_atomic_core_type): Move ahead in file.
15226 (check_base_type): Correctly compare alignments of atomic types.
15227
15228 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
15229
15230 PR target/89455
15231 * config/i386/i386.c (get_builtin_code_for_version): Identify
15232 Westmere from PCLMUL, instead of AES.
15233
15234 2019-02-28 Jakub Jelinek <jakub@redhat.com>
15235
15236 PR target/89434
15237 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
15238 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
15239 -UINTVAL (...).
15240
15241 2019-02-28 Tamar Christina <tamar.christina@arm.com>
15242
15243 PR target/88530
15244 * config/aarch64/aarch64-option-extensions.def: Document it.
15245 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
15246 if empty hwcaps.
15247
15248 2019-02-28 Jakub Jelinek <jakub@redhat.com>
15249
15250 PR c/89520
15251 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
15252 builtins if they don't have a single scalar floating point argument.
15253 Formatting fixes.
15254
15255 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
15256
15257 PR rtl-optimization/89490
15258 * varasm.c (get_block_for_section): Bail out for mergeable sections.
15259 (default_use_anchors_for_symbol_p, output_object_block): Assert the
15260 block section is not mergeable.
15261
15262 2019-02-27 Jakub Jelinek <jakub@redhat.com>
15263
15264 PR target/70341
15265 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
15266 old define_insn to ...
15267 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
15268 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
15269 Rename old define_insn to ...
15270 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
15271 (thumb2_casesi_internal_pic): New define_expand. Rename old
15272 define_insn to ...
15273 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
15274 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
15275 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
15276
15277 2019-02-27 Richard Biener <rguenther@suse.de>
15278
15279 PR debug/88878
15280 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
15281
15282 2019-02-27 Richard Biener <rguenther@suse.de>
15283
15284 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
15285 building.
15286
15287 2019-02-27 Richard Biener <rguenther@suse.de>
15288
15289 PR debug/88878
15290 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
15291 parameter, prefix section name with .gnu.debuglto_ if true.
15292 (dwarf2out_finish): Pass false to output_comdat_type_unit.
15293 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
15294
15295 2019-02-27 Richard Biener <rguenther@suse.de>
15296
15297 PR debug/89514
15298 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
15299 rather than on use_debug_types, doing what output_die does.
15300 (value_format): Likewise.
15301
15302 2019-02-27 Martin Jambor <mjambor@suse.cz>
15303 Martin Sebor <msebor@redhat.com>
15304
15305 * doc/invoke.texi (Warning Options): Reword description of
15306 -Wno-absolute-value.
15307
15308 2019-02-27 Jakub Jelinek <jakub@redhat.com>
15309
15310 PR tree-optimization/89280
15311 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
15312 builtin_setjmp_setup_bb): New functions.
15313 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
15314 When visiting __builtin_setjmp_setup block, queue in special
15315 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
15316 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
15317 from visited after the loop if they don't have any visited successor
15318 blocks.
15319
15320 2018-02-26 Steve Ellcey <sellcey@marvell.com>
15321
15322 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
15323 New function.
15324 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
15325
15326 2019-02-26 Jakub Jelinek <jakub@redhat.com>
15327
15328 PR c++/89507
15329 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
15330 with types other than sizetype/ssizetype.
15331
15332 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
15333
15334 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
15335 (enum sparc_processor_type): ...this.
15336 (enum sparc_code_model_type): New enumeration type.
15337 (enum sparc_memory_model_type): Tweak comments.
15338 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
15339 (mtune): Likewise.
15340 (mcmodel): Use sparc_code_model enumeration and variable.
15341 (sparc_code_model): New enumeration.
15342 (mdebug): Add Undocumented marker.
15343 * config/sparc/sparc.h (enum cmodel): Delete.
15344 (sparc_cmodel): Likewise.
15345 (TARGET_CM_MEDLOW): Adjust to above renaming.
15346 (TARGET_CM_MEDMID): Likewise.
15347 (TARGET_CM_MEDANY): Likewise.
15348 (TARGET_CM_EMBMEDANY): Likewise.
15349 * config/sparc/sparc.c (sparc_cmodel): Delete.
15350 (sparc_option_override): Remove string/value mapping support for the
15351 code model. Move code and memory model support to after the handling
15352 of target flags. Do private machine setup last.
15353 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
15354 (sparc_legitimize_reload_address): Likewise.
15355 (sparc_output_mi_thunk): Likewise.
15356 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
15357
15358 2019-02-26 Jakub Jelinek <jakub@redhat.com>
15359
15360 PR tree-optimization/89500
15361 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
15362 (handle_builtin_strlen): Remove noncst_bound variable. Always
15363 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
15364 cst if the first cst bytes starting at x are known to be non-zero,
15365 even if the string is not zero terminated. Don't try to modify
15366 *si for strnlen. Update strlen_to_stridx only for strlen or if
15367 we can prove strnlen returns the same value as strlen would.
15368
15369 2019-02-26 Martin Liska <mliska@suse.cz>
15370
15371 * alloc-pool.h (struct pool_usage): Remove extra
15372 print_dash_line.
15373 * bitmap.h (struct bitmap_usage): Likewise.
15374 * ggc-common.c (struct ggc_usage): Likewise.
15375 * mem-stats.h (struct mem_usage): Likewise.
15376 (mem_alloc_description::dump): Print dash lines
15377 here and repeat header at the end of a table report.
15378 It's then more readable.
15379 * tree-phinodes.c (phinodes_print_statistics): Make
15380 horizontal alignment.
15381 * tree-ssanames.c (ssanames_print_statistics): Likewise.
15382 * vec.c (struct vec_usage): Remove extra print_dash_line.
15383 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
15384
15385 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
15386
15387 * doc/extend.texi (__builtin_object_size):
15388 Use @pxref instead of @xref inside parenthesis.
15389 (__builtin_has_attribute): Add missing comma after @xref.
15390 (__builtin_object_size): Ditto.
15391 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
15392
15393 2019-02-26 Jeff Law <law@redhat.com>
15394
15395 PR rtl-optimization/87761
15396 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
15397 detect obviously dead insns and delete them.
15398
15399 2019-02-26 Richard Biener <rguenther@suse.de>
15400
15401 PR tree-optimization/89505
15402 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
15403 to handle restrict pointed-to vars with multiple subvars
15404 correctly.
15405
15406 2019-02-26 Richard Biener <rguenther@suse.de>
15407
15408 PR tree-optimization/89489
15409 * tree-parloops.c (create_loop_fn): Copy over last_clique.
15410
15411 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
15412
15413 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
15414 and move around comment.
15415 <BIT_AND_EXPR>: Likewise.
15416 <BIT_NOT_EXPR>: Add specific handling for boolean types.
15417
15418 2019-02-26 Jakub Jelinek <jakub@redhat.com>
15419
15420 PR target/89474
15421 * config/i386/i386.c (remove_partial_avx_dependency): Call
15422 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
15423 after changing possibly many instructions to use that pseudo. Fix up
15424 insertion of v4sf_const0 setter at the start of bb.
15425
15426 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
15427
15428 PR c/80409
15429 * doc/extend.texi (Variadic Pointer Args): New section.
15430
15431 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
15432 Martin Sebor <msebor@gmail.com>
15433
15434 * common.opt (Wattribute-alias): Likewise.
15435 * doc/invoke.texi (Option Summary): List general form of
15436 -Wattribute-alias=. List positive form of -Wmissing-attributes.
15437 (-Wmissing-attributes): Invert entry, rewrite and correct default.
15438 Add cross-references.
15439 (-Wattribute-alias): Rewrite and correct default. Mention
15440 considered attributes (same as for -Wmissing-attributes).
15441
15442 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
15443
15444 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
15445 (_mm_cvtpd_ps): Likewise.
15446 (_mm_cvttpd_epi32): Likewise.
15447
15448 PR target/89338
15449 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
15450 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
15451
15452 PR target/89339
15453 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
15454
15455 2019-02-25 Tamar Christina <tamar.christina@arm.com>
15456
15457 PR target/88530
15458 * common/config/aarch64/aarch64-common.c
15459 (struct aarch64_option_extension): Add is_synthetic.
15460 (all_extensions): Use it.
15461 (TARGET_OPTION_INIT_STRUCT): Define hook.
15462 (struct gcc_targetm_common): Moved to end.
15463 (all_extensions_by_on): New.
15464 (opt_ext_cmp, typedef opt_ext): New.
15465 (aarch64_option_init_struct): New.
15466 (aarch64_contains_opt): New.
15467 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
15468 * config/aarch64/aarch64-option-extensions.def
15469 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
15470 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
15471 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
15472 Set is_synthetic to false.
15473 (crypto): Set is_synthetic to true.
15474 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
15475 SYNTHETIC.
15476
15477 2019-02-25 Tamar Christina <tamar.christina@arm.com>
15478
15479 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
15480 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
15481 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
15482 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
15483 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
15484 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
15485 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
15486 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
15487 Rename ...
15488 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
15489 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
15490 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
15491 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
15492 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
15493 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
15494 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
15495 vfmlsl_laneq_high_f16): ... To this.
15496 * config/arm/neon.md: Update comments.
15497
15498 2019-02-25 Tamar Christina <tamar.christina@arm.com>
15499
15500 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
15501 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
15502 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
15503 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
15504 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
15505 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
15506 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
15507 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
15508 Rename ...
15509 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
15510 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
15511 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
15512 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
15513 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
15514 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
15515 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
15516 vfmlslq_laneq_high_f16): ... To this.
15517
15518 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
15519
15520 PR rtl-optimization/86096
15521 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
15522 comparing mw_order values.
15523
15524 2019-02-25 Jakub Jelinek <jakub@redhat.com>
15525
15526 PR target/89434
15527 * config/arm/arm.md (*subsi3_carryin_const): Use
15528 arm_neg_immediate_operand predicate instead of
15529 arm_not_immediate_operand, "L" constraint instead of "K" and
15530 print it using %n2 instead of %B2.
15531 (*subsi3_carryin_const0): New define_insn.
15532 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
15533 instead of arm_not_operand and "I" constraint instead of "K" and
15534 print it using %n3 instead of %B2. Instead of using match_dup 2 add
15535 another match_operand and in the condition check that it is negation
15536 of operands[2].
15537 (*subsi3_carryin_compare_const0): New define_ins.
15538 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
15539 *subsi3_carryin_const.
15540 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
15541 split into *subsi3_carryin_compare_const0 if the highpart is zero.
15542
15543 PR target/89438
15544 * config/arm.vfp.md (*negdf2_vfp): Use
15545 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
15546 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
15547
15548 2019-02-24 Jakub Jelinek <jakub@redhat.com>
15549
15550 PR rtl-optimization/89445
15551 * simplify-rtx.c (simplify_ternary_operation): Don't use
15552 simplify_merge_mask on operands that may trap.
15553 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
15554 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
15555 second operand is CONST_VECTOR, check if any element could be zero.
15556 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
15557 their operands can trap.
15558
15559 2019-02-23 Martin Sebor <msebor@redhat.com>
15560
15561 * gimple-ssa-sprintf.c (target_strtol): Rename...
15562 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
15563 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
15564 check for range error.
15565
15566 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
15567
15568 PR driver/69471
15569 * opts-common.c (prune_options): Also prune joined switches
15570 with Negative and RejectNegative.
15571 * config/i386/i386.opt (march=): Add Negative(march=).
15572 (mtune=): Add Negative(mtune=).
15573 * doc/options.texi: Document Negative used together with Joined
15574 and RejectNegative.
15575
15576 2019-02-22 Martin Sebor <msebor@redhat.com>
15577
15578 * doc/extend.texi (Other Builtins): Add
15579 __builtin_is_constant_evaluated.
15580
15581 2019-02-22 Richard Biener <rguenther@suse.de>
15582
15583 PR tree-optimization/87609
15584 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
15585
15586 2019-02-22 Jeff Law <law@redhat.com>
15587
15588 PR rtl-optimization/87761
15589 * config/mips/mips.md: Add new combiner pattern to recognize
15590 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
15591
15592 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
15593
15594 PR target/89324
15595 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
15596 destination register in peepholes generating patterns for ADDS/SUBS.
15597 (add<mode>3_compare0,
15598 *addsi3_compare0_uxtw, add<mode>3_compareC,
15599 add<mode>3_compareV_imm, add<mode>3_compareV,
15600 *adds_<optab><ALLX:mode>_<GPI:mode>,
15601 *subs_<optab><ALLX:mode>_<GPI:mode>,
15602 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
15603 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
15604 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
15605 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
15606 sub<mode>3_compare1): Allow stack pointer for source register.
15607 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
15608
15609 2019-02-22 Martin Sebor <msebor@redhat.com>
15610
15611 PR tree-optimization/88993
15612 PR tree-optimization/88853
15613 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
15614 New helper.
15615 (sprintf_dom_walker::call_info::is_string_func): New helper.
15616 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
15617 for formatted string functions.
15618 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
15619
15620 2019-02-22 Martin Sebor <msebor@redhat.com>
15621
15622 PR c/89425
15623 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
15624 unreachable subexpressions.
15625
15626 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
15627 Hongtao Liu <hongtao.liu@intel.com>
15628 Sunil K Pandey <sunil.k.pandey@intel.com>
15629
15630 PR target/87007
15631 * config/i386/i386-passes.def: Add
15632 pass_remove_partial_avx_dependency.
15633 * config/i386/i386-protos.h
15634 (make_pass_remove_partial_avx_dependency): New.
15635 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
15636 New function.
15637 (pass_data_remove_partial_avx_dependency): New.
15638 (pass_remove_partial_avx_dependency): Likewise.
15639 (make_pass_remove_partial_avx_dependency): Likewise.
15640 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
15641 (*extendsfdf2): Add avx_partial_xmm_update.
15642 (truncdfsf2): Likewise.
15643 (*float<SWI48:mode><MODEF:mode>2): Likewise.
15644 (SF/DF conversion splitters): Disabled for TARGET_AVX.
15645
15646 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
15647
15648 PR middle-end/85598
15649 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
15650 analysis for pass.
15651
15652 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
15653
15654 PR target/89444
15655 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
15656 (PTA_SKYLAKE): Add PTA_AES.
15657 (PTA_GOLDMONT): Likewise.
15658
15659 2019-02-22 Sudakshina Das <sudi.das@arm.com>
15660
15661 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
15662 instruction if enabled.
15663 (aarch64_override_options): Remove reference to return address key.
15664
15665 2019-02-22 Richard Biener <rguenther@suse.de>
15666
15667 PR tree-optimization/89440
15668 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
15669 not necessary assert.
15670
15671 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
15672
15673 PR fortran/72741
15674 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
15675 (oacc_replace_fn_attrib_attr): ... this new function.
15676 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
15677 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
15678
15679 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15680
15681 * config/arm/arm-cpus.in (ares): Rename to...
15682 (neoverse-n1): ... This. Add ares as alias.
15683 * config/arm/arm-tables.opt: Regenerate.
15684 * config/arm/arm-tune.md: Likewise.
15685 * doc/invoke.txt (ARM Options): Document neoverse-n1.
15686
15687 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15688
15689 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
15690 * config/aarch64/aarch64-tune.md: Regenerate.
15691 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
15692
15693 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
15694
15695 * config/aarch64/aarch64.c (ares_tunings): Rename to...
15696 (neoversen1_tunings): ... This.
15697 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
15698 (neoverse-n1): New CPU.
15699 * config/aarch64/aarch64-tune.md: Regenerate.
15700 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
15701
15702 2019-02-22 Richard Biener <rguenther@suse.de>
15703
15704 PR middle-end/87609
15705 * cfghooks.h (dependence_hash): New typedef.
15706 (struct copy_bb_data): New type.
15707 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
15708 (duplicate_block): Likewise.
15709 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
15710 (copy_bbs): Create and pass down copy_bb_data.
15711 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
15712 (rtl_duplicate_bb): Likewise.
15713 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
15714 remap dependence info.
15715
15716 2019-02-22 Richard Biener <rguenther@suse.de>
15717
15718 PR tree-optimization/87609
15719 * tree-core.h (tree_base): Document special clique values.
15720 * tree-inline.c (remap_dependence_clique): Do not use the
15721 special clique value of one.
15722 (maybe_set_dependence_info): Use clique one.
15723 (clear_dependence_clique): New callback.
15724 (compute_dependence_clique): Clear clique one from all refs
15725 before assigning it (again).
15726
15727 2019-02-21 Martin Sebor <msebor@redhat.com>
15728
15729 * doc/extend.texi (__clear_cache): Correct signature.
15730
15731 2019-02-21 Ian Lance Taylor <iant@golang.org>
15732
15733 PR go/89170
15734 * varasm.c (decode_addr_const): Call lookup_constant_def rather
15735 than output_constant_def.
15736 (add_constant_to_table): New static function.
15737 (output_constant_def): Call add_constant_to_table.
15738 (tree_output_constant_def): Likewise.
15739
15740 2019-02-21 Jakub Jelinek <jakub@redhat.com>
15741
15742 PR c++/89285
15743 * builtins.c (fold_builtin_arith_overflow): If first two args are
15744 INTEGER_CSTs, set intres and ovfres to constants rather than calls
15745 to ifn.
15746
15747 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
15748
15749 PR target/87412
15750 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
15751 error for -mindirect-branch/-mfunction-return with incompatible
15752 -fcf-protection.
15753
15754 2019-02-21 Jakub Jelinek <jakub@redhat.com>
15755
15756 PR bootstrap/88714
15757 * constraints.md (q): Remove.
15758 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
15759 instead of q.
15760
15761 2019-02-21 Martin Jambor <mjambor@suse.cz>
15762
15763 PR hsa/89302
15764 * omp-general.c (omp_extract_for_data): Removed a duplicate call
15765 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
15766 (omp_adjust_for_condition): ...here. Added necessary parameters.
15767 * omp-general.h (omp_adjust_for_condition): Updated declaration.
15768 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
15769 proper values to new parameters of omp_adjust_for_condition.
15770
15771 2019-02-20 Jakub Jelinek <jakub@redhat.com>
15772
15773 PR middle-end/89412
15774 * expr.c (expand_assignment): If result is a MEM, use change_address
15775 instead of simplify_gen_subreg.
15776
15777 2019-02-20 Jakub Jelinek <jakub@redhat.com>
15778 David Malcolm <dmalcolm@redhat.com>
15779
15780 PR middle-end/89091
15781 * fold-const.c (decode_field_reference): Return NULL_TREE if
15782 lang_hooks.types.type_for_size returns NULL. Check it before
15783 overwriting *exp_. Use return NULL_TREE instead of return 0.
15784
15785 2019-02-20 Jakub Jelinek <jakub@redhat.com>
15786
15787 PR middle-end/88074
15788 PR middle-end/89415
15789 * toplev.c (do_compile): Double the emin/emax exponents to workaround
15790 buggy mpc_norm.
15791
15792 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
15793
15794 PR target/89397
15795 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
15796 TARGET_SSE in addition to TARGET_SSE_MATH.
15797
15798 (ix86_excess_precision): Ditto.
15799 (ix86_float_exceptions_rounding_supported_p): Ditto.
15800 (use_rsqrt_p): Ditto.
15801 * config/i386/sse.md (rsqrt<mode>2): Ditto.
15802
15803 2019-02-20 David Malcolm <dmalcolm@redhat.com>
15804
15805 PR c/89410
15806 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
15807 linenum_arith_t when determining if two adjacent line spans are
15808 close enough to merge.
15809 (diagnostic_show_locus): Use linenum_arith_t when iterating over
15810 lines within each line_span.
15811
15812 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
15813
15814 PR target/86487
15815 * lra-constraints.c(uses_hard_regs_p): Fix handling of
15816 paradoxical SUBREGS.
15817
15818 2019-02-20 Li Jia He <helijia@linux.ibm.com>
15819
15820 PR target/88100
15821 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
15822 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
15823 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
15824 range checking it.
15825
15826 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
15827
15828 * config/gcn/gcn.c (print_operand): Fix typo.
15829
15830 2019-02-19 Richard Biener <rguenther@suse.de>
15831
15832 PR middle-end/88074
15833 * toplev.c (do_compile): Initialize mpfr's exponent range
15834 based on available float modes.
15835
15836 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
15837
15838 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
15839 as long as the epilogue isn't completed.
15840
15841 2019-02-18 Martin Sebor <msebor@redhat.com>
15842
15843 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
15844 __has_cpp_attribute, and __has_include.
15845
15846 2019-02-18 Martin Sebor <msebor@redhat.com>
15847
15848 * doc/invoke.texi (-Wreturn-type): Correct and expand.
15849
15850 2019-02-18 Martin Sebor <msebor@redhat.com>
15851
15852 PR middle-end/89294
15853 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
15854 expression.
15855 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
15856
15857 2019-02-18 Richard Biener <rguenther@suse.de>
15858
15859 PR tree-optimization/89296
15860 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
15861 of no-warning flag to cases that might emit the bogus warning.
15862
15863 2019-02-18 Jakub Jelinek <jakub@redhat.com>
15864
15865 PR bootstrap/88714
15866 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
15867 "q" constraint.
15868 * config/arm/vfp.md (*movdi_vfp): Likewise.
15869 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
15870 "q" constraint for operands[0].
15871
15872 PR target/89369
15873 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
15874 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
15875 pattern in a temporary buffer.
15876 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
15877 than 64-operands[2].
15878
15879 PR target/89361
15880 * config/s390/s390.c (s390_indirect_branch_attrvalue,
15881 s390_indirect_branch_settings): Define unconditionally.
15882 (s390_set_current_function): Likewise, but guard the whole body except
15883 the s390_indirect_branch_settings call with
15884 #if S390_USE_TARGET_ATTRIBUTE.
15885 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
15886
15887 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
15888 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
15889 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
15890 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
15891 HOST_WIDE_INT_1U instead of 1ULL.
15892 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
15893 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
15894 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
15895 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
15896 instead of 1UL.
15897 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
15898 instead of 1ul.
15899
15900 2019-02-18 Martin Jambor <mjambor@suse.cz>
15901
15902 PR tree-optimization/89209
15903 * tree-sra.c (create_access_replacement): New optional parameter
15904 reg_tree. Use it as a type if non-NULL and access type is not of
15905 a register type.
15906 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
15907 to create_access_replacement.
15908 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
15909 Check lacc is non-NULL before attempting to re-create it on the RHS.
15910
15911 2019-02-18 Martin Liska <mliska@suse.cz>
15912
15913 PR ipa/89306
15914 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
15915 by default.
15916 (symbol_table::free_edge): Recycle m_summary_id.
15917 * cgraph.h (get_summary_id): New.
15918 (symbol_table::release_symbol): Set m_summary_id to -1
15919 by default.
15920 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
15921 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
15922 function_summary to fast_function_summary.
15923 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
15924 * ipa-pure-const.c (class funct_state_summary_t):
15925 Switch from function_summary to fast_function_summary.
15926 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
15927 (class ipa_ref_opt_summary_t): Switch from function_summary
15928 to fast_function_summary.
15929 * symbol-summary.h (class function_summary_base): New class
15930 that is created from base of former function_summary.
15931 (function_summary_base::unregister_hooks): New.
15932 (class function_summary): Inherit from function_summary_base.
15933 (class call_summary_base): New class
15934 that is created from base of former call_summary.
15935 (class call_summary): Inherit from call_summary_base.
15936 (struct is_same): New.
15937 (class fast_function_summary): New summary class.
15938 (class fast_call_summary): New summary class.
15939 * vec.h (vec_safe_grow_cleared): New function.
15940
15941 2019-02-18 Martin Liska <mliska@suse.cz>
15942
15943 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
15944 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
15945 * doc/tm.texi: Document new target hook.
15946 * doc/tm.texi.in: Likewise.
15947 * target.def: Add new target macro.
15948 * gcc.c (find_fortran_preinclude_file): Do not search multilib
15949 suffixes.
15950
15951 2019-02-17 Alan Modra <amodra@gmail.com>
15952
15953 PR target/89271
15954 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
15955 output reg on add insn.
15956 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
15957
15958 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
15959
15960 PR target/89372
15961 * config/i386/sse.md (ssedoublemode): Remove V4HI.
15962 (PMULHRSW): Likewise.
15963 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
15964 TARGET_AVX2.
15965 (ssse3_pmulhrswv4hi3): New expander.
15966
15967 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
15968
15969 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
15970 MMX. Add isa attribute.
15971
15972 2019-02-16 Jakub Jelinek <jakub@redhat.com>
15973
15974 PR rtl-optimization/66152
15975 * builtins.h (c_readstr): Declare.
15976 * builtins.c (c_readstr): Remove forward declaration. Add
15977 null_terminated_p argument, if false, read all bytes from the
15978 string instead of stopping after '\0'.
15979 * expr.c (string_cst_read_str): New function.
15980 (store_expr): Use string_cst_read_str instead of
15981 builtin_strncpy_read_str. Try to store by pieces the whole
15982 exp_len first, and only if that fails, split it up into
15983 store by pieces followed by clear_storage. Formatting fix.
15984
15985 * config/i386/i386.md (*movqi_internal): Remove static from
15986 buf variable. Use output_asm_insn (buf, operands); return "";
15987 instead of return buf;.
15988 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
15989 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
15990 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
15991
15992 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
15993
15994 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
15995 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
15996 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
15997 (CC1_SPEC): Likewise.
15998 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
15999
16000 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
16001
16002 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
16003 the base address on 64-bit strict-alignment platforms.
16004
16005 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
16006
16007 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
16008
16009 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
16010
16011 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
16012
16013 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
16014
16015 PR rtl-optimization/88308
16016 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
16017 on copied instruction.
16018
16019 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
16020
16021 * final.c (insn_current_reference_address): Replace test on JUMP_P
16022 with test on jump_to_label_p.
16023 * config/visium/visium-passes.def: New file.
16024 * config/visium/t-visium (PASSES_EXTRA): Define.
16025 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
16026 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
16027 (TRAMPOLINE_ALIGNMENT): Define.
16028 * config/visium/visium.c (visium_option_override): Do not register
16029 the machine-specific reorg pass here.
16030 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
16031 for the GR6.
16032 (output_branch): Adjust threshold for long branch instruction.
16033 * config/visium/visium.md (cpu): Move around.
16034 (length): Adjust for the GR6.
16035
16036 2019-02-15 Richard Biener <rguenther@suse.de>
16037 Jakub Jelinek <jakub@redhat.com>
16038
16039 PR tree-optimization/89278
16040 * tree-loop-distribution.c: Include tree-eh.h.
16041 (generate_memset_builtin, generate_memcpy_builtin): Call
16042 rewrite_to_non_trapping_overflow on builtin->size before passing it
16043 to force_gimple_operand_gsi.
16044
16045 2019-02-15 Jakub Jelinek <jakub@redhat.com>
16046
16047 PR other/89342
16048 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
16049 optimize_debug.
16050 * opth-gen.awk: Likewise.
16051
16052 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
16053
16054 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
16055 Enable MMX, SSE and SSE2 by default.
16056 * config/i386/i386.c (ix86_option_override_internal): Do not
16057 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
16058
16059 2019-02-14 Jakub Jelinek <jakub@redhat.com>
16060
16061 PR rtl-optimization/89354
16062 * combine.c (make_extraction): Punt if extraction_mode is narrower
16063 than len bits.
16064
16065 2019-02-14 Maya Rashish <coypu@sdf.org>
16066
16067 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
16068 * config/netbsd-d.c: New file.
16069 * config/t-netbsd: Add netbsd-d.o
16070
16071 2018-02-14 Steve Ellcey <sellcey@marvell.com>
16072
16073 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
16074 affects_type_identity to true for aarch64_vector_pcs.
16075 (aarch64_comp_type_attributes): New function.
16076 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
16077
16078 2019-02-14 Tamar Christina <tamar.christina@arm.com>
16079
16080 PR target/88850
16081 * config/arm/iterators.md (ANY64): Add V4HF.
16082
16083 2019-02-14 Martin Liska <mliska@suse.cz>
16084
16085 PR rtl-optimization/89242
16086 * dce.c (delete_unmarked_insns): Call free_dominance_info we
16087 process a transformation.
16088
16089 2019-02-14 Jakub Jelinek <jakub@redhat.com>
16090
16091 PR tree-optimization/89314
16092 * fold-const.c (fold_binary_loc): Cast strlen argument to
16093 const char * before dereferencing it. Formatting fixes.
16094
16095 PR middle-end/89284
16096 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
16097
16098 2019-02-13 Ian Lance Taylor <iant@golang.org>
16099
16100 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
16101 and set current index for other optimizations.
16102
16103 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
16104
16105 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
16106 nonimmediate_operand as operand 2 predicate.
16107 (vec_set<VF2_512_256:mode>_0): Ditto.
16108 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
16109 (*vec_concatv2si): Remove alternative 2.
16110 (*vec_concatv4si_0): Use vm constraint for alternative 0.
16111 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
16112 (vec_concatv2di): Split alternatives 4,5,6 to ...
16113 (*vec_concatv2di_0) ... new pattern.
16114
16115 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
16116
16117 PR target/89190
16118 * config/arm/arm.c (ldm_stm_operation_p) Set
16119 addr_reg_in_reglist correctly for first register.
16120 (load_multiple_sequence): Remove dead base check.
16121 (gen_ldm_seq): Correctly set write_back for Thumb-1.
16122
16123 2019-02-13 Tamar Christina <tamar.christina@arm.com>
16124
16125 PR target/88847
16126 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
16127 Expose as @aarch64_pred_mov.
16128 * config/aarch64/aarch64.c (aarch64_classify_address):
16129 Use expand_insn which legitimizes operands.
16130
16131 2019-02-13 Martin Liska <mliska@suse.cz>
16132
16133 * builtins.h (expand_builtin_with_bounds): Remove declaration.
16134 * calls.c (struct arg_data): Remove special_slot, pointer_arg
16135 and pointer_offset fields.
16136 (initialize_argument_information): Remove usage of dead
16137 fields.
16138 * cgraph.h (struct cgraph_thunk_info): Remove
16139 add_pointer_bounds_args.
16140 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
16141 fields.
16142 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
16143 fields.
16144 * config/i386/i386.c (ix86_function_arg_advance): Remove
16145 unrelated comment.
16146 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
16147 (def_builtin): Remove usage of dead fields.
16148 (ix86_add_new_builtins): Likewise.
16149 * ipa-fnsummary.c (compute_fn_summary): Likewise.
16150 * ipa-icf.c (sem_function::equals_wpa): Likewise.
16151 (sem_function::init): Likewise.
16152 (sem_variable::merge): Likewise.
16153 * ipa-visibility.c (function_and_variable_visibility): Likewise.
16154 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
16155 * lto-cgraph.c (lto_output_node): Likewise.
16156 (lto_output_varpool_node): Likewise.
16157 (input_node): Likewise.
16158 (input_varpool_node): Likewise.
16159 * lto-streamer-out.c (lto_output): Likewise.
16160 * tree-inline.c (expand_call_inline): Remove usage of
16161 assign_stmts.
16162 * tree-inline.h (struct copy_body_data): Likewise.
16163 * varpool.c (varpool_node::dump): Likewise.
16164
16165 2019-02-13 Jakub Jelinek <jakub@redhat.com>
16166
16167 PR middle-end/89303
16168 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
16169 into pt->vars_contains_escaped_heap instead of setting
16170 pt->vars_contains_escaped_heap to it.
16171
16172 PR middle-end/89281
16173 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
16174 INTVAL (size), compare it to GET_MODE_MASK instead of
16175 1 << GET_MODE_BITSIZE.
16176
16177 PR target/89290
16178 * config/i386/predicates.md (x86_64_immediate_operand): Allow
16179 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
16180 -mcmodel=large.
16181
16182 2019-02-13 Martin Liska <mliska@suse.cz>
16183
16184 PR lto/88858
16185 * cfgrtl.c (remove_barriers_from_footer): New function.
16186 (try_redirect_by_replacing_jump): Use it.
16187 (cfg_layout_redirect_edge_and_branch): Likewise.
16188
16189 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
16190
16191 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
16192 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
16193 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
16194 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
16195 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
16196 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
16197 New BU_CRYPTO_2.
16198 * config/rs6000/rs6000.c (builtin_function_type)
16199 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
16200 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
16201 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
16202 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
16203 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
16204
16205 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
16206
16207 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
16208 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
16209
16210 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
16211
16212 PR target/89229
16213 * config/i386/i386.md (*movoi_internal_avx): Revert revision
16214 268678 and revision 268657.
16215 (*movti_internal): Likewise.
16216
16217 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
16218
16219 PR target/89233
16220 * config/s390/s390.c (s390_decompose_address): Update comment.
16221 (s390_check_qrst_address): Reject invalid address forms after
16222 LRA.
16223
16224 2019-02-12 Martin Liska <mliska@suse.cz>
16225
16226 PR lto/88876
16227 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
16228 we need default values of funct_state for a function that
16229 is not optimized.
16230
16231 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
16232
16233 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
16234 the object to pick the size of stores on strict-alignment platforms.
16235
16236 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
16237 (*movdi_insn_sp32): Likewise.
16238 (*movdi_insn_sp64): Likewise.
16239
16240 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
16241
16242 PR lto/88677
16243 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
16244 types that needs constructiong.
16245 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
16246
16247 2019-02-12 Richard Biener <rguenther@suse.de>
16248
16249 PR tree-optimization/89253
16250 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
16251 duplicate the loop.
16252
16253 2019-02-11 David Malcolm <dmalcolm@redhat.com>
16254
16255 PR lto/88147
16256 * input.c (selftest::test_line_offset_overflow): New selftest.
16257 (selftest::input_c_tests): Call it.
16258
16259 2019-02-11 Martin Sebor <msebor@redhat.com>
16260
16261 PR tree-optimization/88771
16262 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
16263 when -Wstringop-overflow is set.
16264 (builtin_memref::builtin_memref): Adjust excessive upper bound
16265 only when lower bound is not excessive.
16266 (maybe_diag_overlap): Detect and diagnose excessive bounds via
16267 -Wstringop-ovefflow.
16268 (maybe_diag_offset_bounds): Rename...
16269 (maybe_diag_access_bounds): ...to this.
16270 (check_bounds_or_overlap): Adjust for name change above.
16271
16272 2019-02-11 Martin Sebor <msebor@redhat.com>
16273
16274 PR c++/87996
16275 * builtins.c (max_object_size): Move from here...
16276 * builtins.h (max_object_size): ...and here...
16277 * tree.c (max_object_size): ...to here...
16278 * tree.h (max_object_size): ...and here.
16279
16280 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
16281
16282 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
16283 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
16284 for correct semantics.
16285
16286 2019-02-11 Alan Modra <amodra@gmail.com>
16287
16288 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
16289 -mlongcall and -mpltseq.
16290 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
16291 (RS/6000 and PowerPC Options <-mpltseq>): Document.
16292 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
16293 * config/rs6000/sysv4.opt (mpltseq): New option.
16294 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
16295 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
16296 support is lacking. Don't allow -mpltseq with -mbss-plt.
16297 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
16298 -mpltseq given for ELFv1.
16299 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
16300 Only use UNSPEC_PLTSEQ for inline PLT calls.
16301 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
16302 use UNSPEC_PLTSEQ for inline PLT calls.
16303 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
16304 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
16305 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
16306 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
16307 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
16308 (pltseq_mtctr_<mode>): Likewise.
16309
16310 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
16311
16312 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
16313 Solaris ld.
16314 * configure: Regenerate.
16315
16316 2019-02-11 Jakub Jelinek <jakub@redhat.com>
16317
16318 PR bootstrap/88714
16319 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
16320 instead of r.
16321
16322 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
16323
16324 * function.c (assign_parm_setup_block): Use the stored
16325 size, not the passed size, when allocating stack-space,
16326 also for a parameter with alignment larger than
16327 MAX_SUPPORTED_STACK_ALIGNMENT.
16328
16329 2019-02-11 Martin Liska <mliska@suse.cz>
16330
16331 PR ipa/89009
16332 * ipa-cp.c (build_toporder_info): Remove usage of a param.
16333 * ipa-inline.c (inline_small_functions): Likewise.
16334 * ipa-pure-const.c (propagate_pure_const): Likewise.
16335 (propagate_nothrow): Likewise.
16336 * ipa-reference.c (propagate): Likewise.
16337 * ipa-utils.c (struct searchc_env): Remove unused field.
16338 (searchc): Always search across AVAIL_INTERPOSABLE.
16339 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
16340 the only called IPA pure const can properly not propagate
16341 across interposable boundary.
16342 * ipa-utils.h (ipa_reduced_postorder): Remove param.
16343
16344 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
16345
16346 * config/nds32/nds32.md (call_internal, call_value_internal,
16347 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
16348
16349 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
16350
16351 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
16352 typo.
16353
16354 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
16355
16356 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
16357 in comments
16358
16359 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
16360
16361 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
16362
16363 2019-02-10 Jakub Jelinek <jakub@redhat.com>
16364
16365 PR tree-optimization/89268
16366 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
16367 if preds is non-NULL.
16368
16369 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16370
16371 PR lto/89272
16372 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
16373 polymorphic types.
16374
16375 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
16376
16377 * config/nds32/nds32.md (trap): New pattern.
16378
16379 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
16380
16381 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
16382 dwarf span.
16383
16384 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
16385
16386 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
16387 to split POST_INC.
16388
16389 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16390
16391 * ipa-visibility.c (localize_node): Also do not localize
16392 LDPR_PREVAILING_DEF_IRONLY_EXP.
16393
16394 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16395
16396 PR lto/87957
16397 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
16398 instead of type_with_linkage.
16399
16400 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
16401
16402 PR ipa/88755
16403 * params.def (uninlined-function-insns, uninlined-function-time,
16404 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
16405 bound so we don't get overflows.
16406
16407 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
16408
16409 * config/rs6000/rs6000-string.c (expand_compare_loop,
16410 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
16411 memcmp/strncmp.
16412
16413 2019-02-09 Jakub Jelinek <jakub@redhat.com>
16414
16415 PR middle-end/89246
16416 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
16417 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
16418 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
16419
16420 2019-02-09 Alan Modra <amodra@gmail.com>
16421
16422 PR target/88343
16423 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
16424 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
16425 setup.
16426
16427 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
16428
16429 PR middle-end/88560
16430 * lra-constraints.c (process_alt_operands): Don't increase reject
16431 for memory when offset memory is required.
16432
16433 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
16434
16435 * config/s390/vector.md: Implement vector copysign.
16436
16437 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
16438
16439 * expr.c (expand_constructor): Correct indentations.
16440
16441 2019-02-08 Richard Biener <rguenther@suse.de>
16442
16443 PR tree-optimization/89247
16444 * tree-if-conv.c: Include tree-cfgcleanup.h.
16445 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
16446 (tree_if_conversion): Pass through predicate vector.
16447 (pass_if_conversion::execute): Do CFG cleanup and SSA update
16448 inline, see if any if-converted loops we refrece in
16449 LOOP_VECTORIZED calls vanished and fixup.
16450 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
16451
16452 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
16453
16454 * config/s390/constraints.md (jdd): New constraint.
16455
16456 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
16457
16458 PR target/89229
16459 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
16460 upper 16 vector registers without TARGET_AVX512VL.
16461 (*movti_internal): Likewise.
16462
16463 2019-02-08 Jakub Jelinek <jakub@redhat.com>
16464
16465 PR rtl-optimization/89234
16466 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
16467 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
16468 (copy_reg_eh_region_note_backward): Likewise.
16469
16470 2019-02-08 Richard Biener <rguenther@suse.de>
16471
16472 PR middle-end/89223
16473 * tree-data-ref.c (initialize_matrix_A): Fail if constant
16474 doesn't fit in HWI.
16475 (analyze_subscript_affine_affine): Handle failure from
16476 initialize_matrix_A.
16477
16478 2019-02-08 Jakub Jelinek <jakub@redhat.com>
16479
16480 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
16481 cfun everywhere.
16482
16483 2019-02-07 David Malcolm <dmalcolm@redhat.com>
16484
16485 PR tree-optimization/86637
16486 PR tree-optimization/89235
16487 * tree-vect-loop.c (optimize_mask_stores): Add an
16488 auto_purge_vect_location sentinel to ensure that vect_location is
16489 purged on exit.
16490 * tree-vectorizer.c
16491 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
16492 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
16493 to ensure that vect_location is purged on exit.
16494 (pass_slp_vectorize::execute): Likewise, replacing the manual
16495 reset.
16496 * tree-vectorizer.h (class auto_purge_vect_location): New class.
16497
16498 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16499
16500 * config/aarch64/iterators.md (max_opp): New code_attr.
16501 (USMAX): New code iterator.
16502 * config/aarch64/predicates.md (aarch64_smin): New predicate.
16503 (aarch64_smax): Likewise.
16504 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
16505 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
16506 MINUS (MAX MIN).
16507
16508 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
16509
16510 PR target/89229
16511 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
16512 for TARGET_AVX512VL.
16513 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
16514
16515 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
16516
16517 * config/s390/s390-builtin-types.def: Add new types.
16518 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
16519 (s390_vec_xlw4): Make the memory operand into a const pointer.
16520 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
16521 float.
16522 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
16523 a new vector type with the alignment of the scalar memory operand.
16524
16525 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
16526 Jakub Jelinek <jakub@redhat.com>
16527
16528 PR bootstrap/88714
16529 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
16530 arm_count_ldrdstrd_insns): New declarations.
16531 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
16532 MINUS.
16533 (valid_operands_ldrd_strd): New function.
16534 (arm_count_ldrdstrd_insns): New function.
16535 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
16536 sets instead of single DImode set and define new insns to match this.
16537
16538 2019-02-07 Tamar Christina <tamar.christina@arm.com>
16539
16540 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
16541 Make it a C initializer.
16542
16543 2019-02-07 Tamar Christina <tamar.christina@arm.com>
16544
16545 PR/target 88850
16546 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
16547
16548 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16549
16550 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
16551 Use neon_dot<q> for type.
16552 (neon_<sup>dot_lane<vsi2qi>): Likewise.
16553
16554 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
16555
16556 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
16557 Use neon_dot<q> for type.
16558 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
16559 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
16560
16561 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
16562
16563 PR rtl-optimization/89225
16564 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
16565 sizes check.
16566
16567 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
16568
16569 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
16570 after restoring registers saved to allocate the frame on Windows.
16571
16572 2019-02-06 Richard Biener <rguenther@suse.de>
16573
16574 PR tree-optimization/89182
16575 * graphite.h (cached_scalar_evolution_in_region): Declare.
16576 * graphite.c (struct seir_cache_key): New.
16577 (struct sese_scev_hash): Likewise.
16578 (seir_cache): New global.
16579 (cached_scalar_evolution_in_region): New function.
16580 (graphite_transform_loops): Allocate and release seir_cache.
16581 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
16582 cached_scalar_evolution_in_region.
16583 * graphite-scop-detection.c (scop_detection::can_represent_loop):
16584 Simplify.
16585 (scop_detection::graphite_can_represent_expr: Use
16586 cached_scalar_evolution_in_region.
16587 (scop_detection::stmt_simple_for_scop_p): Likewise.
16588 (find_params_in_bb): Likewise.
16589 (gather_bbs::before_dom_children): Likewise.
16590 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
16591 (add_loop_constraints): Likewise.
16592
16593 2019-02-06 Jakub Jelinek <jakub@redhat.com>
16594
16595 PR middle-end/89210
16596 * fold-const-call.c (fold_const_vec_convert): Pass true as last
16597 operand to new_unary_operation only if both element types are integral
16598 and it isn't a widening conversion. Return NULL_TREE if
16599 new_unary_operation failed.
16600
16601 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
16602
16603 PR target/88856
16604 * config/s390/s390.md: Remove load and test FP splitter.
16605
16606 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
16607
16608 PR target/89112
16609 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
16610 expand_compare_loop, expand_block_compare_gpr,
16611 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
16612 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
16613 #include "profile-count.h" and "predict.h" for types and functions
16614 needed to work with REG_BR_PROB notes.
16615
16616 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
16617
16618 PR target/89112
16619 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
16620 for the long branch case.
16621
16622 2019-02-05 Jakub Jelinek <jakub@redhat.com>
16623
16624 PR target/89188
16625 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
16626 can throw, non-call exceptions are enabled and we can't delete
16627 dead exceptions or alter cfg. Set must_clean if
16628 delete_insn_and_edges returns true, don't set it blindly for calls.
16629 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
16630
16631 PR rtl-optimization/89195
16632 * combine.c (make_extraction): For MEMs, don't extract bytes outside
16633 of the original MEM.
16634
16635 2019-02-05 Martin Liska <mliska@suse.cz>
16636
16637 PR gcov-profile/89000
16638 * gcov.c (function_summary): Remove argument.
16639 (file_summary): New function.
16640 (print_usage): Replace tabs with spaces.
16641 (generate_results): Use new function file_summary.
16642
16643 2019-02-05 Jakub Jelinek <jakub@redhat.com>
16644
16645 PR target/89186
16646 * optabs.c (prepare_cmp_insn): Pass x and y to
16647 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
16648
16649 2019-02-05 Richard Biener <rguenther@suse.de>
16650
16651 PR middle-end/89150
16652 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
16653 (struct bitmap_element): Drop chain_prev so we properly recurse on
16654 the prev member, supporting tree views.
16655 (struct bitmap_head): GTY skip the obstack member.
16656
16657 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
16658
16659 PR c/88698
16660 * doc/extend.texi (Vector Extensions): Add an example of using vector
16661 types together with x86 intrinsics.
16662
16663 2019-02-04 Alan Modra <amodra@gmail.com>
16664
16665 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
16666 str[] size to 160, and comment.
16667
16668 2019-02-04 Alan Modra <amodra@gmail.com>
16669
16670 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
16671 (rs6000_pltseq_template): Guard output of TLS markers with
16672 TARGET_TLS_MARKERS.
16673 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
16674 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
16675 to use inline PLT sequences.
16676 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
16677 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
16678 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
16679
16680 2019-02-04 Martin Liska <mliska@suse.cz>
16681
16682 PR ipa/88985
16683 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
16684 out when ipa_fn_summaries does not contain entry for callee.
16685
16686 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
16687
16688 * config/sparc/sparc.h: Remove superfluous blank lines.
16689 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
16690 (got_register_rtx): ...this.
16691 (sparc_got): Adjust to above renaming.
16692 (sparc_tls_got): Likewise.
16693 (sparc_delegitimize_address): Likewise.
16694 (sparc_output_mi_thunk): Likewise.
16695 (sparc_init_pic_reg): Likewise.
16696 (save_local_or_in_reg_p): Fix test on the GOT register.
16697 (USE_HIDDEN_LINKONCE): Move around.
16698 (get_pc_thunk_name): Likewise.
16699 (gen_load_pcrel_sym): Likewise.
16700 (load_got_register): Likewise.
16701
16702 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
16703
16704 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
16705 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
16706
16707 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
16708
16709 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
16710 into consideration.
16711
16712 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
16713
16714 * config.gcc (with_nds32_lib, glibc):
16715 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
16716 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
16717 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
16718
16719 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
16720
16721 PR target/89071
16722 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
16723 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
16724 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
16725 (*rcpsf2_sse): Ditto.
16726 (*rsqrtsf2_sse): Ditto.
16727 (sse4_1_round<mode<2): Ditto.
16728
16729 2019-02-03 Richard Biener <rguenther@suse.de>
16730
16731 PR debug/87295
16732 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
16733 orig.
16734
16735 2019-02-02 Jakub Jelinek <jakub@redhat.com>
16736
16737 PR middle-end/87887
16738 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
16739 Punt with warning on aggregate return or argument types. Ignore
16740 type/mode checking for uniform arguments.
16741
16742 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
16743
16744 * combine.c (try_combine): Do not print "Can't combine" messages unless
16745 printing failed combination attempts.
16746
16747 2019-02-01 Martin Jambor <mjambor@suse.cz>
16748
16749 PR hsa/87863
16750 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
16751 segment and global segment variables before making them static.
16752
16753 2019-02-01 Martin Jambor <mjambor@suse.cz>
16754
16755 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
16756 missed optimization dump with dump_enabled_p.
16757
16758 2019-02-01 Richard Biener <rguenther@suse.de>
16759
16760 PR middle-end/88597
16761 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
16762 the instantiate cache.
16763 (instantiate_scev_binary): Elide second operand procesing
16764 if equal to the first.
16765 * tree-chrec.c (chrec_contains_symbols): Add visited set.
16766 (chrec_contains_undetermined): Likewise.
16767 (tree_contains_chrecs): Likewise.
16768
16769 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
16770
16771 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
16772
16773 2019-02-01 Jakub Jelinek <jakub@redhat.com>
16774
16775 PR tree-optimization/89143
16776 * wide-int-range.h (wide_int_range_absu): Declare.
16777 * wide-int-range.cc (wide_int_range_absu): New function.
16778 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
16779
16780 PR tree-optimization/88107
16781 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
16782 instead of assertion that eh_region_outermost is non-NULL, if it
16783 is NULL, set *ALL to true and return NULL.
16784 (move_sese_region_to_fn): Adjust caller, if all is set, call
16785 duplicate_eh_regions with NULL region.
16786
16787 2019-02-01 Richard Biener <rguenth@suse.de>
16788
16789 PR rtl-optimization/88593
16790 * mode-switching.c (optimize_mode_switching): Free dominators before
16791 calling cleanup_cfg.
16792
16793 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
16794
16795 PR tree-optimization/88932
16796 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
16797
16798 2019-01-31 Jakub Jelinek <jakub@redhat.com>
16799
16800 PR middle-end/89137
16801 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
16802 bogus clang warning.
16803
16804 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
16805
16806 PR target/89071
16807 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
16808 alternative to avoid partial SSE register stall for TARGET_AVX.
16809 (truncdfsf2): Ditto.
16810 (sse4_1_round<mode>2): Ditto.
16811
16812 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
16813
16814 PR tree-optimization/89008
16815 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
16816 process anything of the form X * 0.
16817
16818 2019-01-31 Richard Biener <rguenther@suse.de>
16819
16820 PR tree-optimization/89135
16821 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
16822 with abnormal preds.
16823
16824 2019-01-31 Jakub Jelinek <jakub@redhat.com>
16825
16826 PR sanitizer/89124
16827 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
16828 always_inline callees into no_sanitize_address callers.
16829
16830 2019-01-31 Richard Biener <rguenther@suse.de>
16831
16832 PR rtl-optimization/89115
16833 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
16834
16835 2019-01-30 Martin Sebor <msebor@redhat.com>
16836
16837 PR other/89106
16838 * doc/extend.texi (cast to a union): Correct and expand.
16839
16840 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
16841
16842 PR rtl-optimization/87246
16843 * lra-constraints.c (simplify_operand_subreg): Reload memory
16844 in subreg if the address became invalid.
16845
16846 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
16847
16848 PR target/87064
16849 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
16850 Disable for little-endian.
16851
16852 2019-01-30 Richard Biener <rguenther@suse.de>
16853
16854 PR rtl-optimization/89115
16855 * opts.c (default_options_optimization): Reduce
16856 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
16857 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
16858 to the default.
16859
16860 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
16861
16862 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
16863 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
16864 type of vector element when vec_extract is implemented by direct
16865 move.
16866
16867 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
16868
16869 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
16870
16871 2019-01-30 Richard Biener <rguenther@suse.de>
16872
16873 PR tree-optimization/89111
16874 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
16875 canonicalization to appropriately sized access types.
16876
16877 2019-01-30 Jakub Jelinek <jakub@redhat.com>
16878
16879 PR c++/89105
16880 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
16881 for arguments to functions that are TU-local and shouldn't be
16882 referenced by assembly.
16883
16884 2019-01-30 Ulrich Drepper <drepper@redhat.com>
16885
16886 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
16887 after '='.
16888
16889 2019-01-29 Martin Sebor <msebor@redhat.com>
16890
16891 PR c/88956
16892 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
16893
16894 2019-01-29 Jakub Jelinek <jakub@redhat.com>
16895
16896 PR c++/66676
16897 PR ipa/89104
16898 * omp-simd-clone.c (simd_clone_clauses_extract)
16899 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
16900 OMP_CLAUSE_ALIGNED_ALIGNMENT.
16901
16902 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
16903
16904 * config.gcc: Force .init_array for ARC.
16905
16906 2019-01-29 Richard Biener <rguenther@suse.de>
16907
16908 PR debug/87295
16909 * dwarf2out.c (collect_skeleton_dies): New helper.
16910 (copy_decls_for_unworthy_types): Call it.
16911 (build_abbrev_table): Assert we do not try to replace
16912 DW_AT_signature refs with local refs.
16913
16914 2019-01-28 Jakub Jelinek <jakub@redhat.com>
16915
16916 PR middle-end/89002
16917 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
16918 for lastprivate/linear IV, push gimplify context around gimplify_assign
16919 and, if it needed any temporaries, pop it into a gimple bind around the
16920 sequence.
16921
16922 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
16923
16924 * common.opt (-Wattribute-alias): Remove "no-" from name.
16925 Make -Wattribute-alias command line option and
16926 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
16927
16928 2019-01-28 Jakub Jelinek <jakub@redhat.com>
16929
16930 PR target/89073
16931 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
16932 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
16933 x86 ISA options.
16934 (bmi2): Add missing @opindex.
16935 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
16936 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
16937 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
16938 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
16939 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
16940 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
16941 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
16942 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
16943 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
16944 xsavec, xsaveopt and xsaves options.
16945
16946 2019-01-28 Richard Biener <rguenther@suse.de>
16947
16948 PR debug/89076
16949 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
16950 support removal.
16951
16952 2019-01-28 Richard Biener <rguenther@suse.de>
16953
16954 PR tree-optimization/88739
16955 * tree-cfg.c (verify_types_in_gimple_reference): Verify
16956 BIT_FIELD_REFs only are applied to mode-precision operands
16957 when they are integral.
16958 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
16959 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
16960 BIT_FIELD_REFs of non-mode-precision integral operands.
16961
16962 2019-01-27 Jakub Jelinek <jakub@redhat.com>
16963
16964 PR target/87214
16965 * config/i386/sse.md
16966 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
16967 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
16968 first constants in pairs are multiples of 2. Formatting fixes.
16969 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
16970 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
16971 first constants in each quadruple are multiples of 4. Formatting fixes.
16972
16973 2019-01-26 Martin Jambor <mjambor@suse.cz>
16974
16975 PR ipa/88933
16976 * tree-inline.c: Include tree-cfgcleanup.h.
16977 (delete_unreachable_blocks_update_callgraph): Move...
16978 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
16979 ...here, make externally visible, make second argument bool, adjust
16980 all callers.
16981 * tree-cfgcleanup.c: Include cgraph.h.
16982 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
16983 Declare.
16984 * ipa-prop.c: Include tree-cfgcleanup.h.
16985 (ipcp_transform_function): Call
16986 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
16987
16988 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
16989
16990 PR rtl-optimization/88846
16991 * ira.c (process_set_for_memref_referenced_p): New.
16992 (memref_referenced_p): Add new param. Use
16993 process_set_for_memref_referenced_p. Add new switch cases.
16994 (memref_used_between_p): Pass new arg to memref_referenced_p.
16995
16996 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
16997
16998 PR target/88469
16999 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
17000 argument ABI_BREAK. Set to true if the calculated alignment has
17001 changed in gcc-9. Check bit-fields for their base type alignment.
17002 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
17003 (aarch64_function_arg_boundary): Likewise.
17004 (aarch64_gimplify_va_arg_expr): Likewise.
17005
17006 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
17007
17008 PR middle-end/89037
17009 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
17010 instead of accessing TREE_INT_CST_ELT directly.
17011
17012 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
17013
17014 * doc/sourcebuild.texi (Environment attributes): Add fenv and
17015 fenv_exceptions description.
17016
17017 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
17018
17019 PR rtl-optimization/87763
17020 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
17021 Allow SUBREG when matching CC_NZmode compare.
17022
17023 2019-01-25 Richard Biener <rguenther@suse.de>
17024
17025 PR tree-optimization/89049
17026 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
17027 Look at the pattern stmt to determine if the stmt is vectorized.
17028
17029 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
17030
17031 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
17032 (pred_mov<mode>): Handle all-register forms using both a new
17033 alternative and a split.
17034
17035 2019-01-25 Richard Biener <rguenther@suse.de>
17036
17037 PR tree-optimization/86865
17038 * graphite-scop-detection.c (scop_detection::can_represent_loop):
17039 Reject non-do-while loops.
17040
17041 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
17042
17043 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
17044 * config/rs6000/constraints.md (Q constraint): Use REG_P.
17045 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
17046 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
17047 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
17048 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
17049 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
17050 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
17051 vlogical_operand, gpc_reg_operand, int_reg_operand,
17052 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
17053 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
17054 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
17055 (save_world_operation, restore_world_operation, lmw_operation,
17056 stmw_operation): Use MEM_P and REG_P.
17057 (tie_operand): Use MEM_P.
17058 (vrsave_operation, crsave_operation): Use REG_P.
17059 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
17060 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
17061 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
17062 (call_operand): Use HARD_REGISTER_P.
17063 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
17064 Use CONST_INT_P.
17065 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
17066 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
17067 quad_aligned_load_p, replace_swapped_aligned_store,
17068 recombine_lvx_pattern, replace_swapped_aligned_load,
17069 recombine_stvx_pattern): Use MEM_P.
17070 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
17071 Use MEM_P and SYMBOL_REF_P.
17072 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
17073 (insn_is_swappable_p): Use REG_P and MEM_P.
17074 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
17075 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
17076 Use CONST_INT_P.
17077 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
17078 Use CONST_DOUBLE_P.
17079 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
17080 CONST_WIDE_INT_P.
17081 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
17082 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
17083 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
17084 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
17085 reg_or_subregno:
17086 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
17087 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
17088 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
17089 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
17090 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
17091 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
17092 rs6000_split_logical_di): Use CONST_INT_P.
17093 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
17094 REG_P and SYMBOL_REF_P.
17095 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
17096 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
17097 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
17098 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
17099 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
17100 (small_data_operand, print_operand_address): Use CONST_INT_P and
17101 SYMBOL_REF_P.
17102 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
17103 (rs6000_init_hard_regno_mode_ok, direct_move_p):
17104 Use HARD_REGISTER_NUM_P.
17105 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
17106 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
17107 SUBREG_P and SYMBOL_REF_P.
17108 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
17109 and HARD_REGISTER_NUM_P.
17110 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
17111 reg_or_subregno.
17112 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
17113 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
17114 MEM_P and REG_P.
17115 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
17116 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
17117 find_addr_reg): Use REG_P.
17118 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
17119 (rs6000_emit_le_vsx_move): Use SUBREG_P.
17120 (offsettable_ok_by_alignment, constant_pool_expr_p,
17121 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
17122 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
17123 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
17124 rs6000_assemble_integer, create_TOC_reference,
17125 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
17126 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
17127 (rs6000_split_vec_extract_var): Use reg_or_subregno.
17128 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
17129 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
17130 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
17131 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
17132 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
17133 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
17134 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
17135 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
17136 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
17137 and cbranch<mode>4): Use CONST_INT_P.
17138 (multiple define_splits): Use REG_P and SUBREG_P.
17139 (define_expands call, call_value): Use MEM_P.
17140 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
17141 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
17142 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
17143 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
17144 and HARD_REGISTER_NUM_P.
17145 (multiple define_splits): Use HARD_REGISTER_NUM_P.
17146
17147 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
17148
17149 PR rtl-optimization/88948
17150 * rtl.h (prepare_copy_insn): New prototype.
17151 * gcse.c (prepare_copy_insn): New function, split out from
17152 process_insert_insn.
17153 (process_insert_insn): Use prepare_copy_insn.
17154 * store-motion.c (replace_store_insn): Use prepare_copy_insn
17155 instead of gen_move_insn.
17156
17157 2019-01-24 Jakub Jelinek <jakub@redhat.com>
17158
17159 PR debug/89006
17160 * config/i386/i386.c (ix86_pic_register_p): Return true for
17161 UNSPEC_SET_GOT too.
17162
17163 PR tree-optimization/88964
17164 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
17165 punt if HONOR_SNANS (chrec).
17166
17167 PR middle-end/89015
17168 * tree-nested.c (convert_nonlocal_reference_stmt,
17169 convert_local_reference_stmt, convert_tramp_reference_stmt,
17170 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
17171 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
17172 or GIMPLE_OMP_TASK.
17173
17174 PR tree-optimization/89027
17175 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
17176 for "omp simd array" variables.
17177
17178 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
17179
17180 PR target/88469
17181 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
17182 force the alignment of m_val.
17183
17184 2019-01-24 Richard Biener <rguenther@suse.de>
17185
17186 PR lto/87187
17187 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
17188 When in "legacy" debug mode make sure to reset self-origins.
17189
17190 2019-01-24 Martin Liska <mliska@suse.cz>
17191
17192 PR gcov-profile/88994
17193 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
17194 result will be always smaller or equal to the original.
17195 * gcov.c (mangle_name): Fix else branch where we should
17196 also copy to PTR and shift the pointer.
17197
17198 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
17199
17200 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
17201 * vr-values.c (find_case_label_ranges): Fix a comment typo.
17202
17203 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
17204
17205 * common/config/i386/i386-common.c
17206 (OPTION_MASK_ISA_ENQCMD_SET,
17207 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
17208 (ix86_handle_option): Handle -menqcmd.
17209 * config.gcc (enqcmdintrin.h): New header file.
17210 * config/i386/cpuid.h (bit_ENQCMD): New bit.
17211 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
17212 -menqcmd.
17213 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
17214 function type.
17215 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
17216 __builtin_ia32_enqcmds): New builtins.
17217 * config/i386/i386-c.c (__ENQCMD__): New macro.
17218 * config/i386/i386-option.c (ix86_target_string): Add
17219 -menqcmd.
17220 (ix86_valid_target_attribute_inner_p): Likewise.
17221 * config/i386/i386-expand.c
17222 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
17223 IX86_BUILTIN_ENQCMDS.
17224 * config/i386/i386.h (TARGET_ENQCMD): New.
17225 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
17226 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
17227 (movdir64b_<mode>): Parameterize to enable share expansion code
17228 with ENQCMD in function ix86_expand_builtin.
17229 * config/i386/i386.opt: Add -menqcmd.
17230 * config/i386/immintrin.h: Include enqcmdintrin.h.
17231 * config/i386/enqcmdintrin.h: New intrinsic file.
17232 * doc/invoke.texi: Add -menqcmd.
17233
17234 2019-01-23 Bin Cheng <bin.cheng@arm.com>
17235 Steve Ellcey <sellcey@marvell.com>
17236
17237 PR target/85711
17238 * recog.c (address_operand): Return false on wrong mode for address.
17239 (constrain_operands): Check for mode with 'p' constraint.
17240
17241 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
17242
17243 PR target/88998
17244 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
17245 Disparage MMX alternative.
17246 (sse2_cvtpd2pi): Ditto.
17247 (sse2_cvttpd2pi): Ditto.
17248
17249 2019-01-23 David Malcolm <dmalcolm@redhat.com>
17250
17251 PR driver/89014
17252 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
17253 use-after-free of the result of
17254 aarch64_get_extension_string_for_isa_flags.
17255
17256 2019-01-23 Jakub Jelinek <jakub@redhat.com>
17257
17258 PR c/44715
17259 * doc/extend.texi: Document break and continue behavior in
17260 statement expressions.
17261
17262 2019-01-23 Richard Biener <rguenther@suse.de>
17263
17264 PR tree-optimization/89008
17265 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
17266 not leave another stray operand.
17267
17268 2019-01-23 Jakub Jelinek <jakub@redhat.com>
17269
17270 * BASE-VER: Bump to 9.0.1.
17271
17272 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
17273
17274 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
17275 thunk that returns by reference, use the type of the return object
17276 of the thunk instead of that of the alias to build the dereference.
17277
17278 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
17279
17280 * config/arc/atomic.md: Add operand to DMB instruction.
17281
17282 2019-01-23 Jakub Jelinek <jakub@redhat.com>
17283
17284 PR tree-optimization/88964
17285 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
17286 build_zero_cst instead of build_int_cst. Return false for loop
17287 invariants which honor signed zeros.
17288
17289 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
17290
17291 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
17292
17293 2019-01-22 Jakub Jelinek <jakub@redhat.com>
17294
17295 PR target/88965
17296 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
17297 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
17298 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
17299
17300 PR middle-end/88968
17301 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
17302 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
17303
17304 PR target/87064
17305 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
17306 Disable for little endian.
17307
17308 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
17309
17310 PR target/88469
17311 * config/arm/arm.c (arm_needs_double_word_align): Check
17312 DECL_BIT_FIELD_TYPE.
17313
17314 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
17315 H.J. Lu <hongjiu.lu@intel.com>
17316
17317 PR target/88909
17318 * config/i386/i386-builtin.def: Add mask2 to all builtin
17319 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
17320 SPECIAL_ARGS.
17321 * config/i386/i386.c (BDESC): Add mask2 to the definition.
17322 (BDESC_FIRST): Likewise.
17323 (define_builtin): Add an argument for mask2. Updated to handle
17324 both ix86_isa_flags and ix86_isa_flags2.
17325 (define_builtin_const): Likewise.
17326 (define_builtin_pure): Likewise.
17327 (define_builtin2): Deleted.
17328 (define_builtin_const2): Likewise.
17329 (builtin_description): Add a member, mask2.
17330 (bdesc_*): Add mask2 to builtin initializations.
17331 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
17332 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
17333 support.
17334 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
17335
17336 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
17337
17338 PR target/88954
17339 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
17340 noplt attribute.
17341
17342 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
17343
17344 PR target/88469
17345 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
17346 alignment is dominated by a bitfield with 64-bit aligned base type.
17347 (arm_function_arg): Emit a warning if the alignment has changed since
17348 earlier GCC releases.
17349 (arm_function_arg_boundary): Likewise.
17350 (arm_setup_incoming_varargs): Likewise.
17351
17352 2019-01-22 Richard Biener <rguenther@suse.de>
17353
17354 PR tree-optimization/88862
17355 * graphite-scop-detection.c
17356 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
17357
17358 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
17359
17360 * doc/extend.tex (AMD GCN Function Attributes): New section.
17361 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
17362 * doc/invoke.texi (AMD GCN Options): New section.
17363 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
17364
17365 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
17366
17367 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
17368 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
17369
17370 2019-01-22 Jakub Jelinek <jakub@redhat.com>
17371
17372 PR tree-optimization/88044
17373 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
17374 is false in the first iteration, but !every_iteration, return false
17375 instead of true with niter->niter zero.
17376
17377 PR rtl-optimization/88904
17378 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
17379 any nonequal registers before processing BB_END (b).
17380
17381 PR target/88905
17382 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
17383 GET_MODE (op0).
17384 (expand_binop_directly, expand_doubleword_clz,
17385 expand_doubleword_popcount, expand_ctz, expand_ffs,
17386 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
17387
17388 PR rtl-optimization/49429
17389 PR target/49454
17390 PR rtl-optimization/86334
17391 PR target/88906
17392 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
17393 addressable from here...
17394 (emit_block_op_via_libcall): ... to here.
17395
17396 2019-01-22 Richard Biener <rguenther@suse.de>
17397
17398 * tree-vect-loop.c (vect_analyze_loop_operations): Use
17399 auto_vec for cost vector to fix memleak.
17400 (vectorize_fold_left_reduction): Properly gather SLP defs.
17401 (vectorizable_comparison): Do not swap operands to properly
17402 gather SLP defs.
17403
17404 2019-01-22 Alan Modra <amodra@gmail.com>
17405
17406 PR target/88614
17407 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
17408 stays a reg. Allow a const_int.
17409 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
17410 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
17411 (IS_NOMARK_TLSGETADDR): Define.
17412 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
17413 (rs6000_output_tlsargs): New function.
17414 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
17415 __tls_get_addr call takes an arg.
17416 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
17417 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
17418 delete split..
17419 (call_value_nonlocal_sysv): ..or here, delete split.
17420 (tls_gdld_nomark): Delete.
17421 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
17422 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
17423 (call_value_nonlocal_sysv): Likewise.
17424 (call_value_nonlocal_sysv_secure): Likewise.
17425 (call_value_nonlocal_aix): Likewise.
17426 (call_value_indirect_aix): Likewise.
17427 (call_value_indirect_elfv2): Likewise.
17428 (call_value_local32, call_value_local64): Disable for no-mark tls.
17429 (call_value_local_aix): Likewise.
17430
17431 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
17432
17433 PR target/88938
17434 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
17435 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
17436
17437 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
17438
17439 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
17440 string contents as hash_map keys.
17441
17442 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
17443
17444 PR c/88928
17445 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
17446 for rvalue context. Handle rvalues correctly. Use min_align_of_type
17447 instead of TYPE_ALIGN.
17448 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
17449 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
17450 pointer from TYPE_STUB_DECL.
17451
17452 2019-01-21 Richard Biener <rguenther@suse.de>
17453
17454 PR tree-optimization/88934
17455 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
17456 at the possibly non-constant operand.
17457 (vect_get_constant_vectors): Adjust.
17458
17459 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
17460
17461 PR target/71659
17462 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
17463 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
17464 instead of _X86INTRIN_H_INCLUDED.
17465 * onfig/i386/clwbintrin.h: Likewise.
17466 * config/i386/pkuintrin.h: Likewise.
17467 * config/i386/prfchwintrin.h: Likewise.
17468 * config/i386/rdseedintrin.h: Likewise.
17469 * config/i386/wbnoinvdintrin.h: Likewise.
17470 * config/i386/xsavecintrin.h: Likewise.
17471 * config/i386/xsavesintrin.h: Likewise.
17472 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
17473 * config/i386/xsaveintrin.h: Likewise.
17474 * config/i386/xsaveoptintrin.h: Likewise.
17475 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
17476 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
17477 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
17478 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
17479 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
17480 * config/i386/immintrin.h: Here.
17481
17482 2019-01-20 Martin Jambor <mjambor@suse.cz>
17483
17484 PR ipa/87615
17485 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
17486 with aa_walk_budget.
17487 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
17488 aa_walk_budget_p parameter.
17489 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
17490 walk. Updated all callers.
17491 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
17492 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
17493 unmodified_parm.
17494 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
17495 parameter info. Extract info from fbi. Pass fbi to recursive calls
17496 and to unmodified_parm.
17497 (phi_result_unknown_predicate): New parameter fbi, removed parameter
17498 info, updated call to will_be_nonconstant_expr_predicate.
17499 (param_change_prob): New parameter fbi, limit AA walking.
17500 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
17501 calls to various above functions.
17502 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
17503 parameter. Use it to limit AA walking.
17504 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
17505 fbi, limit AA walk.
17506 (detect_type_change): New parameter fbi, pass it on to
17507 detect_type_change_from_memory_writes.
17508 (detect_type_change_ssa): Likewise.
17509 (aa_overwalked): Removed.
17510 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
17511 accordingly, adjust to the neew AA limiting scheme.
17512 (parm_ref_data_preserved_p): Likewise.
17513 (ipa_compute_jump_functions_for_edge): Adjust call to
17514 get_dynamic_type.
17515 (ipa_analyze_call_uses): Likewise.
17516 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
17517 (ipa_analyze_node): Initialize aa_walk_budget.
17518 (ipcp_transform_function): Likewise.
17519 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
17520 to get_dynamic_type.
17521
17522 2019-01-19 Jakub Jelinek <jakub@redhat.com>
17523
17524 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
17525 outside of #if CHECKING_P code.
17526
17527 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
17528
17529 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
17530 New function, split out from...
17531 (loop_versioning::analyze_stride): ...here.
17532 (loop_versioning::find_per_loop_multiplication): Use gassign.
17533 (loop_versioning::analyze_term_using_scevs): Return a success code.
17534 (loop_versioning::analyze_arbitrary_term): New function.
17535 (loop_versioning::analyze_address_fragment): Use
17536 analyze_arbitrary_term if all else fails.
17537
17538 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
17539
17540 PR target/88892
17541 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
17542 operands.
17543
17544 2019-01-18 Richard Biener <rguenther@suse.de>
17545
17546 PR tree-optimization/88903
17547 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
17548 scalar stmts a SLP shift amount is composed of when detecting
17549 shifts by scalars.
17550
17551 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
17552
17553 PR target/88799
17554 * config/arm/arm-cpus.in (mp): New feature.
17555 (sec): New feature.
17556 (fgroup ARMv7ve): Add mp and sec features.
17557 (arch armv7-a): Add options to allow mp and sec extensions.
17558 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
17559 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
17560 extenstions to the base architecture.
17561 (cpu cortex-a8): Add sec extension to the base architecture.
17562 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
17563 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
17564 variants down to the base v7-a varaint.
17565 * config/arm/t-multilib (v7_a_arch_variants): New variable.
17566 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
17567 of permitted extensions for -march=armv7-a and for
17568 -mcpu=generic-armv7-a.
17569
17570 2019-01-18 Martin Liska <mliska@suse.cz>
17571
17572 * params.def: Fix comment.
17573 * tree-profile.c (gimple_init_gcov_profiler): Bump function
17574 name.
17575 (gimple_gen_ic_func_profiler): Likewise.
17576
17577 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
17578
17579 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
17580 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
17581 and put in error checks for stack protector guard options.
17582 (aarch64_stack_protect_guard): New.
17583 (TARGET_STACK_PROTECT_GUARD): Define.
17584 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
17585 (reg_stack_protect_address<mode>): New.
17586 (stack_protect_set): Adjust for SSP_GLOBAL.
17587 (stack_protect_test): Likewise.
17588 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
17589 (-mstack-protector-guard): Likewise.
17590 (-mstack-protector-guard-offset): Likewise.
17591
17592 2019-01-18 Jakub Jelinek <jakub@redhat.com>
17593
17594 PR tree-optimization/86214
17595 * tree-inline.h (struct copy_body_data): Add
17596 add_clobbers_to_eh_landing_pads member.
17597 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
17598 (copy_edges_for_bb): Call it if EH edge destination is <
17599 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
17600 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
17601 if flag_stack_reuse != SR_NONE and clear it afterwards.
17602
17603 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
17604
17605 PR target/85596
17606 * doc/install.texi (with-multilib-list): Document for aarch64.
17607
17608 2019-01-18 Jakub Jelinek <jakub@redhat.com>
17609
17610 PR target/88734
17611 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
17612 (("..."))) with ("...").
17613
17614 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
17615
17616 * doc/extend.texi (Built-in Functions for Memory Model Aware
17617 Atomic Operations): Document atomic fetch and nand.
17618
17619 2019-01-18 Martin Liska <mliska@suse.cz>
17620 Richard Biener <rguenther@suse.de>
17621
17622 PR middle-end/88587
17623 * cgraph.h (create_version_clone_with_body): Add new argument
17624 with attributes.
17625 * cgraphclones.c (cgraph_node::create_version_clone): Add
17626 DECL_ATTRIBUTES to a newly created decl. And call
17627 valid_attribute_p so that proper cl_target_optimization_node
17628 is set for the newly created declaration.
17629 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
17630 for declaration.
17631 (expand_target_clones): Do not call valid_attribute_p, it must
17632 be already done.
17633 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
17634 vector types.
17635
17636 2019-01-17 Jakub Jelinek <jakub@redhat.com>
17637
17638 PR target/88734
17639 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
17640 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
17641 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
17642
17643 2019-01-17 Martin Sebor <msebor@redhat.com>
17644
17645 PR middle-end/88273
17646 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
17647 Handle anti-ranges the same as no range at all.
17648
17649 2018-01-17 Steve Ellcey <sellcey@cavium.com>
17650
17651 * config/aarch64/aarch64.c (cgraph.h): New include.
17652 (intl.h): New include.
17653 (supported_simd_type): New function.
17654 (currently_supported_simd_type): Ditto.
17655 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
17656 (aarch64_simd_clone_adjust): Ditto.
17657 (aarch64_simd_clone_usable): Ditto.
17658 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
17659 (TARGET_SIMD_CLONE_ADJUST): Ditto.
17660 (TARGET_SIMD_CLONE_USABLE): Ditto.
17661 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
17662 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
17663 call.
17664
17665 2019-01-17 Martin Sebor <msebor@redhat.com>
17666
17667 PR tree-optimization/88800
17668 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
17669 NO_WARNING bit here. Avoid folding out-of-bounds calls.
17670 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
17671 redundant argument. Add new argument and issue diagnostics under
17672 its control. Detect out-of-bounds access even with warnings
17673 disabled.
17674 (check_bounds_or_overlap): Change return type. Add argument.
17675 (wrestrict_dom_walker::check_call): Adjust.
17676 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
17677 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
17678 check_bounds_or_overlap's return value.
17679 (handle_builtin_stxncpy): Same.
17680 (handle_builtin_strcat): Same.
17681
17682 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17683 Kwok Cheung Yeung <kcy@codesourcery.com>
17684 Julian Brown <julian@codesourcery.com>
17685 Tom de Vries <tom@codesourcery.com>
17686
17687 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
17688
17689 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17690
17691 * doc/sourcebuild.texi: Document dg-require-effective-target
17692 llvm_binutils and offload_gcn.
17693
17694 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17695 Kwok Cheung Yeung <kcy@codesourcery.com>
17696 Julian Brown <julian@codesourcery.com>
17697 Tom de Vries <tom@codesourcery.com>
17698
17699 * doc/sourcebuild.texi: Document dg-required-effective-target
17700 exceptions.
17701
17702 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17703 Kwok Cheung Yeung <kcy@codesourcery.com>
17704 Julian Brown <julian@codesourcery.com>
17705 Tom de Vries <tom@codesourcery.com>
17706 Jan Hubicka <hubicka@ucw.cz>
17707 Martin Jambor <mjambor@suse.cz>
17708
17709 * config.gcc: Add amdgcn*-*-amdhsa configuration.
17710 * configure.ac: Check for dlopen.
17711 * configure: Regenerate.
17712
17713 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17714 Kwok Cheung Yeung <kcy@codesourcery.com>
17715 Julian Brown <julian@codesourcery.com>
17716 Tom de Vries <tom@codesourcery.com>
17717 Jan Hubicka <hubicka@ucw.cz>
17718 Martin Jambor <mjambor@suse.cz>
17719
17720 * common/config/gcn/gcn-common.c: New file.
17721 * config/gcn/driver-gcn.c: New file.
17722 * config/gcn/gcn-builtins.def: New file.
17723 * config/gcn/gcn-hsa.h: New file.
17724 * config/gcn/gcn-modes.def: New file.
17725 * config/gcn/gcn-opts.h: New file.
17726 * config/gcn/gcn-passes.def: New file.
17727 * config/gcn/gcn-protos.h: New file.
17728 * config/gcn/gcn-run.c: New file.
17729 * config/gcn/gcn-tree.c: New file.
17730 * config/gcn/gcn.c: New file.
17731 * config/gcn/gcn.h: New file.
17732 * config/gcn/gcn.opt: New file.
17733 * config/gcn/t-gcn-hsa: New file.
17734
17735 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
17736 Kwok Cheung Yeung <kcy@codesourcery.com>
17737 Julian Brown <julian@codesourcery.com>
17738 Tom de Vries <tom@codesourcery.com>
17739 Jan Hubicka <hubicka@ucw.cz>
17740 Martin Jambor <mjambor@suse.cz>
17741
17742 * config/gcn/constraints.md: New file.
17743 * config/gcn/gcn-valu.md: New file.
17744 * config/gcn/gcn.md: New file.
17745 * config/gcn/predicates.md: New file.
17746
17747 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
17748
17749 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
17750 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
17751 (stmt_uses_0_or_null_in_undefined_way): Likewise.
17752 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
17753
17754 2019-01-17 Tamar Christina <tamar.christina@arm.com>
17755
17756 PR target/88851
17757 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
17758 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
17759 it and document registers.
17760
17761 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
17762
17763 * config/aarch64/aarch64.c (ares_tunings): Define.
17764 * config/aarch64/aarch64-cores.def (ares): Use the above.
17765
17766 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
17767
17768 PR target/88794
17769 Revert:
17770 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
17771
17772 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
17773 (_mm512_fixupimm_round_pd): Update parameters and builtin.
17774 (_mm512_maskz_fixupimm_round_pd): Ditto.
17775 (_mm512_fixupimm_round_ps): Ditto.
17776 (_mm512_maskz_fixupimm_round_ps): Ditto.
17777 (_mm_fixupimm_round_sd): Ditto.
17778 (_mm_maskz_fixupimm_round_sd): Ditto.
17779 (_mm_fixupimm_round_ss): Ditto.
17780 (_mm_maskz_fixupimm_round_ss): Ditto.
17781 (_mm512_fixupimm_pd): Ditto.
17782 (_mm512_maskz_fixupimm_pd): Ditto.
17783 (_mm512_fixupimm_ps): Ditto.
17784 (_mm512_maskz_fixupimm_ps): Ditto.
17785 (_mm_fixupimm_sd): Ditto.
17786 (_mm_maskz_fixupimm_sd): Ditto.
17787 (_mm_fixupimm_ss): Ditto.
17788 (_mm_maskz_fixupimm_ss): Ditto.
17789 (_mm512_mask_fixupimm_round_pd): Update builtin.
17790 (_mm512_mask_fixupimm_round_ps): Ditto.
17791 (_mm_mask_fixupimm_round_sd): Ditto.
17792 (_mm_mask_fixupimm_round_ss): Ditto.
17793 (_mm512_mask_fixupimm_pd): Ditto.
17794 (_mm512_mask_fixupimm_ps): Ditto.
17795 (_mm_mask_fixupimm_sd): Ditto.
17796 (_mm_mask_fixupimm_ss): Ditto.
17797 * config/i386/avx512vlintrin.h:
17798 (_mm256_fixupimm_pd): Update parameters and builtin.
17799 (_mm256_maskz_fixupimm_pd): Ditto.
17800 (_mm256_fixupimm_ps): Ditto.
17801 (_mm256_maskz_fixupimm_ps): Ditto.
17802 (_mm_fixupimm_pd): Ditto.
17803 (_mm_maskz_fixupimm_pd): Ditto.
17804 (_mm_fixupimm_ps): Ditto.
17805 (_mm_maskz_fixupimm_ps): Ditto.
17806 (_mm256_mask_fixupimm_pd): Update builtin.
17807 (_mm256_mask_fixupimm_ps): Ditto.
17808 (_mm_mask_fixupimm_pd): Ditto.
17809 (_mm_mask_fixupimm_ps): Ditto.
17810 * config/i386/i386-builtin-types.def: Add new types and remove
17811 useless ones.
17812 * config/i386/i386-builtin.def: Update builtin definitions.
17813 * config/i386/i386.c: Handle new builtin types and remove useless ones.
17814 * config/i386/sse.md: Update VFIXUPIMM* patterns.
17815 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
17816 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
17817 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
17818 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
17819 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
17820 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
17821 * config/i386/subst.md:
17822 (round_saeonly_sd_mask_operand4): Add new subst_attr.
17823 (round_saeonly_sd_mask_op4): Ditto.
17824 (round_saeonly_expand_operand5): Ditto.
17825 (round_saeonly_expand): Update.
17826
17827 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
17828
17829 PR target/88794
17830 Revert:
17831 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
17832
17833 * config/i386/sse.md: Combine VFIXUPIMM* patterns
17834 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
17835 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
17836 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
17837 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
17838 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
17839 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
17840
17841 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
17842
17843 PR target/88794
17844 Revert:
17845 2018-12-15 Jakub Jelinek <jakub@redhat.com>
17846
17847 PR target/88489
17848 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
17849 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
17850 instead of UNSPEC_FIXUPIMM.
17851
17852 2019-01-17 Richard Biener <rguenther@suse.de>
17853
17854 PR lto/86736
17855 * dwarf2out.c (want_pubnames): Never generate pubnames sections
17856 and friends for the LTO part of debug info.
17857
17858 2019-01-17 Jakub Jelinek <jakub@redhat.com>
17859
17860 PR tree-optimization/86214
17861 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
17862 if x == y.
17863
17864 PR rtl-optimization/88870
17865 * dce.c (deletable_insn_p): Never delete const/pure calls that can
17866 throw if we can't alter the cfg or delete dead exceptions.
17867 (mark_insn): Don't call find_call_stack_args for such calls.
17868
17869 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
17870
17871 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
17872 prototypes for vec_st.
17873 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
17874 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
17875 mainly on signed/unsigned long long and double.
17876
17877 2019-01-16 David Malcolm <dmalcolm@redhat.com>
17878
17879 PR target/88861
17880 * combine.c (delete_noop_moves): Convert to "bool" return,
17881 returning true if any edges are eliminated.
17882 (combine_instructions): Also return true if delete_noop_moves
17883 returns true.
17884
17885 2019-01-16 Tamar Christina <tamar.christina@arm.com>
17886
17887 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
17888 correct max nunits for endian swap.
17889 (aarch64_expand_fcmla_builtin): Correct subreg code.
17890 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
17891 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
17892 lane endianness.
17893
17894 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
17895
17896 * config/alpha/alpha.c (alpha_gimplify_va_arg):
17897 Handle split indirect COMPLEX_TYPE arguments.
17898
17899 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
17900
17901 PR target/86891
17902 * config/aarch64/aarch64-modes.def: Add comment about how the carry
17903 bit is set by add and compare.
17904 (CC_ADC): New CC_MODE.
17905 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
17906 to cache the code and mode of X. Adjust the shape of a CC_Cmode
17907 comparison. Add detection for CC_ADCmode.
17908 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
17909 CC_ADCmode.
17910 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
17911 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
17912 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
17913 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
17914 to eliminate the need for zero-extending the operands.
17915 (add<mode>3_compareC_imm): Delete. Merge into ...
17916 (add<mode>3_compareC): ... this. Restructure the comparison to
17917 eliminate the need for zero-extending the operands.
17918 (add<mode>3_carryin): Use LTU for the overflow detection.
17919 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
17920 Reexpress comparison for overflow.
17921 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
17922 (add<mode>3_carryinC): Likewise.
17923 (add<mode>3_carryinV): Use LTU for carry between partials.
17924 * config/aarch64/predicates.md (aarch64_carry_operation): Update
17925 handling of CC_Cmode and add CC_ADCmode.
17926 (aarch64_borrow_operation): Likewise.
17927
17928 2019-01-16 Tamar Christina <tamar.christina@arm.com>
17929
17930 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands):
17931 Remove patternmode.
17932 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
17933 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
17934 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>):
17935 Remove endianness conversion.
17936
17937 2019-01-16 Martin Liska <mliska@suse.cz>
17938
17939 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
17940 for GCC driver.
17941 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
17942 a new argument.
17943 * gcc.c (add_sysrooted_hdrs_prefix): New function.
17944 (path_prefix_reset): Move up in the source file.
17945 (find_fortran_preinclude_file): Make complex search for the
17946 fortran header files.
17947
17948 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
17949
17950 * godump.c (go_output_typedef): When outputting a typedef, refer
17951 to the underlying type by its name and not its structure.
17952
17953 2019-01-15 David Malcolm <dmalcolm@redhat.com>
17954
17955 PR c++/88795
17956 * tree.c (build_function_type): Assert that arg_types is not
17957 error_mark_node.
17958
17959 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
17960
17961 PR inline-asm/52813
17962 * doc/extend.texi: Document that listing the stack pointer in the
17963 clobber list of an asm is a deprecated feature.
17964 * common.opt (Wdeprecated): Moved from c-family/c.opt.
17965 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
17966 warning instead of an error for clobbers of the stack pointer.
17967 Add a note explaining why.
17968
17969 2019-01-15 Richard Biener <rguenther@suse.de>
17970
17971 PR debug/88046
17972 * dwarf2out.c (gen_member_die): Do not generate inheritance
17973 DIEs late.
17974
17975 2019-01-15 Richard Biener <rguenther@suse.de>
17976
17977 PR tree-optimization/88855
17978 * tree-if-conv.c (combine_blocks): Collect
17979 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
17980
17981 2019-01-15 Tom de Vries <tdevries@suse.de>
17982
17983 PR target/80547
17984 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
17985 lhs == NULL_TREE for gang-level reduction.
17986
17987 2019-01-15 Richard Biener <rguenther@suse.de>
17988 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
17989
17990 PR ipa/88788
17991 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
17992 return true if SSA_NAME is already marked in visited bitmap.
17993 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
17994
17995 2019-01-15 Jakub Jelinek <jakub@redhat.com>
17996
17997 PR tree-optimization/88775
17998 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
17999 equal == 0 equality pointer comparisons some more if compared in
18000 integral types and either one points to an automatic var and the
18001 other to a global, or we can prove at least one points to the middle
18002 or both point to start or both point to end.
18003
18004 2019-01-14 Andi Kleen <ak@linux.intel.com>
18005
18006 * Makefile.in: Lower autofdo sampling rate by 10x.
18007 * Makefile.tpl: Dito.
18008
18009 2019-01-14 Tom Honermann <tom@honermann.net>
18010
18011 * defaults.h: Define CHAR8_TYPE.
18012
18013 2019-01-14 Martin Sebor <msebor@redhat.com>
18014
18015 PR target/88638
18016 * doc/extend.texi (Darwin Format Checks): Clarify.
18017
18018 2019-01-14 Richard Biener <rguenther@suse.de>
18019
18020 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
18021 whether we are in (simplify ...) or (match ...) context.
18022
18023 2019-01-14 Jakub Jelinek <jakub@redhat.com>
18024
18025 PR rtl-optimization/88796
18026 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
18027 * cfgexpand.c (stack_protect_prologue): Initialize
18028 crtl->stack_protect_guard_decl.
18029 * function.c (stack_protect_epilogue): Use it instead of calling
18030 targetm.stack_protect_guard again.
18031 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
18032 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
18033 crtl->stack_protect_guard_decl.
18034 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
18035 on the returned MEM_EXPR.
18036
18037 2019-01-12 Tom de Vries <tdevries@suse.de>
18038
18039 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
18040 vector length using -fopenacc-dim.
18041
18042 2019-01-12 Tom de Vries <tdevries@suse.de>
18043
18044 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
18045 lengths into account.
18046
18047 2019-01-12 Svante Signell <svante.signell@gmail.com>
18048
18049 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
18050 (TARGET_CAN_SPLIT_STACK): Define.
18051 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
18052
18053 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
18054
18055 * params.def (inline-unit-growth): Set to 40.
18056
18057 2019-01-12 Jakub Jelinek <jakub@redhat.com>
18058
18059 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
18060
18061 2019-01-12 Tom de Vries <tdevries@suse.de>
18062
18063 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
18064 region calling vector-partitionable routine, set default_vector_length
18065 to WARP_SIZE.
18066
18067 2019-01-12 Tom de Vries <tdevries@suse.de>
18068
18069 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
18070 variable default_vector_length.
18071
18072 2019-01-12 Tom de Vries <tdevries@suse.de>
18073
18074 PR middle-end/88703
18075 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
18076 from oacc_default_dims, as oacc_validate_dims would do it, and apply
18077 dimensions limits.
18078
18079 2019-01-12 Tom de Vries <tdevries@suse.de>
18080
18081 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
18082 (nvptx_goacc_validate_dims): Add used parameter.
18083 * doc/tm.texi: Regenerate.
18084 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
18085 argument to call to targetm.goacc.validate_dims.
18086 (default_goacc_validate_dims): Add used
18087 parameter.
18088 * target.def (validate_dims): Add used parameter in DEFHOOK.
18089 * targhooks.h (default_goacc_validate_dims): Add used parameter.
18090
18091 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18092
18093 PR middle-end/85956
18094 PR lto/88733
18095 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
18096 field.
18097 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
18098 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
18099 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
18100 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
18101
18102 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
18103
18104 PR rtl-optimization/87305
18105 * lra-assigns.c
18106 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
18107 for little endian pseudos used as paradoxical subreg.
18108
18109 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18110
18111 PR tree-optimization/88693
18112 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
18113 for STRING_CSTs that don't contain any NUL characters in the first
18114 TREE_STRING_LENGTH bytes.
18115
18116 2019-01-11 Alan Modra <amodra@gmail.com>
18117
18118 PR 88777
18119 PR 88614
18120 * genattrtab.c (min_fn): Don't translate values.
18121 (min_attr_value): Return INT_MAX when the value can't be calculated.
18122 Return minimum among any values that can be calculated.
18123 (max_attr_value): Adjust.
18124
18125 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18126
18127 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
18128
18129 2019-01-11 Steve Ellcey <sellcey@marvell.com>
18130
18131 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
18132 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
18133 (aarch64_return_call_with_max_clobbers): New function.
18134 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
18135 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
18136 argument.
18137 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
18138 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
18139 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
18140 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
18141 * cselib.c (cselib_process_insn): Add argument to
18142 targetm.hard_regno_call_part_clobbered call.
18143 * ira-conflicts.c (ira_build_conflicts): Ditto.
18144 * ira-costs.c (ira_tune_allocno_costs): Ditto.
18145 * lra-constraints.c (inherit_reload_reg): Ditto.
18146 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
18147 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
18148 argument. Call targetm.return_call_with_max_clobbers.
18149 Add argument to targetm.hard_regno_call_part_clobbered call.
18150 (calls_have_same_clobbers_p): New function.
18151 (process_bb_lives): Add call_insn and last_call_insn variables.
18152 Pass call_insn to check_pseudos_live_through_calls.
18153 Modify if stmt to check targetm.return_call_with_max_clobbers.
18154 Update setting of flush variable.
18155 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
18156 to false.
18157 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
18158 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
18159 targetm.hard_regno_call_part_clobbered call.
18160 * reginfo.c (choose_hard_reg_mode): Ditto.
18161 * regrename.c (check_new_reg_p): Ditto.
18162 * reload.c (find_equiv_reg): Ditto.
18163 * reload1.c (emit_reload_insns): Ditto.
18164 * sched-deps.c (deps_analyze_insn): Ditto.
18165 * sel-sched.c (init_regs_for_mode): Ditto.
18166 (mark_unavailable_hard_regs): Ditto.
18167 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
18168 * target.def (hard_regno_call_part_clobbered): Add insn argument.
18169 (return_call_with_max_clobbers): New target function.
18170 * doc/tm.texi: Regenerate.
18171 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
18172 * hooks.c (hook_bool_uint_mode_false): Change to
18173 hook_bool_insn_uint_mode_false.
18174 * hooks.h (hook_bool_uint_mode_false): Ditto.
18175
18176 2019-01-11 Steve Ellcey <sellcey@marvell.com>
18177
18178 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
18179 (aarch64_remove_extra_call_preserved_regs): New function.
18180 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
18181 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
18182 * doc/tm.texi: Regenerate.
18183 * final.c (get_call_reg_set_usage): Call new hook.
18184 * target.def (remove_extra_call_preserved_regs): New hook.
18185 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
18186 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
18187
18188 2019-01-11 Jakub Jelinek <jakub@redhat.com>
18189
18190 PR bootstrap/88714
18191 * passes.c (finish_optimization_passes): Call print_combine_total_stats
18192 inside of pass_combine_1 dump rather than pass_profile_1.
18193
18194 2019-01-11 Tom de Vries <tdevries@suse.de>
18195
18196 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
18197 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
18198 (PTX_NUM_PER_WORKER_BARRIERS): Define.
18199 (nvptx_apply_dim_limits): Prevent vector_length 64 and
18200 num_workers 16.
18201
18202 2019-01-11 Tom de Vries <tdevries@suse.de>
18203
18204 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
18205
18206 2019-01-11 Jan Beulich <jbeulich@suse.com>
18207
18208 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
18209 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
18210 sse2_cvtsi2sd): Add {l}.
18211 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
18212 syntax.
18213
18214 2019-01-10 Jakub Jelinek <jakub@redhat.com>
18215
18216 PR target/88785
18217 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
18218 define_expand.
18219 (*float<floatunssuffix>v2div2sf2): New define_insn.
18220 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
18221 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
18222 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
18223 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
18224 match_operands with "const0_operand" "C".
18225
18226 2019-01-10 Tamar Christina <tamar.christina@arm.com>
18227
18228 * config/aarch64/aarch64-builtins.c
18229 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
18230 (aarch64_init_simd_builtins): ...Here
18231
18232 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
18233
18234 PR rtl-optimization/87305
18235 * lra-assigns.c
18236 (setup_live_pseudos_and_spill_after_risky_transforms): Check
18237 allocation for big endian pseudos used as paradoxical subregs and
18238 spill them if it is wrong.
18239 * lra-constraints.c (lra_constraints): Add a comment.
18240
18241 2019-01-10 Richard Biener <rguenther@suse.de>
18242
18243 PR tree-optimization/88792
18244 * tree-ssa-pre.c (get_representative_for): Do not return a
18245 value-number here.
18246
18247 2019-01-10 Jakub Jelinek <jakub@redhat.com>
18248
18249 PR middle-end/84877
18250 PR bootstrap/88450
18251 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
18252 (assign_parm_setup_block): Do the argument slot realignment here
18253 instead.
18254
18255 2019-01-10 Stefan Agner <stefan@agner.ch>
18256
18257 PR target/88648
18258 * config/arm/arm.c (arm_option_override_internal): Force
18259 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
18260
18261 2019-01-10 Jakub Jelinek <jakub@redhat.com>
18262
18263 PR c/88568
18264 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
18265 DECL_EXTERNAL.
18266
18267 2019-01-10 Tamar Christina <tamar.christina@arm.com>
18268
18269 * config/arm/arm-builtins.c
18270 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
18271 (MAC_LANE_PAIR_QUALIFIERS): New.
18272 (arm_expand_builtin_args): Use it.
18273 (arm_expand_builtin_1): Likewise.
18274 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
18275 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
18276 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
18277 * config/arm/arm_neon.h:
18278 (vcadd_rot90_f16): New.
18279 (vcaddq_rot90_f16): New.
18280 (vcadd_rot270_f16): New.
18281 (vcaddq_rot270_f16): New.
18282 (vcmla_f16): New.
18283 (vcmlaq_f16): New.
18284 (vcmla_lane_f16): New.
18285 (vcmla_laneq_f16): New.
18286 (vcmlaq_lane_f16): New.
18287 (vcmlaq_laneq_f16): New.
18288 (vcmla_rot90_f16): New.
18289 (vcmlaq_rot90_f16): New.
18290 (vcmla_rot90_lane_f16): New.
18291 (vcmla_rot90_laneq_f16): New.
18292 (vcmlaq_rot90_lane_f16): New.
18293 (vcmlaq_rot90_laneq_f16): New.
18294 (vcmla_rot180_f16): New.
18295 (vcmlaq_rot180_f16): New.
18296 (vcmla_rot180_lane_f16): New.
18297 (vcmla_rot180_laneq_f16): New.
18298 (vcmlaq_rot180_lane_f16): New.
18299 (vcmlaq_rot180_laneq_f16): New.
18300 (vcmla_rot270_f16): New.
18301 (vcmlaq_rot270_f16): New.
18302 (vcmla_rot270_lane_f16): New.
18303 (vcmla_rot270_laneq_f16): New.
18304 (vcmlaq_rot270_lane_f16): New.
18305 (vcmlaq_rot270_laneq_f16): New.
18306 (vcadd_rot90_f32): New.
18307 (vcaddq_rot90_f32): New.
18308 (vcadd_rot270_f32): New.
18309 (vcaddq_rot270_f32): New.
18310 (vcmla_f32): New.
18311 (vcmlaq_f32): New.
18312 (vcmla_lane_f32): New.
18313 (vcmla_laneq_f32): New.
18314 (vcmlaq_lane_f32): New.
18315 (vcmlaq_laneq_f32): New.
18316 (vcmla_rot90_f32): New.
18317 (vcmlaq_rot90_f32): New.
18318 (vcmla_rot90_lane_f32): New.
18319 (vcmla_rot90_laneq_f32): New.
18320 (vcmlaq_rot90_lane_f32): New.
18321 (vcmlaq_rot90_laneq_f32): New.
18322 (vcmla_rot180_f32): New.
18323 (vcmlaq_rot180_f32): New.
18324 (vcmla_rot180_lane_f32): New.
18325 (vcmla_rot180_laneq_f32): New.
18326 (vcmlaq_rot180_lane_f32): New.
18327 (vcmlaq_rot180_laneq_f32): New.
18328 (vcmla_rot270_f32): New.
18329 (vcmlaq_rot270_f32): New.
18330 (vcmla_rot270_lane_f32): New.
18331 (vcmla_rot270_laneq_f32): New.
18332 (vcmlaq_rot270_lane_f32): New.
18333 (vcmlaq_rot270_laneq_f32): New.
18334 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
18335 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
18336 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
18337 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
18338 vcmlaq_lane270): New.
18339 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
18340 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
18341 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
18342 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
18343 (arm_option_reconfigure_globals): Use them.
18344 * config/arm/iterators.md (VDF, VQ_HSF): New.
18345 (VCADD, VCMLA): New.
18346 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
18347 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
18348 New.
18349 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
18350 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
18351
18352 2019-01-10 Tamar Christina <tamar.christina@arm.com>
18353
18354 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
18355 Add qualifier_lane_pair_index.
18356 (emit-rtl.h): Include.
18357 (TYPES_QUADOP_LANE_PAIR): New.
18358 (aarch64_simd_expand_args): Use it.
18359 (aarch64_simd_expand_builtin): Likewise.
18360 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
18361 New.
18362 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
18363 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
18364 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
18365 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
18366 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
18367 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
18368 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
18369 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
18370 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
18371 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
18372 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
18373 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
18374 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
18375 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
18376 Add __ARM_FEATURE_COMPLEX.
18377 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
18378 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
18379 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
18380 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
18381 fcmlaq_lane270): New.
18382 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
18383 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
18384 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
18385 * config/aarch64/arm_neon.h:
18386 (vcadd_rot90_f16): New.
18387 (vcaddq_rot90_f16): New.
18388 (vcadd_rot270_f16): New.
18389 (vcaddq_rot270_f16): New.
18390 (vcmla_f16): New.
18391 (vcmlaq_f16): New.
18392 (vcmla_lane_f16): New.
18393 (vcmla_laneq_f16): New.
18394 (vcmlaq_lane_f16): New.
18395 (vcmlaq_rot90_lane_f16): New.
18396 (vcmla_rot90_laneq_f16): New.
18397 (vcmla_rot90_lane_f16): New.
18398 (vcmlaq_rot90_f16): New.
18399 (vcmla_rot90_f16): New.
18400 (vcmlaq_laneq_f16): New.
18401 (vcmla_rot180_laneq_f16): New.
18402 (vcmla_rot180_lane_f16): New.
18403 (vcmlaq_rot180_f16): New.
18404 (vcmla_rot180_f16): New.
18405 (vcmlaq_rot90_laneq_f16): New.
18406 (vcmlaq_rot270_laneq_f16): New.
18407 (vcmlaq_rot270_lane_f16): New.
18408 (vcmla_rot270_laneq_f16): New.
18409 (vcmlaq_rot270_f16): New.
18410 (vcmla_rot270_f16): New.
18411 (vcmlaq_rot180_laneq_f16): New.
18412 (vcmlaq_rot180_lane_f16): New.
18413 (vcmla_rot270_lane_f16): New.
18414 (vcadd_rot90_f32): New.
18415 (vcaddq_rot90_f32): New.
18416 (vcaddq_rot90_f64): New.
18417 (vcadd_rot270_f32): New.
18418 (vcaddq_rot270_f32): New.
18419 (vcaddq_rot270_f64): New.
18420 (vcmla_f32): New.
18421 (vcmlaq_f32): New.
18422 (vcmlaq_f64): New.
18423 (vcmla_lane_f32): New.
18424 (vcmla_laneq_f32): New.
18425 (vcmlaq_lane_f32): New.
18426 (vcmlaq_laneq_f32): New.
18427 (vcmla_rot90_f32): New.
18428 (vcmlaq_rot90_f32): New.
18429 (vcmlaq_rot90_f64): New.
18430 (vcmla_rot90_lane_f32): New.
18431 (vcmla_rot90_laneq_f32): New.
18432 (vcmlaq_rot90_lane_f32): New.
18433 (vcmlaq_rot90_laneq_f32): New.
18434 (vcmla_rot180_f32): New.
18435 (vcmlaq_rot180_f32): New.
18436 (vcmlaq_rot180_f64): New.
18437 (vcmla_rot180_lane_f32): New.
18438 (vcmla_rot180_laneq_f32): New.
18439 (vcmlaq_rot180_lane_f32): New.
18440 (vcmlaq_rot180_laneq_f32): New.
18441 (vcmla_rot270_f32): New.
18442 (vcmlaq_rot270_f32): New.
18443 (vcmlaq_rot270_f64): New.
18444 (vcmla_rot270_lane_f32): New.
18445 (vcmla_rot270_laneq_f32): New.
18446 (vcmlaq_rot270_lane_f32): New.
18447 (vcmlaq_rot270_laneq_f32): New.
18448 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
18449 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
18450 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
18451 (FCADD, FCMLA): New.
18452 (rot): New.
18453 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
18454
18455 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
18456
18457 PR other/16615
18458
18459 * config/pa/pa.c: Change "can not" to "cannot".
18460 * gimple-ssa-evrp-analyze.c: Likewise.
18461 * ipa-icf.c: Likewise.
18462 * ipa-polymorphic-call.c: Likewise.
18463 * ipa-pure-const.c: Likewise.
18464 * lra-constraints.c: Likewise.
18465 * lra-remat.c: Likewise.
18466 * reload1.c: Likewise.
18467 * reorg.c: Likewise.
18468 * tree-ssa-uninit.c: Likewise.
18469
18470 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
18471
18472 PR other/16615
18473
18474 * Makefile.in: Mechanically replace "can not" with "cannot".
18475 * alias.c: Likewise.
18476 * builtins.c: Likewise.
18477 * calls.c: Likewise.
18478 * cgraph.c: Likewise.
18479 * cgraph.h: Likewise.
18480 * cgraphclones.c: Likewise.
18481 * cgraphunit.c: Likewise.
18482 * combine-stack-adj.c: Likewise.
18483 * combine.c: Likewise.
18484 * common/config/i386/i386-common.c: Likewise.
18485 * config/aarch64/aarch64.c: Likewise.
18486 * config/alpha/sync.md: Likewise.
18487 * config/arc/arc.c: Likewise.
18488 * config/arc/predicates.md: Likewise.
18489 * config/arm/arm-c.c: Likewise.
18490 * config/arm/arm.c: Likewise.
18491 * config/arm/arm.h: Likewise.
18492 * config/arm/arm.md: Likewise.
18493 * config/arm/cortex-r4f.md: Likewise.
18494 * config/csky/csky.c: Likewise.
18495 * config/csky/csky.h: Likewise.
18496 * config/darwin-f.c: Likewise.
18497 * config/epiphany/epiphany.md: Likewise.
18498 * config/i386/i386.c: Likewise.
18499 * config/i386/sol2.h: Likewise.
18500 * config/m68k/m68k.c: Likewise.
18501 * config/mcore/mcore.h: Likewise.
18502 * config/microblaze/microblaze.md: Likewise.
18503 * config/mips/20kc.md: Likewise.
18504 * config/mips/sb1.md: Likewise.
18505 * config/nds32/nds32.c: Likewise.
18506 * config/nds32/predicates.md: Likewise.
18507 * config/pa/pa.c: Likewise.
18508 * config/rs6000/e300c2c3.md: Likewise.
18509 * config/rs6000/rs6000.c: Likewise.
18510 * config/s390/s390.h: Likewise.
18511 * config/sh/sh.c: Likewise.
18512 * config/sh/sh.md: Likewise.
18513 * config/spu/vmx2spu.h: Likewise.
18514 * cprop.c: Likewise.
18515 * dbxout.c: Likewise.
18516 * df-scan.c: Likewise.
18517 * doc/cfg.texi: Likewise.
18518 * doc/extend.texi: Likewise.
18519 * doc/fragments.texi: Likewise.
18520 * doc/gty.texi: Likewise.
18521 * doc/invoke.texi: Likewise.
18522 * doc/lto.texi: Likewise.
18523 * doc/md.texi: Likewise.
18524 * doc/objc.texi: Likewise.
18525 * doc/rtl.texi: Likewise.
18526 * doc/tm.texi: Likewise.
18527 * dse.c: Likewise.
18528 * emit-rtl.c: Likewise.
18529 * emit-rtl.h: Likewise.
18530 * except.c: Likewise.
18531 * expmed.c: Likewise.
18532 * expr.c: Likewise.
18533 * fold-const.c: Likewise.
18534 * genautomata.c: Likewise.
18535 * gimple-fold.c: Likewise.
18536 * hard-reg-set.h: Likewise.
18537 * ifcvt.c: Likewise.
18538 * ipa-comdats.c: Likewise.
18539 * ipa-cp.c: Likewise.
18540 * ipa-devirt.c: Likewise.
18541 * ipa-fnsummary.c: Likewise.
18542 * ipa-icf.c: Likewise.
18543 * ipa-inline-transform.c: Likewise.
18544 * ipa-inline.c: Likewise.
18545 * ipa-polymorphic-call.c: Likewise.
18546 * ipa-profile.c: Likewise.
18547 * ipa-prop.c: Likewise.
18548 * ipa-pure-const.c: Likewise.
18549 * ipa-reference.c: Likewise.
18550 * ipa-split.c: Likewise.
18551 * ipa-visibility.c: Likewise.
18552 * ipa.c: Likewise.
18553 * ira-build.c: Likewise.
18554 * ira-color.c: Likewise.
18555 * ira-conflicts.c: Likewise.
18556 * ira-costs.c: Likewise.
18557 * ira-int.h: Likewise.
18558 * ira-lives.c: Likewise.
18559 * ira.c: Likewise.
18560 * ira.h: Likewise.
18561 * loop-invariant.c: Likewise.
18562 * loop-unroll.c: Likewise.
18563 * lower-subreg.c: Likewise.
18564 * lra-assigns.c: Likewise.
18565 * lra-constraints.c: Likewise.
18566 * lra-eliminations.c: Likewise.
18567 * lra-lives.c: Likewise.
18568 * lra-remat.c: Likewise.
18569 * lra-spills.c: Likewise.
18570 * lra.c: Likewise.
18571 * lto-cgraph.c: Likewise.
18572 * lto-streamer-out.c: Likewise.
18573 * postreload-gcse.c: Likewise.
18574 * predict.c: Likewise.
18575 * profile-count.h: Likewise.
18576 * profile.c: Likewise.
18577 * recog.c: Likewise.
18578 * ree.c: Likewise.
18579 * reload.c: Likewise.
18580 * reload1.c: Likewise.
18581 * reorg.c: Likewise.
18582 * resource.c: Likewise.
18583 * rtl.def: Likewise.
18584 * rtl.h: Likewise.
18585 * rtlanal.c: Likewise.
18586 * sched-deps.c: Likewise.
18587 * sched-ebb.c: Likewise.
18588 * sched-rgn.c: Likewise.
18589 * sel-sched-ir.c: Likewise.
18590 * sel-sched.c: Likewise.
18591 * shrink-wrap.c: Likewise.
18592 * simplify-rtx.c: Likewise.
18593 * symtab.c: Likewise.
18594 * target.def: Likewise.
18595 * toplev.c: Likewise.
18596 * tree-call-cdce.c: Likewise.
18597 * tree-cfg.c: Likewise.
18598 * tree-complex.c: Likewise.
18599 * tree-core.h: Likewise.
18600 * tree-eh.c: Likewise.
18601 * tree-inline.c: Likewise.
18602 * tree-loop-distribution.c: Likewise.
18603 * tree-nrv.c: Likewise.
18604 * tree-profile.c: Likewise.
18605 * tree-sra.c: Likewise.
18606 * tree-ssa-alias.c: Likewise.
18607 * tree-ssa-dce.c: Likewise.
18608 * tree-ssa-dom.c: Likewise.
18609 * tree-ssa-forwprop.c: Likewise.
18610 * tree-ssa-loop-im.c: Likewise.
18611 * tree-ssa-loop-ivcanon.c: Likewise.
18612 * tree-ssa-loop-ivopts.c: Likewise.
18613 * tree-ssa-loop-niter.c: Likewise.
18614 * tree-ssa-phionlycprop.c: Likewise.
18615 * tree-ssa-phiopt.c: Likewise.
18616 * tree-ssa-propagate.c: Likewise.
18617 * tree-ssa-threadedge.c: Likewise.
18618 * tree-ssa-threadupdate.c: Likewise.
18619 * tree-ssa-uninit.c: Likewise.
18620 * tree-ssanames.c: Likewise.
18621 * tree-streamer-out.c: Likewise.
18622 * tree.c: Likewise.
18623 * tree.h: Likewise.
18624 * vr-values.c: Likewise.
18625
18626 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
18627
18628 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
18629 (ix86_split_xorsign): Ditto.
18630 * config/i386/i386.c (ix86_expand_xorsign): New function.
18631 (ix86_split_xorsign): Ditto.
18632 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
18633 (xorsign<mode>3): New expander.
18634 (xorsign<mode>3_1): New insn_and_split pattern.
18635 * config/i386/sse.md (xorsign<mode>3): New expander.
18636
18637 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
18638
18639 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
18640 (*tablejump_sp64): Likewise.
18641 (*tablejump<P:mode>): ...this.
18642 (*call_address_sp32): Merge into...
18643 (*call_address_sp64): Likewise.
18644 (*call_address<P:mode>): ...this.
18645 (*call_symbolic_sp32): Merge into...
18646 (*call_symbolic_sp64): Likewise.
18647 (*call_symbolic<P:mode>): ...this.
18648 (call_value): Remove constraint and add predicate.
18649 (*call_value_address_sp32): Merge into...
18650 (*call_value_address_sp64): Likewise.
18651 (*call_value_address<P:mode>): ...this.
18652 (*call_value_symbolic_sp32): Merge into...
18653 (*call_value_symbolic_sp64): Likewise.
18654 (*call_value_symbolic<P:mode>): ...this.
18655 (*sibcall_symbolic_sp32): Merge into...
18656 (*sibcall_symbolic_sp64): Likewise.
18657 (*sibcall_symbolic<P:mode>): ...this.
18658 (sibcall_value): Remove constraint and add predicate.
18659 (*sibcall_value_symbolic_sp32): Merge into...
18660 (*sibcall_value_symbolic_sp64): Likewise.
18661 (*sibcall_value_symbolic<P:mode>): ...this.
18662 (window_save): Minor tweak.
18663 (*branch_sp32): Merge into...
18664 (*branch_sp64): Likewise.
18665 (*branch<P:mode>): ...this.
18666
18667 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
18668 James Clarke <jrtc27@jrtc27.com>
18669
18670 PR target/84010
18671 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
18672 consistently in TLS address generation and adjust code to the renaming
18673 of patterns. Mark calls to __tls_get_addr as const.
18674 * config/sparc/sparc.md (tgd_hi22): Turn into...
18675 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
18676 (tgd_lo10): Turn into...
18677 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
18678 (tgd_add32): Merge into...
18679 (tgd_add64): Likewise.
18680 (tgd_add<P:mode>): ...this and use Pmode throughout.
18681 (tldm_hi22): Turn into...
18682 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
18683 (tldm_lo10): Turn into...
18684 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
18685 (tldm_add32): Merge into...
18686 (tldm_add64): Likewise.
18687 (tldm_add<P:mode>): ...this and use Pmode throughout.
18688 (tldm_call32): Merge into...
18689 (tldm_call64): Likewise.
18690 (tldm_call<P:mode>): ...this and use Pmode throughout.
18691 (tldo_hix22): Turn into...
18692 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
18693 (tldo_lox10): Turn into...
18694 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
18695 (tldo_add32): Merge into...
18696 (tldo_add64): Likewise.
18697 (tldo_add<P:mode>): ...this and use Pmode throughout.
18698 (tie_hi22): Turn into...
18699 (tie_hi22<P:mode>): ...this and use Pmode throughout.
18700 (tie_lo10): Turn into...
18701 (tie_lo10<P:mode>): ...this and use Pmode throughout.
18702 (tie_ld64): Use DImode throughout.
18703 (tie_add32): Merge into...
18704 (tie_add64): Likewise.
18705 (tie_add<P:mode>): ...this and use Pmode throughout.
18706 (tle_hix22_sp32): Merge into...
18707 (tle_hix22_sp64): Likewise.
18708 (tle_hix22<P:mode>): ...this and use Pmode throughout.
18709 (tle_lox22_sp32): Merge into...
18710 (tle_lox22_sp64): Likewise.
18711 (tle_lox22<P:mode>): ...this and use Pmode throughout.
18712 (*tldo_ldub_sp32): Merge into...
18713 (*tldo_ldub_sp64): Likewise.
18714 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
18715 (*tldo_ldub1_sp32): Merge into...
18716 (*tldo_ldub1_sp64): Likewise.
18717 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
18718 (*tldo_ldub2_sp32): Merge into...
18719 (*tldo_ldub2_sp64): Likewise.
18720 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
18721 (*tldo_ldsb1_sp32): Merge into...
18722 (*tldo_ldsb1_sp64): Likewise.
18723 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
18724 (*tldo_ldsb2_sp32): Merge into...
18725 (*tldo_ldsb2_sp64): Likewise.
18726 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
18727 (*tldo_ldub3_sp64): Use DImode throughout.
18728 (*tldo_ldsb3_sp64): Likewise.
18729 (*tldo_lduh_sp32): Merge into...
18730 (*tldo_lduh_sp64): Likewise.
18731 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
18732 (*tldo_lduh1_sp32): Merge into...
18733 (*tldo_lduh1_sp64): Likewise.
18734 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
18735 (*tldo_ldsh1_sp32): Merge into...
18736 (*tldo_ldsh1_sp64): Likewise.
18737 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
18738 (*tldo_lduh2_sp64): Use DImode throughout.
18739 (*tldo_ldsh2_sp64): Likewise.
18740 (*tldo_lduw_sp32): Merge into...
18741 (*tldo_lduw_sp64): Likewise.
18742 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
18743 (*tldo_lduw1_sp64): Use DImode throughout.
18744 (*tldo_ldsw1_sp64): Likewise.
18745 (*tldo_ldx_sp64): Likewise.
18746 (*tldo_stb_sp32): Merge into...
18747 (*tldo_stb_sp64): Likewise.
18748 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
18749 (*tldo_sth_sp32): Merge into...
18750 (*tldo_sth_sp64): Likewise.
18751 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
18752 (*tldo_stw_sp32): Merge into...
18753 (*tldo_stw_sp64): Likewise.
18754 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
18755 (*tldo_stx_sp64): Use DImode throughout.
18756
18757 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18758
18759 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
18760 check configure option to set BTI and Return Address Signing.
18761 * configure.ac: Add --enable-standard-branch-protection and
18762 --disable-standard-branch-protection.
18763 * configure: Regenerated.
18764 * doc/install.texi: Document the same.
18765
18766 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18767 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
18768
18769 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
18770 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
18771 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
18772 if bti is enabled.
18773 * config/aarch64/aarch64-bti-insert.c: New file.
18774 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
18775 pass.
18776 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
18777 new bti pass.
18778 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
18779 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
18780 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
18781 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
18782
18783 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18784
18785 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
18786 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
18787 Disable bti for -mbranch-protection=none.
18788 (aarch64_handle_standard_branch_protection): Enable bti for
18789 -mbranch-protection=standard.
18790 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
18791 -mbranch-protection.
18792 (aarch64_bti_enabled): Check if bti is enabled.
18793 * config/aarch64/aarch64.opt: Declare target variable.
18794 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
18795
18796 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18797
18798 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
18799 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
18800 (aarch64_expand_epilogue): Likewise.
18801 (aarch64_output_mi_thunk): Likewise.
18802 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
18803 TAILCALL_ADDR_REGS to x16 and x17.
18804 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
18805
18806 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18807
18808 * config/aarch64/aarch64-option-extensions.def: Define
18809 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
18810 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
18811 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
18812 (AARCH64_FL_PREDRES): New.
18813 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
18814 AARCH64_FL_PREDRES by default.
18815 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
18816
18817 2018-01-09 Sudakshina Das <sudi.das@arm.com>
18818
18819 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
18820 ARMv8.5-A.
18821 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
18822 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
18823 * doc/invoke.texi: Document ARMv8.5-A.
18824
18825 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
18826
18827 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
18828 (xorsign<mode>3): Likewise.
18829
18830 2019-01-09 Jelinek <jakub@redhat.com>
18831
18832 PR middle-end/88758
18833 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
18834 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
18835
18836 PR rtl-optimization/88331
18837 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
18838 not currently_expanding_to_rtl.
18839
18840 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
18841
18842 * doc/invoke.texi (-Os): Remove trailing spaces.
18843 (-finline-functions): Remove reference to -O2.
18844
18845 2019-01-08 Jakub Jelinek <jakub@redhat.com>
18846
18847 PR rtl-optimization/79593
18848 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
18849
18850 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
18851 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
18852
18853 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
18854
18855 PR bootstrap/88721
18856 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
18857 to -1 on entry.
18858
18859 PR debug/88723
18860 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
18861 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
18862
18863 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
18864
18865 PR target/88717
18866 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
18867 ix86_avx_u128_mode_entry.
18868
18869 2019-01-08 Martin Liska <mliska@suse.cz>
18870
18871 PR tree-optimization/88753
18872 * tree-switch-conversion.c (switch_conversion::build_one_array):
18873 Come up with local variable constructor. Convert first to
18874 type of constructor values.
18875
18876 2019-01-08 Richard Biener <rguenther@suse.de>
18877
18878 PR tree-optimization/86554
18879 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
18880 rpo_avail): Move earlier.
18881 (visit_nary_op): When value-numbering to expressions
18882 with different overflow behavior make sure there's an
18883 available expression on the path.
18884
18885 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
18886
18887 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
18888 aarch64_parse_branch_protection,
18889 struct aarch64_branch_protect_type,
18890 aarch64_handle_no_branch_protection,
18891 aarch64_handle_standard_branch_protection,
18892 aarch64_validate_mbranch_protection,
18893 aarch64_handle_pac_ret_protection,
18894 aarch64_handle_attr_branch_protection,
18895 accepted_branch_protection_string,
18896 aarch64_pac_ret_subtypes,
18897 aarch64_branch_protect_types,
18898 aarch64_handle_pac_ret_leaf): Define.
18899 (aarch64_override_options_after_change_1, aarch64_override_options):
18900 Add check for accepted_branch_protection_string.
18901 (aarch64_option_save): Save accepted_branch_protection_string.
18902 (aarch64_option_restore): Save accepted_branch_protection_string.
18903 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
18904 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
18905 msign-return-address.
18906 * doc/invoke.texi: Add mbranch-protection.
18907
18908 2019-01-08 Alan Modra <amodra@gmail.com>
18909
18910 PR target/88614
18911 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
18912 Delete "unknownp" parameter. Adjust callers. Handle
18913 CONST_INT, PLUS, MINUS, and MULT.
18914 (attr_value_aligned): Renamed from or_attr_value.
18915 (min_attr_value): Return INT_MIN for unhandled rtl case..
18916 (min_fn): ..and translate to INT_MAX here.
18917 (write_length_unit_log): Modify to cope without "unknown".
18918 (write_attr_value): Handle IF_THEN_ELSE.
18919
18920 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
18921
18922 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
18923 optimization for masked stores.
18924
18925 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
18926
18927 PR middle-end/88567
18928 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
18929 output vector directly to duplicate_and_interleave instead of
18930 going through a temporary. Postpone insertion of ctor_seq to
18931 the end of the loop.
18932
18933 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
18934
18935 PR target/86891
18936 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
18937 unsigned_p. Handle signed and unsigned overflow correction as
18938 required.
18939 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
18940 prototype.
18941 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
18942 for operand 2.
18943 (add<mode>3_compareV_imm): Make this callable for expanding.
18944 (subv<GPI:mode>4): Use register_operand for operand 1. Use
18945 aarch64_plus_operand for operand 2.
18946 (subv<GPI:mode>_insn): New insn pattern.
18947 (subv<GPI:mode>_imm): Likewise.
18948 (negv<GPI:mode>3): New expand pattern.
18949 (negv<GPI:mode>_insn): New insn pattern.
18950 (negv<GPI:mode>_cmp_only): Likewise.
18951 (cmpv<GPI:mode>_insn): Likewise.
18952 (subvti4): Use register_operand for operand 1. Update call to
18953 aarch64_expand_subvti.
18954 (usubvti4): Likewise.
18955 (negvti3): New expand pattern.
18956 (negdi_carryout): New insn pattern.
18957 (negvdi_carryinV): New insn pattern.
18958 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
18959 version the named version.
18960 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
18961 operands.
18962 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
18963 patterns.
18964 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
18965 patterns.
18966 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
18967 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
18968 (sub<mode>3_carryinCV): Delete.
18969 (sub<GPI:mode>3_carryinV): New expand pattern.
18970 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
18971
18972 2019-01-07 Richard Biener <rguenther@suse.de>
18973
18974 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
18975 of tree_operand_hash.
18976
18977 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
18978
18979 PR tree-optimization/88598
18980 * tree.h (single_nonzero_element): Declare.
18981 * tree.c (single_nonzero_element): New function.
18982 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
18983 if I is the only nonzero element of CST.
18984
18985 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
18986
18987 PR tree-optimization/88598
18988 * tree.h (initializer_each_zero_or_onep): Declare.
18989 * tree.c (initializer_each_zero_or_onep): New function.
18990 (signed_or_unsigned_type_for): Handle float types too.
18991 (unsigned_type_for, signed_type_for): Update comments accordingly.
18992 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
18993 x & { 0 or -1, 0 or -1, ... }.
18994
18995 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
18996
18997 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
18998 with x86_64-pc-linux-gnu.
18999
19000 2019-01-07 Tom de Vries <tdevries@suse.de>
19001
19002 PR target/85486
19003 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
19004 function.
19005 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
19006 routines.
19007
19008 2019-01-07 Jakub Jelinek <jakub@redhat.com>
19009
19010 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
19011 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
19012 TARGET_AVX512F as condition.
19013
19014 PR debug/88723
19015 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
19016 const_not_ok_for_debug_p target hook.
19017 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
19018 on UNSPEC and subexpressions thereof if all subexpressions of the
19019 UNSPEC are CONSTANT_P.
19020
19021 PR tree-optimization/88676
19022 * tree-ssa-phiopt.c (two_value_replacement): New function.
19023 (tree_ssa_phiopt_worker): Call it.
19024
19025 PR sanitizer/88619
19026 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
19027 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
19028
19029 PR c++/85052
19030 * tree-vect-generic.c: Include insn-config.h and recog.h.
19031 (expand_vector_piecewise): Add defaulted ret_type argument,
19032 if non-NULL, use that in preference to type for the result type.
19033 (expand_vector_parallel): Formatting fix.
19034 (do_vec_conversion, do_vec_narrowing_conversion,
19035 expand_vector_conversion): New functions.
19036 (expand_vector_operations_1): Call expand_vector_conversion
19037 for VEC_CONVERT ifn calls.
19038 * internal-fn.def (VEC_CONVERT): New internal function.
19039 * internal-fn.c (expand_VEC_CONVERT): New function.
19040 * fold-const-call.c (fold_const_vec_convert): New function.
19041 (fold_const_call): Use it for CFN_VEC_CONVERT.
19042 * doc/extend.texi (__builtin_convertvector): Document.
19043
19044 2019-01-07 Tom de Vries <tdevries@suse.de>
19045
19046 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
19047 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
19048 vector_red_partition, vector_red_sym): New global variables.
19049 (nvptx_option_override): Initialize vector_red_sym.
19050 (nvptx_declare_function_name): Restore red_partition register.
19051 (nvptx_file_end): Emit code to declare the vector reduction variables.
19052 (nvptx_output_red_partition): New function.
19053 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
19054 large vector reductions.
19055 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
19056 (nvptx_init_builtins): Add VECTOR_ADDR.
19057 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
19058 Handle nvptx_expand_shared_addr.
19059 (nvptx_get_shared_red_addr): Add vector argument and handle large
19060 vectors.
19061 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
19062 large vectors.
19063 (nvptx_goacc_reduction_init): Likewise.
19064 (nvptx_goacc_reduction_fini): Likewise.
19065 (nvptx_goacc_reduction_teardown): Likewise.
19066 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
19067 init,fini,teardown}.
19068 (nvptx_init_axis_predicate): Initialize vector_red_partition.
19069 (nvptx_set_current_function): Init vector_red_partition.
19070 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
19071 (nvptx_red_partition): New insn.
19072 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
19073
19074 2019-01-07 Tom de Vries <tdevries@suse.de>
19075
19076 PR target/85381
19077 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
19078 empty loops.
19079
19080 2019-01-07 Tom de Vries <tdevries@suse.de>
19081
19082 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
19083 (nvptx_option_override): Init oacc_bcast_partition.
19084 (nvptx_init_oacc_workers): New function.
19085 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
19086 (nvptx_needs_shared_bcast): New function.
19087 (nvptx_find_par): Generalize to enable vectors to use shared-memory
19088 to propagate state.
19089 (nvptx_shared_propagate): Initialize vector bcast partition and
19090 synchronization state.
19091 (nvptx_single): Generalize to enable vectors to use shared-memory
19092 to propagate state.
19093 (nvptx_process_pars): Likewise.
19094 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
19095 * config/nvptx/nvptx.h (struct machine_function): Add
19096 bcast_partition and sync_bar members.
19097
19098 2019-01-07 Tom de Vries <tdevries@suse.de>
19099
19100 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
19101 (nvptx_apply_dim_limits): New function.
19102 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
19103 PTX_WARP_SIZE.
19104
19105 2019-01-07 Tom de Vries <tdevries@suse.de>
19106
19107 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
19108 as late as possible.
19109
19110 2019-01-07 Tom de Vries <tdevries@suse.de>
19111
19112 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
19113 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
19114 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
19115 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
19116 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
19117
19118 2019-01-07 Tom de Vries <tdevries@suse.de>
19119
19120 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
19121
19122 2019-01-07 Tom de Vries <tdevries@suse.de>
19123
19124 * omp-offload.c (oacc_get_min_dim): New function.
19125 * omp-offload.h (oacc_get_min_dim): Declare.
19126
19127 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
19128
19129 PR target/88521
19130 * config/i386/i386.c (function_value_ms_64): Return small sturct in
19131 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
19132
19133 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19134
19135 PR tree-opt/86020
19136 Revert:
19137 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
19138
19139 * ipa-inline.c (edge_badness): Use inlined_time instead of
19140 inline_summaries->get.
19141
19142 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19143
19144 * opts.c (enable_fdo_optimizations): Enable
19145 version-loops-for-strides, loop-interchange, unrol-and-jam
19146 and tree-loop-distribution.
19147 * invoke.texi: Document newly enabled options.
19148
19149 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19150
19151 * doc/invoke.texi (max-inline-insns-small): New parameters.
19152 * ipa-inline.c (want_early_inline_function_p): simplify.
19153 (want_inline_small_function_p): Fix pasto from previous patch;
19154 use max-inline-insns-small bound.
19155 * params.def (max-inline-insns-small): New param.
19156 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
19157 variables correctly.
19158
19159 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19160
19161 * doc/invoke.texi: Document max-inline-insns-size,
19162 uninlined-function-insns, uninlined-function-time,
19163 uninlined-thunk-insns and uninlined-thunk-time.
19164 * params.def: Add max-inline-insns-size,
19165 uninlined-function-insns, uninlined-function-time,
19166 uninlined-thunk-insns and uninlined-thunk-time.
19167 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
19168 new parameters.
19169 * ipa-inline.c (can_inline_edge_by_limits_p,
19170 want_inline_small_function_p): Use new parameters.
19171
19172 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
19173
19174 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
19175
19176 2019-01-05 Jakub Jelinek <jakub@redhat.com>
19177
19178 PR middle-end/82564
19179 PR target/88620
19180 * expr.c (expand_assignment): For calls returning VLA structures
19181 if to_rtx is not a MEM, force it into a stack temporary.
19182
19183 PR debug/88635
19184 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
19185 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
19186 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
19187 subexpressions of both operands.
19188 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
19189 subrtxes are CONSTANT_P.
19190 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
19191 2018-11-09 changes.
19192
19193 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
19194
19195 * params.def (hot-bb-count-ws-permille): Set to 990.
19196
19197 2019-01-04 Martin Sebor <msebor@redhat.com>
19198
19199 PR c/88546
19200 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
19201 leaf.
19202
19203 2019-01-04 Martin Sebor <msebor@redhat.com>
19204
19205 PR c/88363
19206 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
19207
19208 2019-01-04 Jakub Jelinek <jakub@redhat.com>
19209
19210 * gdbinit.in: Turn off pagination for the skip commands, restore
19211 it to previous state afterwards.
19212
19213 2019-01-04 Jakub Jelinek <jakub@redhat.com>
19214
19215 PR target/88594
19216 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
19217 of GET_MODE (opN) as modes of the libcall arguments.
19218
19219 2019-01-04 Jan Beulich <jbeulich@suse.com>
19220
19221 * config/i386/sse.md
19222 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
19223 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
19224 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
19225 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
19226 avx512f_vmcmp<mode>3<round_saeonly_name>,
19227 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
19228 avx512f_maskcmp<mode>3,
19229 <avx512>_cvt<ssemodesuffix>2mask<mode>,
19230 <avx512>_cvt<ssemodesuffix>2mask<mode>,
19231 *<avx512>_cvtmask2<ssemodesuffix><mode>,
19232 *<avx512>_cvtmask2<ssemodesuffix><mode>,
19233 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
19234 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
19235 <avx512>_gt<mode>3<mask_scalar_merge_name>,
19236 <avx512>_gt<mode>3<mask_scalar_merge_name>,
19237 <avx512>_testm<mode>3<mask_scalar_merge_name>,
19238 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
19239 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
19240 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
19241 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
19242 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
19243 avx512cd_maskb_vec_dup<mode>,
19244 avx512cd_maskw_vec_dup<mode>,
19245 avx512dq_fpclass<mode><mask_scalar_merge_name>,
19246 avx512dq_vmfpclass<mode>,
19247 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
19248 instead of =Yk.
19249
19250 2019-01-03 Martin Sebor <msebor@redhat.com>
19251
19252 PR tree-optimization/88659
19253 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
19254
19255 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
19256
19257 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
19258 unaligned vsx and avoid lxvd2x/stxvd2x.
19259 (gen_lvx_v4si_move): New function.
19260
19261 2019-01-03 Tom de Vries <tdevries@suse.de>
19262
19263 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
19264 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
19265 function.
19266 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
19267
19268 2019-01-03 Tom de Vries <tdevries@suse.de>
19269
19270 * config/nvptx/nvptx.c (struct offload_attrs): New.
19271 (populate_offload_attrs): New function. Factor mask extraction out of
19272 nvptx_reorg. Add extraction of dimensions.
19273 (nvptx_reorg): Use populate_offload_attrs.
19274
19275 2019-01-03 Tom de Vries <tdevries@suse.de>
19276
19277 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
19278 cases for oacc_min_dims_p and routine_p. Add asserts for
19279 oacc_default_dims_p and offload_region_p.
19280
19281 2019-01-03 Tom de Vries <tdevries@suse.de>
19282
19283 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
19284 factored out of ...
19285 (nvptx_goacc_validate_dims): ... here.
19286
19287 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
19288
19289 PR tree-optimization/85574
19290 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
19291 structure.
19292 (struct ssa_equip_hash_traits): Declare.
19293 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
19294
19295 2019-01-03 Jakub Jelinek <jakub@redhat.com>
19296
19297 PR debug/88644
19298 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
19299 change it to qualified_type.
19300
19301 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
19302
19303 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
19304 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
19305
19306 2019-01-02 Martin Sebor <msebor@redhat.com>
19307 Jeff Law <law@redhat.com>
19308
19309 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
19310 (get_range_strlen_tree): Update appropriately.
19311 (get_range_strlen)
19312 * gimple-fold.h (get_range_strlen): Drop unused last argument.
19313
19314 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
19315 rather than set_range_info.
19316 * tree-ssa-strlen.c (set_strlen_range): Extracted from
19317 maybe_set_strlen_range. Handle potentially boundary crossing
19318 cases more conservatively.
19319 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
19320 Call set_strlen_range.
19321 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
19322
19323 PR middle-end/88663
19324 * gimple-fold.c (get_range_strlen): Update prototype to no longer
19325 need the flexp argument.
19326 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
19327 from calls to get_range_strlen. Update comments. Just update
19328 VAL for an unterminated const char array and let the reset of the
19329 code handle it normally. No longer try to set *flexp. Adjust
19330 return value.
19331 (get_range_strlen): Update for the new get_range_strlen API.
19332 (get_maxval_strlen): Similarly.
19333 (gimple_fold_builtin_strlen): Handle update meaning of return value
19334 from get_range_strlen.
19335 * gimple-ssa-sprintf.c (get_string_length): Update for the new
19336 get_range_strlen API.
19337
19338 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
19339
19340 PR lto/88130
19341 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
19342 false at WPA time when body was removed.
19343
19344 2019-01-02 Martin Liska <mliska@suse.cz>
19345
19346 PR tree-optimization/88650
19347 * predict.c (set_even_probabilities): Calculate probability
19348 remainer only when really used.
19349
19350 2019-01-02 Richard Biener <rguenther@suse.de>
19351
19352 PR middle-end/88651
19353 * tree-data-ref.c (analyze_subscript_affine_affine): Use
19354 widest_ints when mangling max_stmt_execution results.
19355
19356 2019-01-02 Richard Biener <rguenther@suse.de>
19357
19358 PR tree-optimization/88621
19359 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
19360 bitfields when canoncalizing.
19361
19362 2019-01-02 Richard Biener <rguenther@suse.de>
19363
19364 PR target/87545
19365 * config/i386/x86-tune-costs.h (intel_cost): Adjust
19366 cost of cheap SSE instruction.
19367
19368 2019-01-02 Richard Biener <rguenther@suse.de>
19369
19370 PR ipa/85574
19371 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
19372 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
19373 function.
19374 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
19375 set after UIDs before splitting them.
19376
19377 2019-01-01 Martin Sebor <msebor@redhat.com>
19378 Jeff Law <law@redhat.com>
19379
19380 * gimple-fold.c (get_range_strlen_tree): Record if the computed
19381 length is optimistic. If it is, then arrange to compute the
19382 conservative length as well.
19383
19384 * gimple-fold.h (get_range_strlen): Update prototype.
19385 * builtins.c (check_access): Update call to get_range_strlen to use
19386 c_strlen_data pointer. Change various variable accesses to instead
19387 pull data from the c_strlen_data structure.
19388 (check_strncat_sizes, expand_builtin_strncat): Likewise.
19389 * calls.c (maybe_warn_nonstring_arg): Likewise.
19390 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
19391 minimum length if maximum lengh is unknown.
19392 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
19393 that used c_strlen, it's no longer needed. Restructure slightly.
19394 (format_string): Set unlikely range appropriately.
19395 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
19396 formatting issues.
19397 (get_range_strlen): Accept c_strlen_data pointer for external
19398 call sites as well. Pass through to call to internal get_range_strlen.
19399 Adjust minlen, maxlen and maxbound as needed.
19400 (get_maxval_strlen): Update comments.
19401 (gimple_fold_builtin_strlen): Update call to get_range_strlen
19402 to use c_strlen_data pointer. Change variable accesses to instead
19403 use c_strlen_data data members.
19404
19405 * gimple-fold.c (get_range_strlen): Update prototype.
19406 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
19407 local variables. Use pdata to return information to caller.
19408 Update calls to get_range_strlen. Update pdata->maxbound.
19409 (get_range_strlen -- static version): Similarly.
19410 (get_range_strlen -- extern version): Update for internal
19411 get_range_strlen API change. Convert to external data format.
19412 (get_maxval_strlen): Similarly.
19413
19414 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
19415
19416 * coverage.c (get_coverage_counts): Use current_function_decl.
19417 * profile.c (read_thunk_profile): New function.
19418 (branch_prob): Add THUNK parameter.
19419 * tree-profile.c (tree_profiling): Handle thunks.
19420 * value-prof.c (init_node_map): Handle thunks.
19421 * value-prof.h (branch_prob): Upate prototype.
19422 (read_thunk_profile): Declare.
19423
19424 2019-01-01 Jakub Jelinek <jakub@redhat.com>
19425
19426 Update copyright years.
19427
19428 * gcc.c (process_command): Update copyright notice dates.
19429 * gcov-dump.c (print_version): Ditto.
19430 * gcov.c (print_version): Ditto.
19431 * gcov-tool.c (print_version): Ditto.
19432 * gengtype.c (create_file): Ditto.
19433 * doc/cpp.texi: Bump @copying's copyright year.
19434 * doc/cppinternals.texi: Ditto.
19435 * doc/gcc.texi: Ditto.
19436 * doc/gccint.texi: Ditto.
19437 * doc/gcov.texi: Ditto.
19438 * doc/install.texi: Ditto.
19439 * doc/invoke.texi: Ditto.
19440 \f
19441 Copyright (C) 2019 Free Software Foundation, Inc.
19442
19443 Copying and distribution of this file, with or without modification,
19444 are permitted in any medium without royalty provided the copyright
19445 notice and this notice are preserved.