1 2019-01-11 Steve Ellcey <sellcey@marvell.com>
3 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
4 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
5 (aarch64_return_call_with_max_clobbers): New function.
6 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
7 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
9 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
10 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
11 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
12 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
13 * cselib.c (cselib_process_insn): Add argument to
14 targetm.hard_regno_call_part_clobbered call.
15 * ira-conflicts.c (ira_build_conflicts): Ditto.
16 * ira-costs.c (ira_tune_allocno_costs): Ditto.
17 * lra-constraints.c (inherit_reload_reg): Ditto.
18 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
19 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
20 argument. Call targetm.return_call_with_max_clobbers.
21 Add argument to targetm.hard_regno_call_part_clobbered call.
22 (calls_have_same_clobbers_p): New function.
23 (process_bb_lives): Add call_insn and last_call_insn variables.
24 Pass call_insn to check_pseudos_live_through_calls.
25 Modify if stmt to check targetm.return_call_with_max_clobbers.
26 Update setting of flush variable.
27 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
29 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
30 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
31 targetm.hard_regno_call_part_clobbered call.
32 * reginfo.c (choose_hard_reg_mode): Ditto.
33 * regrename.c (check_new_reg_p): Ditto.
34 * reload.c (find_equiv_reg): Ditto.
35 * reload1.c (emit_reload_insns): Ditto.
36 * sched-deps.c (deps_analyze_insn): Ditto.
37 * sel-sched.c (init_regs_for_mode): Ditto.
38 (mark_unavailable_hard_regs): Ditto.
39 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
40 * target.def (hard_regno_call_part_clobbered): Add insn argument.
41 (return_call_with_max_clobbers): New target function.
42 * doc/tm.texi: Regenerate.
43 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
44 * hooks.c (hook_bool_uint_mode_false): Change to
45 hook_bool_insn_uint_mode_false.
46 * hooks.h (hook_bool_uint_mode_false): Ditto.
48 2019-01-11 Steve Ellcey <sellcey@marvell.com>
50 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
51 (aarch64_remove_extra_call_preserved_regs): New function.
52 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
53 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
54 * doc/tm.texi: Regenerate.
55 * final.c (get_call_reg_set_usage): Call new hook.
56 * target.def (remove_extra_call_preserved_regs): New hook.
57 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
58 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
60 2019-01-11 Jakub Jelinek <jakub@redhat.com>
63 * passes.c (finish_optimization_passes): Call print_combine_total_stats
64 inside of pass_combine_1 dump rather than pass_profile_1.
66 2019-01-11 Tom de Vries <tdevries@suse.de>
68 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
69 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
70 (PTX_NUM_PER_WORKER_BARRIERS): Define.
71 (nvptx_apply_dim_limits): Prevent vector_length 64 and
74 2019-01-11 Tom de Vries <tdevries@suse.de>
76 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
78 2019-01-11 Jan Beulich <jbeulich@suse.com>
80 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
81 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
82 sse2_cvtsi2sd): Add {l}.
83 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
86 2019-01-10 Jakub Jelinek <jakub@redhat.com>
89 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
91 (*float<floatunssuffix>v2div2sf2): New define_insn.
92 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
93 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
94 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
95 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
96 match_operands with "const0_operand" "C".
98 2019-01-10 Tamar Christina <tamar.christina@arm.com>
100 * config/aarch64/aarch64-builtins.c
101 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
102 (aarch64_init_simd_builtins): ...Here
104 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
106 PR rtl-optimization/87305
108 (setup_live_pseudos_and_spill_after_risky_transforms): Check
109 allocation for big endian pseudos used as paradoxical subregs and
110 spill them if it is wrong.
111 * lra-constraints.c (lra_constraints): Add a comment.
113 2019-01-10 Richard Biener <rguenther@suse.de>
115 PR tree-optimization/88792
116 * tree-ssa-pre.c (get_representative_for): Do not return a
119 2019-01-10 Jakub Jelinek <jakub@redhat.com>
123 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
124 (assign_parm_setup_block): Do the argument slot realignment here
127 2019-01-10 Stefan Agner <stefan@agner.ch>
130 * config/arm/arm.c (arm_option_override_internal): Force
131 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
133 2019-01-10 Jakub Jelinek <jakub@redhat.com>
136 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
139 2019-01-10 Tamar Christina <tamar.christina@arm.com>
141 * config/arm/arm-builtins.c
142 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
143 (MAC_LANE_PAIR_QUALIFIERS): New.
144 (arm_expand_builtin_args): Use it.
145 (arm_expand_builtin_1): Likewise.
146 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
147 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
148 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
149 * config/arm/arm_neon.h:
150 (vcadd_rot90_f16): New.
151 (vcaddq_rot90_f16): New.
152 (vcadd_rot270_f16): New.
153 (vcaddq_rot270_f16): New.
156 (vcmla_lane_f16): New.
157 (vcmla_laneq_f16): New.
158 (vcmlaq_lane_f16): New.
159 (vcmlaq_laneq_f16): New.
160 (vcmla_rot90_f16): New.
161 (vcmlaq_rot90_f16): New.
162 (vcmla_rot90_lane_f16): New.
163 (vcmla_rot90_laneq_f16): New.
164 (vcmlaq_rot90_lane_f16): New.
165 (vcmlaq_rot90_laneq_f16): New.
166 (vcmla_rot180_f16): New.
167 (vcmlaq_rot180_f16): New.
168 (vcmla_rot180_lane_f16): New.
169 (vcmla_rot180_laneq_f16): New.
170 (vcmlaq_rot180_lane_f16): New.
171 (vcmlaq_rot180_laneq_f16): New.
172 (vcmla_rot270_f16): New.
173 (vcmlaq_rot270_f16): New.
174 (vcmla_rot270_lane_f16): New.
175 (vcmla_rot270_laneq_f16): New.
176 (vcmlaq_rot270_lane_f16): New.
177 (vcmlaq_rot270_laneq_f16): New.
178 (vcadd_rot90_f32): New.
179 (vcaddq_rot90_f32): New.
180 (vcadd_rot270_f32): New.
181 (vcaddq_rot270_f32): New.
184 (vcmla_lane_f32): New.
185 (vcmla_laneq_f32): New.
186 (vcmlaq_lane_f32): New.
187 (vcmlaq_laneq_f32): New.
188 (vcmla_rot90_f32): New.
189 (vcmlaq_rot90_f32): New.
190 (vcmla_rot90_lane_f32): New.
191 (vcmla_rot90_laneq_f32): New.
192 (vcmlaq_rot90_lane_f32): New.
193 (vcmlaq_rot90_laneq_f32): New.
194 (vcmla_rot180_f32): New.
195 (vcmlaq_rot180_f32): New.
196 (vcmla_rot180_lane_f32): New.
197 (vcmla_rot180_laneq_f32): New.
198 (vcmlaq_rot180_lane_f32): New.
199 (vcmlaq_rot180_laneq_f32): New.
200 (vcmla_rot270_f32): New.
201 (vcmlaq_rot270_f32): New.
202 (vcmla_rot270_lane_f32): New.
203 (vcmla_rot270_laneq_f32): New.
204 (vcmlaq_rot270_lane_f32): New.
205 (vcmlaq_rot270_laneq_f32): New.
206 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
207 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
208 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
209 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
210 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
211 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
212 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
213 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
214 (arm_option_reconfigure_globals): Use them.
215 * config/arm/iterators.md (VDF, VQ_HSF): New.
217 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
218 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
219 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
220 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
222 2019-01-10 Tamar Christina <tamar.christina@arm.com>
224 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
225 (emit-rtl.h): Include.
226 (TYPES_QUADOP_LANE_PAIR): New.
227 (aarch64_simd_expand_args): Use it.
228 (aarch64_simd_expand_builtin): Likewise.
229 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
230 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
231 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
232 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
233 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
234 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
235 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
236 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
237 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
238 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
239 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
240 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
241 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
242 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
243 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
244 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
245 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
246 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
247 aarch64_fcmla<rot><mode>): New.
248 * config/aarch64/arm_neon.h:
249 (vcadd_rot90_f16): New.
250 (vcaddq_rot90_f16): New.
251 (vcadd_rot270_f16): New.
252 (vcaddq_rot270_f16): New.
255 (vcmla_lane_f16): New.
256 (vcmla_laneq_f16): New.
257 (vcmlaq_lane_f16): New.
258 (vcmlaq_rot90_lane_f16): New.
259 (vcmla_rot90_laneq_f16): New.
260 (vcmla_rot90_lane_f16): New.
261 (vcmlaq_rot90_f16): New.
262 (vcmla_rot90_f16): New.
263 (vcmlaq_laneq_f16): New.
264 (vcmla_rot180_laneq_f16): New.
265 (vcmla_rot180_lane_f16): New.
266 (vcmlaq_rot180_f16): New.
267 (vcmla_rot180_f16): New.
268 (vcmlaq_rot90_laneq_f16): New.
269 (vcmlaq_rot270_laneq_f16): New.
270 (vcmlaq_rot270_lane_f16): New.
271 (vcmla_rot270_laneq_f16): New.
272 (vcmlaq_rot270_f16): New.
273 (vcmla_rot270_f16): New.
274 (vcmlaq_rot180_laneq_f16): New.
275 (vcmlaq_rot180_lane_f16): New.
276 (vcmla_rot270_lane_f16): New.
277 (vcadd_rot90_f32): New.
278 (vcaddq_rot90_f32): New.
279 (vcaddq_rot90_f64): New.
280 (vcadd_rot270_f32): New.
281 (vcaddq_rot270_f32): New.
282 (vcaddq_rot270_f64): New.
286 (vcmla_lane_f32): New.
287 (vcmla_laneq_f32): New.
288 (vcmlaq_lane_f32): New.
289 (vcmlaq_laneq_f32): New.
290 (vcmla_rot90_f32): New.
291 (vcmlaq_rot90_f32): New.
292 (vcmlaq_rot90_f64): New.
293 (vcmla_rot90_lane_f32): New.
294 (vcmla_rot90_laneq_f32): New.
295 (vcmlaq_rot90_lane_f32): New.
296 (vcmlaq_rot90_laneq_f32): New.
297 (vcmla_rot180_f32): New.
298 (vcmlaq_rot180_f32): New.
299 (vcmlaq_rot180_f64): New.
300 (vcmla_rot180_lane_f32): New.
301 (vcmla_rot180_laneq_f32): New.
302 (vcmlaq_rot180_lane_f32): New.
303 (vcmlaq_rot180_laneq_f32): New.
304 (vcmla_rot270_f32): New.
305 (vcmlaq_rot270_f32): New.
306 (vcmlaq_rot270_f64): New.
307 (vcmla_rot270_lane_f32): New.
308 (vcmla_rot270_laneq_f32): New.
309 (vcmlaq_rot270_lane_f32): New.
310 (vcmlaq_rot270_laneq_f32): New.
311 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
312 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
313 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
316 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
318 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
322 * config/pa/pa.c: Change "can not" to "cannot".
323 * gimple-ssa-evrp-analyze.c: Likewise.
324 * ipa-icf.c: Likewise.
325 * ipa-polymorphic-call.c: Likewise.
326 * ipa-pure-const.c: Likewise.
327 * lra-constraints.c: Likewise.
328 * lra-remat.c: Likewise.
329 * reload1.c: Likewise.
331 * tree-ssa-uninit.c: Likewise.
333 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
337 * Makefile.in: Mechanically replace "can not" with "cannot".
339 * builtins.c: Likewise.
341 * cgraph.c: Likewise.
342 * cgraph.h: Likewise.
343 * cgraphclones.c: Likewise.
344 * cgraphunit.c: Likewise.
345 * combine-stack-adj.c: Likewise.
346 * combine.c: Likewise.
347 * common/config/i386/i386-common.c: Likewise.
348 * config/aarch64/aarch64.c: Likewise.
349 * config/alpha/sync.md: Likewise.
350 * config/arc/arc.c: Likewise.
351 * config/arc/predicates.md: Likewise.
352 * config/arm/arm-c.c: Likewise.
353 * config/arm/arm.c: Likewise.
354 * config/arm/arm.h: Likewise.
355 * config/arm/arm.md: Likewise.
356 * config/arm/cortex-r4f.md: Likewise.
357 * config/csky/csky.c: Likewise.
358 * config/csky/csky.h: Likewise.
359 * config/darwin-f.c: Likewise.
360 * config/epiphany/epiphany.md: Likewise.
361 * config/i386/i386.c: Likewise.
362 * config/i386/sol2.h: Likewise.
363 * config/m68k/m68k.c: Likewise.
364 * config/mcore/mcore.h: Likewise.
365 * config/microblaze/microblaze.md: Likewise.
366 * config/mips/20kc.md: Likewise.
367 * config/mips/sb1.md: Likewise.
368 * config/nds32/nds32.c: Likewise.
369 * config/nds32/predicates.md: Likewise.
370 * config/pa/pa.c: Likewise.
371 * config/rs6000/e300c2c3.md: Likewise.
372 * config/rs6000/rs6000.c: Likewise.
373 * config/s390/s390.h: Likewise.
374 * config/sh/sh.c: Likewise.
375 * config/sh/sh.md: Likewise.
376 * config/spu/vmx2spu.h: Likewise.
378 * dbxout.c: Likewise.
379 * df-scan.c: Likewise.
380 * doc/cfg.texi: Likewise.
381 * doc/extend.texi: Likewise.
382 * doc/fragments.texi: Likewise.
383 * doc/gty.texi: Likewise.
384 * doc/invoke.texi: Likewise.
385 * doc/lto.texi: Likewise.
386 * doc/md.texi: Likewise.
387 * doc/objc.texi: Likewise.
388 * doc/rtl.texi: Likewise.
389 * doc/tm.texi: Likewise.
391 * emit-rtl.c: Likewise.
392 * emit-rtl.h: Likewise.
393 * except.c: Likewise.
394 * expmed.c: Likewise.
396 * fold-const.c: Likewise.
397 * genautomata.c: Likewise.
398 * gimple-fold.c: Likewise.
399 * hard-reg-set.h: Likewise.
401 * ipa-comdats.c: Likewise.
402 * ipa-cp.c: Likewise.
403 * ipa-devirt.c: Likewise.
404 * ipa-fnsummary.c: Likewise.
405 * ipa-icf.c: Likewise.
406 * ipa-inline-transform.c: Likewise.
407 * ipa-inline.c: Likewise.
408 * ipa-polymorphic-call.c: Likewise.
409 * ipa-profile.c: Likewise.
410 * ipa-prop.c: Likewise.
411 * ipa-pure-const.c: Likewise.
412 * ipa-reference.c: Likewise.
413 * ipa-split.c: Likewise.
414 * ipa-visibility.c: Likewise.
416 * ira-build.c: Likewise.
417 * ira-color.c: Likewise.
418 * ira-conflicts.c: Likewise.
419 * ira-costs.c: Likewise.
420 * ira-int.h: Likewise.
421 * ira-lives.c: Likewise.
424 * loop-invariant.c: Likewise.
425 * loop-unroll.c: Likewise.
426 * lower-subreg.c: Likewise.
427 * lra-assigns.c: Likewise.
428 * lra-constraints.c: Likewise.
429 * lra-eliminations.c: Likewise.
430 * lra-lives.c: Likewise.
431 * lra-remat.c: Likewise.
432 * lra-spills.c: Likewise.
434 * lto-cgraph.c: Likewise.
435 * lto-streamer-out.c: Likewise.
436 * postreload-gcse.c: Likewise.
437 * predict.c: Likewise.
438 * profile-count.h: Likewise.
439 * profile.c: Likewise.
442 * reload.c: Likewise.
443 * reload1.c: Likewise.
445 * resource.c: Likewise.
448 * rtlanal.c: Likewise.
449 * sched-deps.c: Likewise.
450 * sched-ebb.c: Likewise.
451 * sched-rgn.c: Likewise.
452 * sel-sched-ir.c: Likewise.
453 * sel-sched.c: Likewise.
454 * shrink-wrap.c: Likewise.
455 * simplify-rtx.c: Likewise.
456 * symtab.c: Likewise.
457 * target.def: Likewise.
458 * toplev.c: Likewise.
459 * tree-call-cdce.c: Likewise.
460 * tree-cfg.c: Likewise.
461 * tree-complex.c: Likewise.
462 * tree-core.h: Likewise.
463 * tree-eh.c: Likewise.
464 * tree-inline.c: Likewise.
465 * tree-loop-distribution.c: Likewise.
466 * tree-nrv.c: Likewise.
467 * tree-profile.c: Likewise.
468 * tree-sra.c: Likewise.
469 * tree-ssa-alias.c: Likewise.
470 * tree-ssa-dce.c: Likewise.
471 * tree-ssa-dom.c: Likewise.
472 * tree-ssa-forwprop.c: Likewise.
473 * tree-ssa-loop-im.c: Likewise.
474 * tree-ssa-loop-ivcanon.c: Likewise.
475 * tree-ssa-loop-ivopts.c: Likewise.
476 * tree-ssa-loop-niter.c: Likewise.
477 * tree-ssa-phionlycprop.c: Likewise.
478 * tree-ssa-phiopt.c: Likewise.
479 * tree-ssa-propagate.c: Likewise.
480 * tree-ssa-threadedge.c: Likewise.
481 * tree-ssa-threadupdate.c: Likewise.
482 * tree-ssa-uninit.c: Likewise.
483 * tree-ssanames.c: Likewise.
484 * tree-streamer-out.c: Likewise.
487 * vr-values.c: Likewise.
489 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
491 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
492 (ix86_split_xorsign): Ditto.
493 * config/i386/i386.c (ix86_expand_xorsign): New function.
494 (ix86_split_xorsign): Ditto.
495 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
496 (xorsign<mode>3): New expander.
497 (xorsign<mode>3_1): New insn_and_split pattern.
498 * config/i386/sse.md (xorsign<mode>3): New expander.
500 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
502 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
503 (*tablejump_sp64): Likewise.
504 (*tablejump<P:mode>): ...this.
505 (*call_address_sp32): Merge into...
506 (*call_address_sp64): Likewise.
507 (*call_address<P:mode>): ...this.
508 (*call_symbolic_sp32): Merge into...
509 (*call_symbolic_sp64): Likewise.
510 (*call_symbolic<P:mode>): ...this.
511 (call_value): Remove constraint and add predicate.
512 (*call_value_address_sp32): Merge into...
513 (*call_value_address_sp64): Likewise.
514 (*call_value_address<P:mode>): ...this.
515 (*call_value_symbolic_sp32): Merge into...
516 (*call_value_symbolic_sp64): Likewise.
517 (*call_value_symbolic<P:mode>): ...this.
518 (*sibcall_symbolic_sp32): Merge into...
519 (*sibcall_symbolic_sp64): Likewise.
520 (*sibcall_symbolic<P:mode>): ...this.
521 (sibcall_value): Remove constraint and add predicate.
522 (*sibcall_value_symbolic_sp32): Merge into...
523 (*sibcall_value_symbolic_sp64): Likewise.
524 (*sibcall_value_symbolic<P:mode>): ...this.
525 (window_save): Minor tweak.
526 (*branch_sp32): Merge into...
527 (*branch_sp64): Likewise.
528 (*branch<P:mode>): ...this.
530 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
531 James Clarke <jrtc27@jrtc27.com>
534 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
535 consistently in TLS address generation and adjust code to the renaming
536 of patterns. Mark calls to __tls_get_addr as const.
537 * config/sparc/sparc.md (tgd_hi22): Turn into...
538 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
539 (tgd_lo10): Turn into...
540 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
541 (tgd_add32): Merge into...
542 (tgd_add64): Likewise.
543 (tgd_add<P:mode>): ...this and use Pmode throughout.
544 (tldm_hi22): Turn into...
545 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
546 (tldm_lo10): Turn into...
547 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
548 (tldm_add32): Merge into...
549 (tldm_add64): Likewise.
550 (tldm_add<P:mode>): ...this and use Pmode throughout.
551 (tldm_call32): Merge into...
552 (tldm_call64): Likewise.
553 (tldm_call<P:mode>): ...this and use Pmode throughout.
554 (tldo_hix22): Turn into...
555 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
556 (tldo_lox10): Turn into...
557 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
558 (tldo_add32): Merge into...
559 (tldo_add64): Likewise.
560 (tldo_add<P:mode>): ...this and use Pmode throughout.
561 (tie_hi22): Turn into...
562 (tie_hi22<P:mode>): ...this and use Pmode throughout.
563 (tie_lo10): Turn into...
564 (tie_lo10<P:mode>): ...this and use Pmode throughout.
565 (tie_ld64): Use DImode throughout.
566 (tie_add32): Merge into...
567 (tie_add64): Likewise.
568 (tie_add<P:mode>): ...this and use Pmode throughout.
569 (tle_hix22_sp32): Merge into...
570 (tle_hix22_sp64): Likewise.
571 (tle_hix22<P:mode>): ...this and use Pmode throughout.
572 (tle_lox22_sp32): Merge into...
573 (tle_lox22_sp64): Likewise.
574 (tle_lox22<P:mode>): ...this and use Pmode throughout.
575 (*tldo_ldub_sp32): Merge into...
576 (*tldo_ldub_sp64): Likewise.
577 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
578 (*tldo_ldub1_sp32): Merge into...
579 (*tldo_ldub1_sp64): Likewise.
580 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
581 (*tldo_ldub2_sp32): Merge into...
582 (*tldo_ldub2_sp64): Likewise.
583 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
584 (*tldo_ldsb1_sp32): Merge into...
585 (*tldo_ldsb1_sp64): Likewise.
586 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
587 (*tldo_ldsb2_sp32): Merge into...
588 (*tldo_ldsb2_sp64): Likewise.
589 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
590 (*tldo_ldub3_sp64): Use DImode throughout.
591 (*tldo_ldsb3_sp64): Likewise.
592 (*tldo_lduh_sp32): Merge into...
593 (*tldo_lduh_sp64): Likewise.
594 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
595 (*tldo_lduh1_sp32): Merge into...
596 (*tldo_lduh1_sp64): Likewise.
597 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
598 (*tldo_ldsh1_sp32): Merge into...
599 (*tldo_ldsh1_sp64): Likewise.
600 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
601 (*tldo_lduh2_sp64): Use DImode throughout.
602 (*tldo_ldsh2_sp64): Likewise.
603 (*tldo_lduw_sp32): Merge into...
604 (*tldo_lduw_sp64): Likewise.
605 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
606 (*tldo_lduw1_sp64): Use DImode throughout.
607 (*tldo_ldsw1_sp64): Likewise.
608 (*tldo_ldx_sp64): Likewise.
609 (*tldo_stb_sp32): Merge into...
610 (*tldo_stb_sp64): Likewise.
611 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
612 (*tldo_sth_sp32): Merge into...
613 (*tldo_sth_sp64): Likewise.
614 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
615 (*tldo_stw_sp32): Merge into...
616 (*tldo_stw_sp64): Likewise.
617 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
618 (*tldo_stx_sp64): Use DImode throughout.
620 2018-01-09 Sudakshina Das <sudi.das@arm.com>
622 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
623 check configure option to set BTI and Return Address Signing.
624 * configure.ac: Add --enable-standard-branch-protection and
625 --disable-standard-branch-protection.
626 * configure: Regenerated.
627 * doc/install.texi: Document the same.
629 2018-01-09 Sudakshina Das <sudi.das@arm.com>
630 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
632 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
633 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
634 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
636 * config/aarch64/aarch64-bti-insert.c: New file.
637 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
639 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
641 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
642 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
643 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
644 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
646 2018-01-09 Sudakshina Das <sudi.das@arm.com>
648 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
649 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
650 Disable bti for -mbranch-protection=none.
651 (aarch64_handle_standard_branch_protection): Enable bti for
652 -mbranch-protection=standard.
653 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
655 (aarch64_bti_enabled): Check if bti is enabled.
656 * config/aarch64/aarch64.opt: Declare target variable.
657 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
659 2018-01-09 Sudakshina Das <sudi.das@arm.com>
661 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
662 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
663 (aarch64_expand_epilogue): Likewise.
664 (aarch64_output_mi_thunk): Likewise
665 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
666 TAILCALL_ADDR_REGS to x16 and x17.
667 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
669 2018-01-09 Sudakshina Das <sudi.das@arm.com>
671 * config/aarch64/aarch64-option-extensions.def: Define
672 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
673 * gcc/config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
674 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
675 (AARCH64_FL_PREDRES): New.
676 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
677 AARCH64_FL_PREDRES by default.
678 * gcc/doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
680 2018-01-09 Sudakshina Das <sudi.das@arm.com>
682 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
684 * gcc/config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
685 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
686 * gcc/doc/invoke.texi: Document ARMv8.5-A.
688 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
690 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
691 (xorsign<mode>3): Likewise.
693 2019-01-09 Jelinek <jakub@redhat.com>
696 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
697 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
699 PR rtl-optimization/88331
700 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
701 not currently_expanding_to_rtl.
703 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
705 * doc/invoke.texi (-Os): Remove trailing spaces.
706 (-finline-functions): Remove reference to -O2.
708 2019-01-08 Jakub Jelinek <jakub@redhat.com>
710 PR rtl-optimization/79593
711 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
713 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
714 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
716 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
719 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
723 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
724 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
726 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
729 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
730 ix86_avx_u128_mode_entry.
732 2019-01-08 Martin Liska <mliska@suse.cz>
734 PR tree-optimization/88753
735 * tree-switch-conversion.c (switch_conversion::build_one_array):
736 Come up with local variable constructor. Convert first to
737 type of constructor values.
739 2019-01-08 Richard Biener <rguenther@suse.de>
741 PR tree-optimization/86554
742 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
743 rpo_avail): Move earlier.
744 (visit_nary_op): When value-numbering to expressions
745 with different overflow behavior make sure there's an
746 available expression on the path.
748 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
750 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
751 aarch64_parse_branch_protection,
752 struct aarch64_branch_protect_type,
753 aarch64_handle_no_branch_protection,
754 aarch64_handle_standard_branch_protection,
755 aarch64_validate_mbranch_protection,
756 aarch64_handle_pac_ret_protection,
757 aarch64_handle_attr_branch_protection,
758 accepted_branch_protection_string,
759 aarch64_pac_ret_subtypes,
760 aarch64_branch_protect_types,
761 aarch64_handle_pac_ret_leaf): Define.
762 (aarch64_override_options_after_change_1, aarch64_override_options):
763 Add check for accepted_branch_protection_string.
764 (aarch64_option_save): Save accepted_branch_protection_string.
765 (aarch64_option_restore): Save accepted_branch_protection_string.
766 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
767 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
768 msign-return-address.
769 * doc/invoke.texi: Add mbranch-protection.
771 2019-01-08 Alan Modra <amodra@gmail.com>
774 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
775 Delete "unknownp" parameter. Adjust callers. Handle
776 CONST_INT, PLUS, MINUS, and MULT.
777 (attr_value_aligned): Renamed from or_attr_value.
778 (min_attr_value): Return INT_MIN for unhandled rtl case..
779 (min_fn): ..and translate to INT_MAX here.
780 (write_length_unit_log): Modify to cope without "unknown".
781 (write_attr_value): Handle IF_THEN_ELSE.
783 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
785 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
786 optimization for masked stores.
788 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
791 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
792 output vector directly to duplicate_and_interleave instead of
793 going through a temporary. Postpone insertion of ctor_seq to
796 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
799 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
800 unsigned_p. Handle signed and unsigned overflow correction as
802 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
804 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
806 (add<mode>3_compareV_imm): Make this callable for expanding.
807 (subv<GPI:mode>4): Use register_operand for operand 1. Use
808 aarch64_plus_operand for operand 2.
809 (subv<GPI:mode>_insn): New insn pattern.
810 (subv<GPI:mode>_imm): Likewise.
811 (negv<GPI:mode>3): New expand pattern.
812 (negv<GPI:mode>_insn): New insn pattern.
813 (negv<GPI:mode>_cmp_only): Likewise.
814 (cmpv<GPI:mode>_insn): Likewise.
815 (subvti4): Use register_operand for operand 1. Update call to
816 aarch64_expand_subvti.
817 (usubvti4): Likewise.
818 (negvti3): New expand pattern.
819 (negdi_carryout): New insn pattern.
820 (negvdi_carryinV): New insn pattern.
821 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
822 version the named version.
823 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
825 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
827 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
829 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
830 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
831 (sub<mode>3_carryinCV): Delete.
832 (sub<GPI:mode>3_carryinV): New expand pattern.
833 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
835 2019-01-07 Richard Biener <rguenther@suse.de>
837 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
838 of tree_operand_hash.
840 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
842 PR tree-optimization/88598
843 * tree.h (single_nonzero_element): Declare.
844 * tree.c (single_nonzero_element): New function.
845 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
846 if I is the only nonzero element of CST.
848 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
850 PR tree-optimization/88598
851 * tree.h (initializer_each_zero_or_onep): Declare.
852 * tree.c (initializer_each_zero_or_onep): New function.
853 (signed_or_unsigned_type_for): Handle float types too.
854 (unsigned_type_for, signed_type_for): Update comments accordingly.
855 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
856 x & { 0 or -1, 0 or -1, ... }.
858 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
860 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
861 with x86_64-pc-linux-gnu.
863 2019-01-07 Tom de Vries <tdevries@suse.de>
866 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
868 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
871 2019-01-07 Jakub Jelinek <jakub@redhat.com>
873 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
874 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
875 TARGET_AVX512F as condition.
878 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
879 const_not_ok_for_debug_p target hook.
880 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
881 on UNSPEC and subexpressions thereof if all subexpressions of the
882 UNSPEC are CONSTANT_P.
884 PR tree-optimization/88676
885 * tree-ssa-phiopt.c (two_value_replacement): New function.
886 (tree_ssa_phiopt_worker): Call it.
889 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
890 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
893 * tree-vect-generic.c: Include insn-config.h and recog.h.
894 (expand_vector_piecewise): Add defaulted ret_type argument,
895 if non-NULL, use that in preference to type for the result type.
896 (expand_vector_parallel): Formatting fix.
897 (do_vec_conversion, do_vec_narrowing_conversion,
898 expand_vector_conversion): New functions.
899 (expand_vector_operations_1): Call expand_vector_conversion
900 for VEC_CONVERT ifn calls.
901 * internal-fn.def (VEC_CONVERT): New internal function.
902 * internal-fn.c (expand_VEC_CONVERT): New function.
903 * fold-const-call.c (fold_const_vec_convert): New function.
904 (fold_const_call): Use it for CFN_VEC_CONVERT.
905 * doc/extend.texi (__builtin_convertvector): Document.
907 2019-01-07 Tom de Vries <tdevries@suse.de>
909 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
910 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
911 vector_red_partition, vector_red_sym): New global variables.
912 (nvptx_option_override): Initialize vector_red_sym.
913 (nvptx_declare_function_name): Restore red_partition register.
914 (nvptx_file_end): Emit code to declare the vector reduction variables.
915 (nvptx_output_red_partition): New function.
916 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
917 large vector reductions.
918 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
919 (nvptx_init_builtins): Add VECTOR_ADDR.
920 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
921 Handle nvptx_expand_shared_addr.
922 (nvptx_get_shared_red_addr): Add vector argument and handle large
924 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
926 (nvptx_goacc_reduction_init): Likewise.
927 (nvptx_goacc_reduction_fini): Likewise.
928 (nvptx_goacc_reduction_teardown): Likewise.
929 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
931 (nvptx_init_axis_predicate): Initialize vector_red_partition.
932 (nvptx_set_current_function): Init vector_red_partition.
933 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
934 (nvptx_red_partition): New insn.
935 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
937 2019-01-07 Tom de Vries <tdevries@suse.de>
940 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
943 2019-01-07 Tom de Vries <tdevries@suse.de>
945 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
946 (nvptx_option_override): Init oacc_bcast_partition.
947 (nvptx_init_oacc_workers): New function.
948 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
949 (nvptx_needs_shared_bcast): New function.
950 (nvptx_find_par): Generalize to enable vectors to use shared-memory
952 (nvptx_shared_propagate): Initialize vector bcast partition and
953 synchronization state.
954 (nvptx_single): Generalize to enable vectors to use shared-memory
956 (nvptx_process_pars): Likewise.
957 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
958 * config/nvptx/nvptx.h (struct machine_function): Add
959 bcast_partition and sync_bar members.
961 2019-01-07 Tom de Vries <tdevries@suse.de>
963 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
964 (nvptx_apply_dim_limits): New function.
965 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
968 2019-01-07 Tom de Vries <tdevries@suse.de>
970 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
973 2019-01-07 Tom de Vries <tdevries@suse.de>
975 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
976 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
977 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
978 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
979 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
981 2019-01-07 Tom de Vries <tdevries@suse.de>
983 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
985 2019-01-07 Tom de Vries <tdevries@suse.de>
987 * omp-offload.c (oacc_get_min_dim): New function.
988 * omp-offload.h (oacc_get_min_dim): Declare.
990 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
993 * config/i386/i386.c (function_value_ms_64): Return small sturct in
994 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
996 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1000 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
1002 * ipa-inline.c (edge_badness): Use inlined_time instead of
1003 inline_summaries->get.
1005 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1007 * opts.c (enable_fdo_optimizations): Enable
1008 version-loops-for-strides, loop-interchange, unrol-and-jam
1009 and tree-loop-distribution.
1010 * invoke.texi: Document newly enabled options.
1012 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1014 * doc/invoke.texi (max-inline-insns-small): New parameters.
1015 * ipa-inline.c (want_early_inline_function_p): simplify.
1016 (want_inline_small_function_p): Fix pasto from previous patch;
1017 use max-inline-insns-small bound.
1018 * params.def (max-inline-insns-small): New param.
1019 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
1020 variables correctly.
1022 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1024 * doc/invoke.texi: Document max-inline-insns-size,
1025 uninlined-function-insns, uninlined-function-time,
1026 uninlined-thunk-insns and uninlined-thunk-time.
1027 * params.def: Add max-inline-insns-size,
1028 uninlined-function-insns, uninlined-function-time,
1029 uninlined-thunk-insns and uninlined-thunk-time.
1030 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
1032 * ipa-inline.c (can_inline_edge_by_limits_p,
1033 want_inline_small_function_p): Use new parameters.
1035 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1037 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
1039 2019-01-05 Jakub Jelinek <jakub@redhat.com>
1043 * expr.c (expand_assignment): For calls returning VLA structures
1044 if to_rtx is not a MEM, force it into a stack temporary.
1047 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
1048 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
1049 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
1050 subexpressions of both operands.
1051 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
1052 subrtxes are CONSTANT_P.
1053 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
1056 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
1058 * params.def (hot-bb-count-ws-permille): Set to 990.
1060 2019-01-04 Martin Sebor <msebor@redhat.com>
1063 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
1066 2019-01-04 Martin Sebor <msebor@redhat.com>
1069 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
1071 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1073 * gdbinit.in: Turn off pagination for the skip commands, restore
1074 it to previous state afterwards.
1076 2019-01-04 Sam Tebbs <sam.tebbs@arm.com>
1079 * gcc.target/aarch64/combine_bfxil.c: Change scan-assembler-times bfxil
1082 2019-01-04 Jakub Jelinek <jakub@redhat.com>
1085 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
1086 of GET_MODE (opN) as modes of the libcall arguments.
1088 2019-01-04 Jan Beulich <jbeulich@suse.com>
1090 * config/i386/sse.md
1091 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
1092 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
1093 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1094 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
1095 avx512f_vmcmp<mode>3<round_saeonly_name>,
1096 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
1097 avx512f_maskcmp<mode>3,
1098 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1099 <avx512>_cvt<ssemodesuffix>2mask<mode>,
1100 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1101 *<avx512>_cvtmask2<ssemodesuffix><mode>,
1102 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1103 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
1104 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1105 <avx512>_gt<mode>3<mask_scalar_merge_name>,
1106 <avx512>_testm<mode>3<mask_scalar_merge_name>,
1107 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
1108 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
1109 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
1110 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
1111 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
1112 avx512cd_maskb_vec_dup<mode>,
1113 avx512cd_maskw_vec_dup<mode>,
1114 avx512dq_fpclass<mode><mask_scalar_merge_name>,
1115 avx512dq_vmfpclass<mode>,
1116 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
1119 2019-01-03 Martin Sebor <msebor@redhat.com>
1121 PR tree-optimization/88659
1122 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
1124 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
1126 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
1127 unaligned vsx and avoid lxvd2x/stxvd2x.
1128 (gen_lvx_v4si_move): New function.
1130 2019-01-03 Tom de Vries <tdevries@suse.de>
1132 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
1133 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
1135 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
1137 2019-01-03 Tom de Vries <tdevries@suse.de>
1139 * config/nvptx/nvptx.c (struct offload_attrs): New.
1140 (populate_offload_attrs): New function. Factor mask extraction out of
1141 nvptx_reorg. Add extraction of dimensions.
1142 (nvptx_reorg): Use populate_offload_attrs.
1144 2019-01-03 Tom de Vries <tdevries@suse.de>
1146 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
1147 cases for oacc_min_dims_p and routine_p. Add asserts for
1148 oacc_default_dims_p and offload_region_p.
1150 2019-01-03 Tom de Vries <tdevries@suse.de>
1152 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
1154 (nvptx_goacc_validate_dims): ... here.
1156 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1158 PR tree-optimization/85574
1159 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
1161 (struct ssa_equip_hash_traits): Declare.
1162 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
1164 2019-01-03 Jakub Jelinek <jakub@redhat.com>
1167 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
1168 change it to qualified_type.
1170 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
1172 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
1173 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
1175 2019-01-02 Martin Sebor <msebor@redhat.com>
1176 Jeff Law <law@redhat.com>
1178 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
1179 (get_range_strlen_tree): Update appropriately.
1181 * gimple-fold.h (get_range_strlen): Drop unused last argument.
1183 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
1184 rather than set_range_info.
1185 * tree-ssa-strlen.c (set_strlen_range): Extracted from
1186 maybe_set_strlen_range. Handle potentially boundary crossing
1187 cases more conservatively.
1188 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
1189 Call set_strlen_range.
1190 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
1193 * gimple-fold.c (get_range_strlen): Update prototype to no longer
1194 need the flexp argument.
1195 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
1196 from calls to get_range_strlen. Update comments. Just update
1197 VAL for an unterminated const char array and let the reset of the
1198 code handle it normally. No longer try to set *flexp. Adjust
1200 (get_range_strlen): Update for the new get_range_strlen API.
1201 (get_maxval_strlen): Similarly.
1202 (gimple_fold_builtin_strlen): Handle update meaning of return value
1203 from get_range_strlen.
1204 * gimple-ssa-sprintf.c (get_string_length): Update for the new
1205 get_range_strlen API.
1207 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
1210 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
1211 false at WPA time when body was removed.
1213 2019-01-02 Martin Liska <mliska@suse.cz>
1215 PR tree-optimization/88650
1216 * predict.c (set_even_probabilities): Calculate probability
1217 remainer only when really used.
1219 2019-01-02 Richard Biener <rguenther@suse.de>
1222 * tree-data-ref.c (analyze_subscript_affine_affine): Use
1223 widest_ints when mangling max_stmt_execution results.
1225 2019-01-02 Richard Biener <rguenther@suse.de>
1227 PR tree-optimization/88621
1228 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
1229 bitfields when canoncalizing.
1231 2019-01-02 Richard Biener <rguenther@suse.de>
1234 * config/i386/x86-tune-costs.h (intel_cost): Adjust
1235 cost of cheap SSE instruction.
1237 2019-01-02 Richard Biener <rguenther@suse.de>
1240 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
1241 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
1243 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
1244 set after UIDs before splitting them.
1246 2019-01-01 Martin Sebor <msebor@redhat.com>
1247 Jeff Law <law@redhat.com>
1249 * gimple-fold.c (get_range_strlen_tree): Record if the computed
1250 length is optimistic. If it is, then arrange to compute the
1251 conservative length as well.
1253 * gimple-fold.h (get_range_strlen): Update prototype.
1254 * builtins.c (check_access): Update call to get_range_strlen to use
1255 c_strlen_data pointer. Change various variable accesses to instead
1256 pull data from the c_strlen_data structure.
1257 (check_strncat_sizes, expand_builtin_strncat): Likewise.
1258 * calls.c (maybe_warn_nonstring_arg): Likewise.
1259 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
1260 minimum length if maximum lengh is unknown.
1261 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
1262 that used c_strlen, it's no longer needed. Restructure slightly.
1263 (format_string): Set unlikely range appropriately.
1264 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
1266 (get_range_strlen): Accept c_strlen_data pointer for external
1267 call sites as well. Pass through to call to internal get_range_strlen.
1268 Adjust minlen, maxlen and maxbound as needed.
1269 (get_maxval_strlen): Update comments.
1270 (gimple_fold_builtin_strlen): Update call to get_range_strlen
1271 to use c_strlen_data pointer. Change variable accesses to instead
1272 use c_strlen_data data members.
1274 * gimple-fold.c (get_range_strlen): Update prototype.
1275 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
1276 local variables. Use pdata to return information to caller.
1277 Update calls to get_range_strlen. Update pdata->maxbound.
1278 (get_range_strlen -- static version): Similarly.
1279 (get_range_strlen -- extern version): Update for internal
1280 get_range_strlen API change. Convert to external data format.
1281 (get_maxval_strlen): Similarly.
1283 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
1285 * coverage.c (get_coverage_counts): Use current_function_decl.
1286 * profile.c (read_thunk_profile): New function.
1287 (branch_prob): Add THUNK parameter.
1288 * tree-profile.c (tree_profiling): Handle thunks.
1289 * value-prof.c (init_node_map): Handle thunks.
1290 * value-prof.h (branch_prob): Upate prototype.
1291 (read_thunk_profile): Declare.
1293 2019-01-01 Jakub Jelinek <jakub@redhat.com>
1295 Update copyright years.
1297 * gcc.c (process_command): Update copyright notice dates.
1298 * gcov-dump.c (print_version): Ditto.
1299 * gcov.c (print_version): Ditto.
1300 * gcov-tool.c (print_version): Ditto.
1301 * gengtype.c (create_file): Ditto.
1302 * doc/cpp.texi: Bump @copying's copyright year.
1303 * doc/cppinternals.texi: Ditto.
1304 * doc/gcc.texi: Ditto.
1305 * doc/gccint.texi: Ditto.
1306 * doc/gcov.texi: Ditto.
1307 * doc/install.texi: Ditto.
1308 * doc/invoke.texi: Ditto.
1310 Copyright (C) 2019 Free Software Foundation, Inc.
1312 Copying and distribution of this file, with or without modification,
1313 are permitted in any medium without royalty provided the copyright
1314 notice and this notice are preserved.