1 2019-01-11 Tom de Vries <tdevries@suse.de>
3 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
5 2019-01-11 Jan Beulich <jbeulich@suse.com>
7 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
8 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
9 sse2_cvtsi2sd): Add {l}.
10 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
13 2019-01-10 Jakub Jelinek <jakub@redhat.com>
16 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
18 (*float<floatunssuffix>v2div2sf2): New define_insn.
19 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
20 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
21 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
22 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
23 match_operands with "const0_operand" "C".
25 2019-01-10 Tamar Christina <tamar.christina@arm.com>
27 * config/aarch64/aarch64-builtins.c
28 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
29 (aarch64_init_simd_builtins): ...Here
31 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
33 PR rtl-optimization/87305
35 (setup_live_pseudos_and_spill_after_risky_transforms): Check
36 allocation for big endian pseudos used as paradoxical subregs and
37 spill them if it is wrong.
38 * lra-constraints.c (lra_constraints): Add a comment.
40 2019-01-10 Richard Biener <rguenther@suse.de>
42 PR tree-optimization/88792
43 * tree-ssa-pre.c (get_representative_for): Do not return a
46 2019-01-10 Jakub Jelinek <jakub@redhat.com>
50 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
51 (assign_parm_setup_block): Do the argument slot realignment here
54 2019-01-10 Stefan Agner <stefan@agner.ch>
57 * config/arm/arm.c (arm_option_override_internal): Force
58 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
60 2019-01-10 Jakub Jelinek <jakub@redhat.com>
63 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
66 2019-01-10 Tamar Christina <tamar.christina@arm.com>
68 * config/arm/arm-builtins.c
69 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
70 (MAC_LANE_PAIR_QUALIFIERS): New.
71 (arm_expand_builtin_args): Use it.
72 (arm_expand_builtin_1): Likewise.
73 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
74 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
75 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
76 * config/arm/arm_neon.h:
77 (vcadd_rot90_f16): New.
78 (vcaddq_rot90_f16): New.
79 (vcadd_rot270_f16): New.
80 (vcaddq_rot270_f16): New.
83 (vcmla_lane_f16): New.
84 (vcmla_laneq_f16): New.
85 (vcmlaq_lane_f16): New.
86 (vcmlaq_laneq_f16): New.
87 (vcmla_rot90_f16): New.
88 (vcmlaq_rot90_f16): New.
89 (vcmla_rot90_lane_f16): New.
90 (vcmla_rot90_laneq_f16): New.
91 (vcmlaq_rot90_lane_f16): New.
92 (vcmlaq_rot90_laneq_f16): New.
93 (vcmla_rot180_f16): New.
94 (vcmlaq_rot180_f16): New.
95 (vcmla_rot180_lane_f16): New.
96 (vcmla_rot180_laneq_f16): New.
97 (vcmlaq_rot180_lane_f16): New.
98 (vcmlaq_rot180_laneq_f16): New.
99 (vcmla_rot270_f16): New.
100 (vcmlaq_rot270_f16): New.
101 (vcmla_rot270_lane_f16): New.
102 (vcmla_rot270_laneq_f16): New.
103 (vcmlaq_rot270_lane_f16): New.
104 (vcmlaq_rot270_laneq_f16): New.
105 (vcadd_rot90_f32): New.
106 (vcaddq_rot90_f32): New.
107 (vcadd_rot270_f32): New.
108 (vcaddq_rot270_f32): New.
111 (vcmla_lane_f32): New.
112 (vcmla_laneq_f32): New.
113 (vcmlaq_lane_f32): New.
114 (vcmlaq_laneq_f32): New.
115 (vcmla_rot90_f32): New.
116 (vcmlaq_rot90_f32): New.
117 (vcmla_rot90_lane_f32): New.
118 (vcmla_rot90_laneq_f32): New.
119 (vcmlaq_rot90_lane_f32): New.
120 (vcmlaq_rot90_laneq_f32): New.
121 (vcmla_rot180_f32): New.
122 (vcmlaq_rot180_f32): New.
123 (vcmla_rot180_lane_f32): New.
124 (vcmla_rot180_laneq_f32): New.
125 (vcmlaq_rot180_lane_f32): New.
126 (vcmlaq_rot180_laneq_f32): New.
127 (vcmla_rot270_f32): New.
128 (vcmlaq_rot270_f32): New.
129 (vcmla_rot270_lane_f32): New.
130 (vcmla_rot270_laneq_f32): New.
131 (vcmlaq_rot270_lane_f32): New.
132 (vcmlaq_rot270_laneq_f32): New.
133 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
134 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
135 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
136 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
137 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
138 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
139 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
140 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
141 (arm_option_reconfigure_globals): Use them.
142 * config/arm/iterators.md (VDF, VQ_HSF): New.
144 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
145 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
146 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
147 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
149 2019-01-10 Tamar Christina <tamar.christina@arm.com>
151 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
152 (emit-rtl.h): Include.
153 (TYPES_QUADOP_LANE_PAIR): New.
154 (aarch64_simd_expand_args): Use it.
155 (aarch64_simd_expand_builtin): Likewise.
156 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
157 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
158 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
159 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
160 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
161 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
162 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
163 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
164 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
165 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
166 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
167 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
168 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
169 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
170 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
171 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
172 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
173 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
174 aarch64_fcmla<rot><mode>): New.
175 * config/aarch64/arm_neon.h:
176 (vcadd_rot90_f16): New.
177 (vcaddq_rot90_f16): New.
178 (vcadd_rot270_f16): New.
179 (vcaddq_rot270_f16): New.
182 (vcmla_lane_f16): New.
183 (vcmla_laneq_f16): New.
184 (vcmlaq_lane_f16): New.
185 (vcmlaq_rot90_lane_f16): New.
186 (vcmla_rot90_laneq_f16): New.
187 (vcmla_rot90_lane_f16): New.
188 (vcmlaq_rot90_f16): New.
189 (vcmla_rot90_f16): New.
190 (vcmlaq_laneq_f16): New.
191 (vcmla_rot180_laneq_f16): New.
192 (vcmla_rot180_lane_f16): New.
193 (vcmlaq_rot180_f16): New.
194 (vcmla_rot180_f16): New.
195 (vcmlaq_rot90_laneq_f16): New.
196 (vcmlaq_rot270_laneq_f16): New.
197 (vcmlaq_rot270_lane_f16): New.
198 (vcmla_rot270_laneq_f16): New.
199 (vcmlaq_rot270_f16): New.
200 (vcmla_rot270_f16): New.
201 (vcmlaq_rot180_laneq_f16): New.
202 (vcmlaq_rot180_lane_f16): New.
203 (vcmla_rot270_lane_f16): New.
204 (vcadd_rot90_f32): New.
205 (vcaddq_rot90_f32): New.
206 (vcaddq_rot90_f64): New.
207 (vcadd_rot270_f32): New.
208 (vcaddq_rot270_f32): New.
209 (vcaddq_rot270_f64): New.
213 (vcmla_lane_f32): New.
214 (vcmla_laneq_f32): New.
215 (vcmlaq_lane_f32): New.
216 (vcmlaq_laneq_f32): New.
217 (vcmla_rot90_f32): New.
218 (vcmlaq_rot90_f32): New.
219 (vcmlaq_rot90_f64): New.
220 (vcmla_rot90_lane_f32): New.
221 (vcmla_rot90_laneq_f32): New.
222 (vcmlaq_rot90_lane_f32): New.
223 (vcmlaq_rot90_laneq_f32): New.
224 (vcmla_rot180_f32): New.
225 (vcmlaq_rot180_f32): New.
226 (vcmlaq_rot180_f64): New.
227 (vcmla_rot180_lane_f32): New.
228 (vcmla_rot180_laneq_f32): New.
229 (vcmlaq_rot180_lane_f32): New.
230 (vcmlaq_rot180_laneq_f32): New.
231 (vcmla_rot270_f32): New.
232 (vcmlaq_rot270_f32): New.
233 (vcmlaq_rot270_f64): New.
234 (vcmla_rot270_lane_f32): New.
235 (vcmla_rot270_laneq_f32): New.
236 (vcmlaq_rot270_lane_f32): New.
237 (vcmlaq_rot270_laneq_f32): New.
238 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
239 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
240 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
243 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
245 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
249 * config/pa/pa.c: Change "can not" to "cannot".
250 * gimple-ssa-evrp-analyze.c: Likewise.
251 * ipa-icf.c: Likewise.
252 * ipa-polymorphic-call.c: Likewise.
253 * ipa-pure-const.c: Likewise.
254 * lra-constraints.c: Likewise.
255 * lra-remat.c: Likewise.
256 * reload1.c: Likewise.
258 * tree-ssa-uninit.c: Likewise.
260 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
264 * Makefile.in: Mechanically replace "can not" with "cannot".
266 * builtins.c: Likewise.
268 * cgraph.c: Likewise.
269 * cgraph.h: Likewise.
270 * cgraphclones.c: Likewise.
271 * cgraphunit.c: Likewise.
272 * combine-stack-adj.c: Likewise.
273 * combine.c: Likewise.
274 * common/config/i386/i386-common.c: Likewise.
275 * config/aarch64/aarch64.c: Likewise.
276 * config/alpha/sync.md: Likewise.
277 * config/arc/arc.c: Likewise.
278 * config/arc/predicates.md: Likewise.
279 * config/arm/arm-c.c: Likewise.
280 * config/arm/arm.c: Likewise.
281 * config/arm/arm.h: Likewise.
282 * config/arm/arm.md: Likewise.
283 * config/arm/cortex-r4f.md: Likewise.
284 * config/csky/csky.c: Likewise.
285 * config/csky/csky.h: Likewise.
286 * config/darwin-f.c: Likewise.
287 * config/epiphany/epiphany.md: Likewise.
288 * config/i386/i386.c: Likewise.
289 * config/i386/sol2.h: Likewise.
290 * config/m68k/m68k.c: Likewise.
291 * config/mcore/mcore.h: Likewise.
292 * config/microblaze/microblaze.md: Likewise.
293 * config/mips/20kc.md: Likewise.
294 * config/mips/sb1.md: Likewise.
295 * config/nds32/nds32.c: Likewise.
296 * config/nds32/predicates.md: Likewise.
297 * config/pa/pa.c: Likewise.
298 * config/rs6000/e300c2c3.md: Likewise.
299 * config/rs6000/rs6000.c: Likewise.
300 * config/s390/s390.h: Likewise.
301 * config/sh/sh.c: Likewise.
302 * config/sh/sh.md: Likewise.
303 * config/spu/vmx2spu.h: Likewise.
305 * dbxout.c: Likewise.
306 * df-scan.c: Likewise.
307 * doc/cfg.texi: Likewise.
308 * doc/extend.texi: Likewise.
309 * doc/fragments.texi: Likewise.
310 * doc/gty.texi: Likewise.
311 * doc/invoke.texi: Likewise.
312 * doc/lto.texi: Likewise.
313 * doc/md.texi: Likewise.
314 * doc/objc.texi: Likewise.
315 * doc/rtl.texi: Likewise.
316 * doc/tm.texi: Likewise.
318 * emit-rtl.c: Likewise.
319 * emit-rtl.h: Likewise.
320 * except.c: Likewise.
321 * expmed.c: Likewise.
323 * fold-const.c: Likewise.
324 * genautomata.c: Likewise.
325 * gimple-fold.c: Likewise.
326 * hard-reg-set.h: Likewise.
328 * ipa-comdats.c: Likewise.
329 * ipa-cp.c: Likewise.
330 * ipa-devirt.c: Likewise.
331 * ipa-fnsummary.c: Likewise.
332 * ipa-icf.c: Likewise.
333 * ipa-inline-transform.c: Likewise.
334 * ipa-inline.c: Likewise.
335 * ipa-polymorphic-call.c: Likewise.
336 * ipa-profile.c: Likewise.
337 * ipa-prop.c: Likewise.
338 * ipa-pure-const.c: Likewise.
339 * ipa-reference.c: Likewise.
340 * ipa-split.c: Likewise.
341 * ipa-visibility.c: Likewise.
343 * ira-build.c: Likewise.
344 * ira-color.c: Likewise.
345 * ira-conflicts.c: Likewise.
346 * ira-costs.c: Likewise.
347 * ira-int.h: Likewise.
348 * ira-lives.c: Likewise.
351 * loop-invariant.c: Likewise.
352 * loop-unroll.c: Likewise.
353 * lower-subreg.c: Likewise.
354 * lra-assigns.c: Likewise.
355 * lra-constraints.c: Likewise.
356 * lra-eliminations.c: Likewise.
357 * lra-lives.c: Likewise.
358 * lra-remat.c: Likewise.
359 * lra-spills.c: Likewise.
361 * lto-cgraph.c: Likewise.
362 * lto-streamer-out.c: Likewise.
363 * postreload-gcse.c: Likewise.
364 * predict.c: Likewise.
365 * profile-count.h: Likewise.
366 * profile.c: Likewise.
369 * reload.c: Likewise.
370 * reload1.c: Likewise.
372 * resource.c: Likewise.
375 * rtlanal.c: Likewise.
376 * sched-deps.c: Likewise.
377 * sched-ebb.c: Likewise.
378 * sched-rgn.c: Likewise.
379 * sel-sched-ir.c: Likewise.
380 * sel-sched.c: Likewise.
381 * shrink-wrap.c: Likewise.
382 * simplify-rtx.c: Likewise.
383 * symtab.c: Likewise.
384 * target.def: Likewise.
385 * toplev.c: Likewise.
386 * tree-call-cdce.c: Likewise.
387 * tree-cfg.c: Likewise.
388 * tree-complex.c: Likewise.
389 * tree-core.h: Likewise.
390 * tree-eh.c: Likewise.
391 * tree-inline.c: Likewise.
392 * tree-loop-distribution.c: Likewise.
393 * tree-nrv.c: Likewise.
394 * tree-profile.c: Likewise.
395 * tree-sra.c: Likewise.
396 * tree-ssa-alias.c: Likewise.
397 * tree-ssa-dce.c: Likewise.
398 * tree-ssa-dom.c: Likewise.
399 * tree-ssa-forwprop.c: Likewise.
400 * tree-ssa-loop-im.c: Likewise.
401 * tree-ssa-loop-ivcanon.c: Likewise.
402 * tree-ssa-loop-ivopts.c: Likewise.
403 * tree-ssa-loop-niter.c: Likewise.
404 * tree-ssa-phionlycprop.c: Likewise.
405 * tree-ssa-phiopt.c: Likewise.
406 * tree-ssa-propagate.c: Likewise.
407 * tree-ssa-threadedge.c: Likewise.
408 * tree-ssa-threadupdate.c: Likewise.
409 * tree-ssa-uninit.c: Likewise.
410 * tree-ssanames.c: Likewise.
411 * tree-streamer-out.c: Likewise.
414 * vr-values.c: Likewise.
416 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
418 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
419 (ix86_split_xorsign): Ditto.
420 * config/i386/i386.c (ix86_expand_xorsign): New function.
421 (ix86_split_xorsign): Ditto.
422 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
423 (xorsign<mode>3): New expander.
424 (xorsign<mode>3_1): New insn_and_split pattern.
425 * config/i386/sse.md (xorsign<mode>3): New expander.
427 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
429 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
430 (*tablejump_sp64): Likewise.
431 (*tablejump<P:mode>): ...this.
432 (*call_address_sp32): Merge into...
433 (*call_address_sp64): Likewise.
434 (*call_address<P:mode>): ...this.
435 (*call_symbolic_sp32): Merge into...
436 (*call_symbolic_sp64): Likewise.
437 (*call_symbolic<P:mode>): ...this.
438 (call_value): Remove constraint and add predicate.
439 (*call_value_address_sp32): Merge into...
440 (*call_value_address_sp64): Likewise.
441 (*call_value_address<P:mode>): ...this.
442 (*call_value_symbolic_sp32): Merge into...
443 (*call_value_symbolic_sp64): Likewise.
444 (*call_value_symbolic<P:mode>): ...this.
445 (*sibcall_symbolic_sp32): Merge into...
446 (*sibcall_symbolic_sp64): Likewise.
447 (*sibcall_symbolic<P:mode>): ...this.
448 (sibcall_value): Remove constraint and add predicate.
449 (*sibcall_value_symbolic_sp32): Merge into...
450 (*sibcall_value_symbolic_sp64): Likewise.
451 (*sibcall_value_symbolic<P:mode>): ...this.
452 (window_save): Minor tweak.
453 (*branch_sp32): Merge into...
454 (*branch_sp64): Likewise.
455 (*branch<P:mode>): ...this.
457 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
458 James Clarke <jrtc27@jrtc27.com>
461 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
462 consistently in TLS address generation and adjust code to the renaming
463 of patterns. Mark calls to __tls_get_addr as const.
464 * config/sparc/sparc.md (tgd_hi22): Turn into...
465 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
466 (tgd_lo10): Turn into...
467 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
468 (tgd_add32): Merge into...
469 (tgd_add64): Likewise.
470 (tgd_add<P:mode>): ...this and use Pmode throughout.
471 (tldm_hi22): Turn into...
472 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
473 (tldm_lo10): Turn into...
474 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
475 (tldm_add32): Merge into...
476 (tldm_add64): Likewise.
477 (tldm_add<P:mode>): ...this and use Pmode throughout.
478 (tldm_call32): Merge into...
479 (tldm_call64): Likewise.
480 (tldm_call<P:mode>): ...this and use Pmode throughout.
481 (tldo_hix22): Turn into...
482 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
483 (tldo_lox10): Turn into...
484 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
485 (tldo_add32): Merge into...
486 (tldo_add64): Likewise.
487 (tldo_add<P:mode>): ...this and use Pmode throughout.
488 (tie_hi22): Turn into...
489 (tie_hi22<P:mode>): ...this and use Pmode throughout.
490 (tie_lo10): Turn into...
491 (tie_lo10<P:mode>): ...this and use Pmode throughout.
492 (tie_ld64): Use DImode throughout.
493 (tie_add32): Merge into...
494 (tie_add64): Likewise.
495 (tie_add<P:mode>): ...this and use Pmode throughout.
496 (tle_hix22_sp32): Merge into...
497 (tle_hix22_sp64): Likewise.
498 (tle_hix22<P:mode>): ...this and use Pmode throughout.
499 (tle_lox22_sp32): Merge into...
500 (tle_lox22_sp64): Likewise.
501 (tle_lox22<P:mode>): ...this and use Pmode throughout.
502 (*tldo_ldub_sp32): Merge into...
503 (*tldo_ldub_sp64): Likewise.
504 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
505 (*tldo_ldub1_sp32): Merge into...
506 (*tldo_ldub1_sp64): Likewise.
507 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
508 (*tldo_ldub2_sp32): Merge into...
509 (*tldo_ldub2_sp64): Likewise.
510 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
511 (*tldo_ldsb1_sp32): Merge into...
512 (*tldo_ldsb1_sp64): Likewise.
513 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
514 (*tldo_ldsb2_sp32): Merge into...
515 (*tldo_ldsb2_sp64): Likewise.
516 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
517 (*tldo_ldub3_sp64): Use DImode throughout.
518 (*tldo_ldsb3_sp64): Likewise.
519 (*tldo_lduh_sp32): Merge into...
520 (*tldo_lduh_sp64): Likewise.
521 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
522 (*tldo_lduh1_sp32): Merge into...
523 (*tldo_lduh1_sp64): Likewise.
524 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
525 (*tldo_ldsh1_sp32): Merge into...
526 (*tldo_ldsh1_sp64): Likewise.
527 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
528 (*tldo_lduh2_sp64): Use DImode throughout.
529 (*tldo_ldsh2_sp64): Likewise.
530 (*tldo_lduw_sp32): Merge into...
531 (*tldo_lduw_sp64): Likewise.
532 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
533 (*tldo_lduw1_sp64): Use DImode throughout.
534 (*tldo_ldsw1_sp64): Likewise.
535 (*tldo_ldx_sp64): Likewise.
536 (*tldo_stb_sp32): Merge into...
537 (*tldo_stb_sp64): Likewise.
538 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
539 (*tldo_sth_sp32): Merge into...
540 (*tldo_sth_sp64): Likewise.
541 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
542 (*tldo_stw_sp32): Merge into...
543 (*tldo_stw_sp64): Likewise.
544 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
545 (*tldo_stx_sp64): Use DImode throughout.
547 2018-01-09 Sudakshina Das <sudi.das@arm.com>
549 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
550 check configure option to set BTI and Return Address Signing.
551 * configure.ac: Add --enable-standard-branch-protection and
552 --disable-standard-branch-protection.
553 * configure: Regenerated.
554 * doc/install.texi: Document the same.
556 2018-01-09 Sudakshina Das <sudi.das@arm.com>
557 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
559 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
560 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
561 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
563 * config/aarch64/aarch64-bti-insert.c: New file.
564 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
566 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
568 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
569 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
570 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
571 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
573 2018-01-09 Sudakshina Das <sudi.das@arm.com>
575 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
576 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
577 Disable bti for -mbranch-protection=none.
578 (aarch64_handle_standard_branch_protection): Enable bti for
579 -mbranch-protection=standard.
580 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
582 (aarch64_bti_enabled): Check if bti is enabled.
583 * config/aarch64/aarch64.opt: Declare target variable.
584 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
586 2018-01-09 Sudakshina Das <sudi.das@arm.com>
588 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
589 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
590 (aarch64_expand_epilogue): Likewise.
591 (aarch64_output_mi_thunk): Likewise
592 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
593 TAILCALL_ADDR_REGS to x16 and x17.
594 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
596 2018-01-09 Sudakshina Das <sudi.das@arm.com>
598 * config/aarch64/aarch64-option-extensions.def: Define
599 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
600 * gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
601 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
602 (AARCH64_FL_PREDRES): New.
603 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
604 AARCH64_FL_PREDRES by default.
605 * gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
607 2018-01-09 Sudakshina Das <sudi.das@arm.com>
609 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
611 * gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
612 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
613 * gcc/doc/invoke.texi: Document ARMv8.5-A.
615 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
617 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
618 (xorsign<mode>3): Likewise.
620 2019-01-09 Jelinek <jakub@redhat.com>
623 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
624 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
626 PR rtl-optimization/88331
627 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
628 not currently_expanding_to_rtl.
630 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
632 * doc/invoke.texi (-Os): Remove trailing spaces.
633 (-finline-functions): Remove reference to -O2.
635 2019-01-08 Jakub Jelinek <jakub@redhat.com>
637 PR rtl-optimization/79593
638 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
640 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
641 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
643 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
646 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
650 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
651 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
653 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
656 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
657 ix86_avx_u128_mode_entry.
659 2019-01-08 Martin Liska <mliska@suse.cz>
661 PR tree-optimization/88753
662 * tree-switch-conversion.c (switch_conversion::build_one_array):
663 Come up with local variable constructor. Convert first to
664 type of constructor values.
666 2019-01-08 Richard Biener <rguenther@suse.de>
668 PR tree-optimization/86554
669 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
670 rpo_avail): Move earlier.
671 (visit_nary_op): When value-numbering to expressions
672 with different overflow behavior make sure there's an
673 available expression on the path.
675 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
677 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
678 aarch64_parse_branch_protection,
679 struct aarch64_branch_protect_type,
680 aarch64_handle_no_branch_protection,
681 aarch64_handle_standard_branch_protection,
682 aarch64_validate_mbranch_protection,
683 aarch64_handle_pac_ret_protection,
684 aarch64_handle_attr_branch_protection,
685 accepted_branch_protection_string,
686 aarch64_pac_ret_subtypes,
687 aarch64_branch_protect_types,
688 aarch64_handle_pac_ret_leaf): Define.
689 (aarch64_override_options_after_change_1, aarch64_override_options):
690 Add check for accepted_branch_protection_string.
691 (aarch64_option_save): Save accepted_branch_protection_string.
692 (aarch64_option_restore): Save accepted_branch_protection_string.
693 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
694 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
695 msign-return-address.
696 * doc/invoke.texi: Add mbranch-protection.
698 2019-01-08 Alan Modra <amodra@gmail.com>
701 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
702 Delete "unknownp" parameter. Adjust callers. Handle
703 CONST_INT, PLUS, MINUS, and MULT.
704 (attr_value_aligned): Renamed from or_attr_value.
705 (min_attr_value): Return INT_MIN for unhandled rtl case..
706 (min_fn): ..and translate to INT_MAX here.
707 (write_length_unit_log): Modify to cope without "unknown".
708 (write_attr_value): Handle IF_THEN_ELSE.
710 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
712 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
713 optimization for masked stores.
715 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
718 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
719 output vector directly to duplicate_and_interleave instead of
720 going through a temporary. Postpone insertion of ctor_seq to
723 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
726 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
727 unsigned_p. Handle signed and unsigned overflow correction as
729 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
731 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
733 (add<mode>3_compareV_imm): Make this callable for expanding.
734 (subv<GPI:mode>4): Use register_operand for operand 1. Use
735 aarch64_plus_operand for operand 2.
736 (subv<GPI:mode>_insn): New insn pattern.
737 (subv<GPI:mode>_imm): Likewise.
738 (negv<GPI:mode>3): New expand pattern.
739 (negv<GPI:mode>_insn): New insn pattern.
740 (negv<GPI:mode>_cmp_only): Likewise.
741 (cmpv<GPI:mode>_insn): Likewise.
742 (subvti4): Use register_operand for operand 1. Update call to
743 aarch64_expand_subvti.
744 (usubvti4): Likewise.
745 (negvti3): New expand pattern.
746 (negdi_carryout): New insn pattern.
747 (negvdi_carryinV): New insn pattern.
748 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
749 version the named version.
750 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
752 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
754 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
756 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
757 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
758 (sub<mode>3_carryinCV): Delete.
759 (sub<GPI:mode>3_carryinV): New expand pattern.
760 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
762 2019-01-07 Richard Biener <rguenther@suse.de>
764 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
765 of tree_operand_hash.
767 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
769 PR tree-optimization/88598
770 * tree.h (single_nonzero_element): Declare.
771 * tree.c (single_nonzero_element): New function.
772 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
773 if I is the only nonzero element of CST.
775 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
777 PR tree-optimization/88598
778 * tree.h (initializer_each_zero_or_onep): Declare.
779 * tree.c (initializer_each_zero_or_onep): New function.
780 (signed_or_unsigned_type_for): Handle float types too.
781 (unsigned_type_for, signed_type_for): Update comments accordingly.
782 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
783 x & { 0 or -1, 0 or -1, ... }.
785 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
787 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
788 with x86_64-pc-linux-gnu.
790 2019-01-07 Tom de Vries <tdevries@suse.de>
793 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
795 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
798 2019-01-07 Jakub Jelinek <jakub@redhat.com>
800 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
801 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
802 TARGET_AVX512F as condition.
805 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
806 const_not_ok_for_debug_p target hook.
807 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
808 on UNSPEC and subexpressions thereof if all subexpressions of the
809 UNSPEC are CONSTANT_P.
811 PR tree-optimization/88676
812 * tree-ssa-phiopt.c (two_value_replacement): New function.
813 (tree_ssa_phiopt_worker): Call it.
816 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
817 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
820 * tree-vect-generic.c: Include insn-config.h and recog.h.
821 (expand_vector_piecewise): Add defaulted ret_type argument,
822 if non-NULL, use that in preference to type for the result type.
823 (expand_vector_parallel): Formatting fix.
824 (do_vec_conversion, do_vec_narrowing_conversion,
825 expand_vector_conversion): New functions.
826 (expand_vector_operations_1): Call expand_vector_conversion
827 for VEC_CONVERT ifn calls.
828 * internal-fn.def (VEC_CONVERT): New internal function.
829 * internal-fn.c (expand_VEC_CONVERT): New function.
830 * fold-const-call.c (fold_const_vec_convert): New function.
831 (fold_const_call): Use it for CFN_VEC_CONVERT.
832 * doc/extend.texi (__builtin_convertvector): Document.
834 2019-01-07 Tom de Vries <tdevries@suse.de>
836 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
837 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
838 vector_red_partition, vector_red_sym): New global variables.
839 (nvptx_option_override): Initialize vector_red_sym.
840 (nvptx_declare_function_name): Restore red_partition register.
841 (nvptx_file_end): Emit code to declare the vector reduction variables.
842 (nvptx_output_red_partition): New function.
843 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
844 large vector reductions.
845 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
846 (nvptx_init_builtins): Add VECTOR_ADDR.
847 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
848 Handle nvptx_expand_shared_addr.
849 (nvptx_get_shared_red_addr): Add vector argument and handle large
851 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
853 (nvptx_goacc_reduction_init): Likewise.
854 (nvptx_goacc_reduction_fini): Likewise.
855 (nvptx_goacc_reduction_teardown): Likewise.
856 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
858 (nvptx_init_axis_predicate): Initialize vector_red_partition.
859 (nvptx_set_current_function): Init vector_red_partition.
860 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
861 (nvptx_red_partition): New insn.
862 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
864 2019-01-07 Tom de Vries <tdevries@suse.de>
867 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
870 2019-01-07 Tom de Vries <tdevries@suse.de>
872 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
873 (nvptx_option_override): Init oacc_bcast_partition.
874 (nvptx_init_oacc_workers): New function.
875 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
876 (nvptx_needs_shared_bcast): New function.
877 (nvptx_find_par): Generalize to enable vectors to use shared-memory
879 (nvptx_shared_propagate): Initialize vector bcast partition and
880 synchronization state.
881 (nvptx_single): Generalize to enable vectors to use shared-memory
883 (nvptx_process_pars): Likewise.
884 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
885 * config/nvptx/nvptx.h (struct machine_function): Add
886 bcast_partition and sync_bar members.
888 2019-01-07 Tom de Vries <tdevries@suse.de>
890 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
891 (nvptx_apply_dim_limits): New function.
892 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
895 2019-01-07 Tom de Vries <tdevries@suse.de>
897 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
900 2019-01-07 Tom de Vries <tdevries@suse.de>
902 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
903 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
904 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
905 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
906 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
908 2019-01-07 Tom de Vries <tdevries@suse.de>
910 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
912 2019-01-07 Tom de Vries <tdevries@suse.de>
914 * omp-offload.c (oacc_get_min_dim): New function.
915 * omp-offload.h (oacc_get_min_dim): Declare.
917 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
920 * config/i386/i386.c (function_value_ms_64): Return small sturct in
921 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
923 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
927 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
929 * ipa-inline.c (edge_badness): Use inlined_time instead of
930 inline_summaries->get.
932 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
934 * opts.c (enable_fdo_optimizations): Enable
935 version-loops-for-strides, loop-interchange, unrol-and-jam
936 and tree-loop-distribution.
937 * invoke.texi: Document newly enabled options.
939 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
941 * doc/invoke.texi (max-inline-insns-small): New parameters.
942 * ipa-inline.c (want_early_inline_function_p): simplify.
943 (want_inline_small_function_p): Fix pasto from previous patch;
944 use max-inline-insns-small bound.
945 * params.def (max-inline-insns-small): New param.
946 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
949 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
951 * doc/invoke.texi: Document max-inline-insns-size,
952 uninlined-function-insns, uninlined-function-time,
953 uninlined-thunk-insns and uninlined-thunk-time.
954 * params.def: Add max-inline-insns-size,
955 uninlined-function-insns, uninlined-function-time,
956 uninlined-thunk-insns and uninlined-thunk-time.
957 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
959 * ipa-inline.c (can_inline_edge_by_limits_p,
960 want_inline_small_function_p): Use new parameters.
962 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
964 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
966 2019-01-05 Jakub Jelinek <jakub@redhat.com>
970 * expr.c (expand_assignment): For calls returning VLA structures
971 if to_rtx is not a MEM, force it into a stack temporary.
974 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
975 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
976 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
977 subexpressions of both operands.
978 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
979 subrtxes are CONSTANT_P.
980 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
983 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
985 * params.def (hot-bb-count-ws-permille): Set to 990.
987 2019-01-04 Martin Sebor <msebor@redhat.com>
990 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
993 2019-01-04 Martin Sebor <msebor@redhat.com>
996 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
998 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1000 * gdbinit.in: Turn off pagination for the skip commands, restore
1001 it to previous state afterwards.
1003 2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
1006 * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
1009 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1012 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1013 of GET_MODE (opN) as modes of the libcall arguments.
1015 2019-01-04 Jan Beulich <jbeulich@suse.com>
1017 * config/i386/sse.md
1018 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
1019 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
1020 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1021 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1022 avx512f_vmcmp<mode>3<round_saeonly_name>,
1023 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
1024 avx512f_maskcmp<mode>3,
1025 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1026 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1027 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1028 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1029 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1030 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1031 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1032 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1033 <avx512>_testm<mode>3<mask_scalar_merge_name>,
1034 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
1035 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1036 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1037 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1038 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
1039 avx512cd_maskb_vec_dup<mode>,
1040 avx512cd_maskw_vec_dup<mode>,
1041 avx512dq_fpclass<mode><mask_scalar_merge_name>,
1042 avx512dq_vmfpclass<mode>,
1043 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
1046 2019-01-03 Martin Sebor <msebor@redhat.com>
1048 PR tree-optimization/88659
1049 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
1051 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1053 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
1054 unaligned vsx and avoid lxvd2x/stxvd2x.
1055 (gen_lvx_v4si_move): New function.
1057 2019-01-03 Tom de Vries <tdevries@suse.de>
1059 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
1060 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
1062 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
1064 2019-01-03 Tom de Vries <tdevries@suse.de>
1066 * config/nvptx/nvptx.c (struct offload_attrs): New.
1067 (populate_offload_attrs): New function. Factor mask extraction out of
1068 nvptx_reorg. Add extraction of dimensions.
1069 (nvptx_reorg): Use populate_offload_attrs.
1071 2019-01-03 Tom de Vries <tdevries@suse.de>
1073 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
1074 cases for oacc_min_dims_p and routine_p. Add asserts for
1075 oacc_default_dims_p and offload_region_p.
1077 2019-01-03 Tom de Vries <tdevries@suse.de>
1079 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
1081 (nvptx_goacc_validate_dims): ... here.
1083 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1085 PR tree-optimization/85574
1086 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
1088 (struct ssa_equip_hash_traits): Declare.
1089 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
1091 2019-01-03 Jakub Jelinek <jakub@redhat.com>
1094 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1095 change it to qualified_type.
1097 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1099 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
1100 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
1102 2019-01-02 Martin Sebor <msebor@redhat.com>
1103 Jeff Law <law@redhat.com>
1105 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
1106 (get_range_strlen_tree): Update appropriately.
1108 * gimple-fold.h (get_range_strlen): Drop unused last argument.
1110 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
1111 rather than set_range_info.
1112 * tree-ssa-strlen.c (set_strlen_range): Extracted from
1113 maybe_set_strlen_range. Handle potentially boundary crossing
1114 cases more conservatively.
1115 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
1116 Call set_strlen_range.
1117 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
1120 * gimple-fold.c (get_range_strlen): Update prototype to no longer
1121 need the flexp argument.
1122 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
1123 from calls to get_range_strlen. Update comments. Just update
1124 VAL for an unterminated const char array and let the reset of the
1125 code handle it normally. No longer try to set *flexp. Adjust
1127 (get_range_strlen): Update for the new get_range_strlen API.
1128 (get_maxval_strlen): Similarly.
1129 (gimple_fold_builtin_strlen): Handle update meaning of return value
1130 from get_range_strlen.
1131 * gimple-ssa-sprintf.c (get_string_length): Update for the new
1132 get_range_strlen API.
1134 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
1137 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
1138 false at WPA time when body was removed.
1140 2019-01-02 Martin Liska <mliska@suse.cz>
1142 PR tree-optimization/88650
1143 * predict.c (set_even_probabilities): Calculate probability
1144 remainer only when really used.
1146 2019-01-02 Richard Biener <rguenther@suse.de>
1149 * tree-data-ref.c (analyze_subscript_affine_affine): Use
1150 widest_ints when mangling max_stmt_execution results.
1152 2019-01-02 Richard Biener <rguenther@suse.de>
1154 PR tree-optimization/88621
1155 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
1156 bitfields when canoncalizing.
1158 2019-01-02 Richard Biener <rguenther@suse.de>
1161 * config/i386/x86-tune-costs.h (intel_cost): Adjust
1162 cost of cheap SSE instruction.
1164 2019-01-02 Richard Biener <rguenther@suse.de>
1167 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
1168 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
1170 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
1171 set after UIDs before splitting them.
1173 2019-01-01 Martin Sebor <msebor@redhat.com>
1174 Jeff Law <law@redhat.com>
1176 * gimple-fold.c (get_range_strlen_tree): Record if the computed
1177 length is optimistic. If it is, then arrange to compute the
1178 conservative length as well.
1180 * gimple-fold.h (get_range_strlen): Update prototype.
1181 * builtins.c (check_access): Update call to get_range_strlen to use
1182 c_strlen_data pointer. Change various variable accesses to instead
1183 pull data from the c_strlen_data structure.
1184 (check_strncat_sizes, expand_builtin_strncat): Likewise.
1185 * calls.c (maybe_warn_nonstring_arg): Likewise.
1186 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
1187 minimum length if maximum lengh is unknown.
1188 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
1189 that used c_strlen, it's no longer needed. Restructure slightly.
1190 (format_string): Set unlikely range appropriately.
1191 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
1193 (get_range_strlen): Accept c_strlen_data pointer for external
1194 call sites as well. Pass through to call to internal get_range_strlen.
1195 Adjust minlen, maxlen and maxbound as needed.
1196 (get_maxval_strlen): Update comments.
1197 (gimple_fold_builtin_strlen): Update call to get_range_strlen
1198 to use c_strlen_data pointer. Change variable accesses to instead
1199 use c_strlen_data data members.
1201 * gimple-fold.c (get_range_strlen): Update prototype.
1202 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
1203 local variables. Use pdata to return information to caller.
1204 Update calls to get_range_strlen. Update pdata->maxbound.
1205 (get_range_strlen -- static version): Similarly.
1206 (get_range_strlen -- extern version): Update for internal
1207 get_range_strlen API change. Convert to external data format.
1208 (get_maxval_strlen): Similarly.
1210 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
1212 * coverage.c (get_coverage_counts): Use current_function_decl.
1213 * profile.c (read_thunk_profile): New function.
1214 (branch_prob): Add THUNK parameter.
1215 * tree-profile.c (tree_profiling): Handle thunks.
1216 * value-prof.c (init_node_map): Handle thunks.
1217 * value-prof.h (branch_prob): Upate prototype.
1218 (read_thunk_profile): Declare.
1220 2019-01-01 Jakub Jelinek <jakub@redhat.com>
1222 Update copyright years.
1224 * gcc.c (process_command): Update copyright notice dates.
1225 * gcov-dump.c (print_version): Ditto.
1226 * gcov.c (print_version): Ditto.
1227 * gcov-tool.c (print_version): Ditto.
1228 * gengtype.c (create_file): Ditto.
1229 * doc/cpp.texi: Bump @copying's copyright year.
1230 * doc/cppinternals.texi: Ditto.
1231 * doc/gcc.texi: Ditto.
1232 * doc/gccint.texi: Ditto.
1233 * doc/gcov.texi: Ditto.
1234 * doc/install.texi: Ditto.
1235 * doc/invoke.texi: Ditto.
1237 Copyright (C) 2019 Free Software Foundation, Inc.
1239 Copying and distribution of this file, with or without modification,
1240 are permitted in any medium without royalty provided the copyright
1241 notice and this notice are preserved.