]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
[PR hsa/87863] Set assembler name of group and global variables early
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-02-01 Martin Jambor <mjambor@suse.cz>
2
3 PR hsa/87863
4 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
5 segment and global segment variables before making them static.
6
7 2019-02-01 Martin Jambor <mjambor@suse.cz>
8
9 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
10 missed optimization dump with dump_enabled_p.
11
12 2019-02-01 Richard Biener <rguenther@suse.de>
13
14 PR middle-end/88597
15 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
16 the instantiate cache.
17 (instantiate_scev_binary): Elide second operand procesing
18 if equal to the first.
19 * tree-chrec.c (chrec_contains_symbols): Add visited set.
20 (chrec_contains_undetermined): Likewise.
21 (tree_contains_chrecs): Likewise.
22
23 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
24
25 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
26
27 2019-02-01 Jakub Jelinek <jakub@redhat.com>
28
29 PR tree-optimization/89143
30 * wide-int-range.h (wide_int_range_absu): Declare.
31 * wide-int-range.cc (wide_int_range_absu): New function.
32 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
33
34 PR tree-optimization/88107
35 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
36 instead of assertion that eh_region_outermost is non-NULL, if it
37 is NULL, set *ALL to true and return NULL.
38 (move_sese_region_to_fn): Adjust caller, if all is set, call
39 duplicate_eh_regions with NULL region.
40
41 2019-02-01 Richard Biener <rguenth@suse.de>
42
43 PR rtl-optimization/88593
44 * mode-switching.c (optimize_mode_switching): Free dominators before
45 calling cleanup_cfg.
46
47 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
48
49 PR tree-optimization/88932
50 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
51
52 2019-01-31 Jakub Jelinek <jakub@redhat.com>
53
54 PR middle-end/89137
55 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
56 bogus clang warning.
57
58 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
59
60 PR target/89071
61 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
62 alternative to avoid partial SSE register stall for TARGET_AVX.
63 (truncdfsf2): Ditto.
64 (sse4_1_round<mode>2): Ditto.
65
66 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
67
68 PR tree-optimization/89008
69 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
70 process anything of the form X * 0.
71
72 2019-01-31 Richard Biener <rguenther@suse.de>
73
74 PR tree-optimization/89135
75 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
76 with abnormal preds.
77
78 2019-01-31 Jakub Jelinek <jakub@redhat.com>
79
80 PR sanitizer/89124
81 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
82 always_inline callees into no_sanitize_address callers.
83
84 2019-01-31 Richard Biener <rguenther@suse.de>
85
86 PR rtl-optimization/89115
87 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
88
89 2019-01-30 Martin Sebor <msebor@redhat.com>
90
91 PR other/89106
92 * doc/extend.texi (cast to a union): Correct and expand.
93
94 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
95
96 PR rtl-optimization/87246
97 * lra-constraints.c (simplify_operand_subreg): Reload memory
98 in subreg if the address became invalid.
99
100 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
101
102 PR target/87064
103 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
104 Disable for little-endian.
105
106 2019-01-30 Richard Biener <rguenther@suse.de>
107
108 PR rtl-optimization/89115
109 * opts.c (default_options_optimization): Reduce
110 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
111 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
112 to the default.
113
114 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
115
116 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
117 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
118 type of vector element when vec_extract is implemented by direct
119 move.
120
121 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
122
123 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
124
125 2019-01-30 Richard Biener <rguenther@suse.de>
126
127 PR tree-optimization/89111
128 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
129 canonicalization to appropriately sized access types.
130
131 2019-01-30 Jakub Jelinek <jakub@redhat.com>
132
133 PR c++/89105
134 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
135 for arguments to functions that are TU-local and shouldn't be
136 referenced by assembly.
137
138 2019-01-30 Ulrich Drepper <drepper@redhat.com>
139
140 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
141 after '='.
142
143 2019-01-29 Martin Sebor <msebor@redhat.com>
144
145 PR c/88956
146 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
147
148 2019-01-29 Jakub Jelinek <jakub@redhat.com>
149
150 PR c++/66676
151 PR ipa/89104
152 * omp-simd-clone.c (simd_clone_clauses_extract)
153 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
154 OMP_CLAUSE_ALIGNED_ALIGNMENT.
155
156 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
157
158 * config.gcc: Force .init_array for ARC.
159
160 2019-01-29 Richard Biener <rguenther@suse.de>
161
162 PR debug/87295
163 * dwarf2out.c (collect_skeleton_dies): New helper.
164 (copy_decls_for_unworthy_types): Call it.
165 (build_abbrev_table): Assert we do not try to replace
166 DW_AT_signature refs with local refs.
167
168 2019-01-28 Jakub Jelinek <jakub@redhat.com>
169
170 PR middle-end/89002
171 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
172 for lastprivate/linear IV, push gimplify context around gimplify_assign
173 and, if it needed any temporaries, pop it into a gimple bind around the
174 sequence.
175
176 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
177
178 * common.opt (-Wattribute-alias): Remove "no-" from name.
179 Make -Wattribute-alias command line option and
180 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
181
182 2019-01-28 Jakub Jelinek <jakub@redhat.com>
183
184 PR target/89073
185 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
186 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
187 x86 ISA options.
188 (bmi2): Add missing @opindex.
189 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
190 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
191 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
192 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
193 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
194 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
195 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
196 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
197 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
198 xsavec, xsaveopt and xsaves options.
199
200 2019-01-28 Richard Biener <rguenther@suse.de>
201
202 PR debug/89076
203 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
204 support removal.
205
206 2019-01-28 Richard Biener <rguenther@suse.de>
207
208 PR tree-optimization/88739
209 * tree-cfg.c (verify_types_in_gimple_reference): Verify
210 BIT_FIELD_REFs only are applied to mode-precision operands
211 when they are integral.
212 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
213 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
214 BIT_FIELD_REFs of non-mode-precision integral operands.
215
216 2019-01-27 Jakub Jelinek <jakub@redhat.com>
217
218 PR target/87214
219 * config/i386/sse.md
220 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
221 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
222 first constants in pairs are multiples of 2. Formatting fixes.
223 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
224 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
225 first constants in each quadruple are multiples of 4. Formatting fixes.
226
227 2019-01-26 Martin Jambor <mjambor@suse.cz>
228
229 PR ipa/88933
230 * tree-inline.c: Include tree-cfgcleanup.h.
231 (delete_unreachable_blocks_update_callgraph): Move...
232 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
233 ...here, make externally visible, make second argument bool, adjust
234 all callers.
235 * tree-cfgcleanup.c: Include cgraph.h.
236 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
237 Declare.
238 * ipa-prop.c: Include tree-cfgcleanup.h.
239 (ipcp_transform_function): Call
240 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
241
242 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
243
244 PR rtl-optimization/88846
245 * ira.c (process_set_for_memref_referenced_p): New.
246 (memref_referenced_p): Add new param. Use
247 process_set_for_memref_referenced_p. Add new switch cases.
248 (memref_used_between_p): Pass new arg to memref_referenced_p.
249
250 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
251
252 PR target/88469
253 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
254 argument ABI_BREAK. Set to true if the calculated alignment has
255 changed in gcc-9. Check bit-fields for their base type alignment.
256 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
257 (aarch64_function_arg_boundary): Likewise.
258 (aarch64_gimplify_va_arg_expr): Likewise.
259
260 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
261
262 PR middle-end/89037
263 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
264 instead of accessing TREE_INT_CST_ELT directly.
265
266 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
267
268 * doc/sourcebuild.texi (Environment attributes): Add fenv and
269 fenv_exceptions description.
270
271 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
272
273 PR rtl-optimization/87763
274 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
275 Allow SUBREG when matching CC_NZmode compare.
276
277 2019-01-25 Richard Biener <rguenther@suse.de>
278
279 PR tree-optimization/89049
280 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
281 Look at the pattern stmt to determine if the stmt is vectorized.
282
283 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
284
285 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
286 (pred_mov<mode>): Handle all-register forms using both a new
287 alternative and a split.
288
289 2019-01-25 Richard Biener <rguenther@suse.de>
290
291 PR tree-optimization/86865
292 * graphite-scop-detection.c (scop_detection::can_represent_loop):
293 Reject non-do-while loops.
294
295 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
296
297 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
298 * config/rs6000/constraints.md (Q constraint): Use REG_P.
299 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
300 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
301 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
302 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
303 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
304 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
305 vlogical_operand, gpc_reg_operand, int_reg_operand,
306 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
307 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
308 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
309 (save_world_operation, restore_world_operation, lmw_operation,
310 stmw_operation): Use MEM_P and REG_P.
311 (tie_operand): Use MEM_P.
312 (vrsave_operation, crsave_operation): Use REG_P.
313 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
314 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
315 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
316 (call_operand): Use HARD_REGISTER_P.
317 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
318 Use CONST_INT_P.
319 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
320 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
321 quad_aligned_load_p, replace_swapped_aligned_store,
322 recombine_lvx_pattern, replace_swapped_aligned_load,
323 recombine_stvx_pattern): Use MEM_P.
324 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
325 Use MEM_P and SYMBOL_REF_P.
326 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
327 (insn_is_swappable_p): Use REG_P and MEM_P.
328 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
329 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
330 Use CONST_INT_P.
331 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
332 Use CONST_DOUBLE_P.
333 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
334 CONST_WIDE_INT_P.
335 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
336 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
337 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
338 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
339 reg_or_subregno:
340 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
341 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
342 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
343 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
344 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
345 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
346 rs6000_split_logical_di): Use CONST_INT_P.
347 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
348 REG_P and SYMBOL_REF_P.
349 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
350 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
351 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
352 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
353 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
354 (small_data_operand, print_operand_address): Use CONST_INT_P and
355 SYMBOL_REF_P.
356 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
357 (rs6000_init_hard_regno_mode_ok, direct_move_p):
358 Use HARD_REGISTER_NUM_P.
359 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
360 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
361 SUBREG_P and SYMBOL_REF_P.
362 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
363 and HARD_REGISTER_NUM_P.
364 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
365 reg_or_subregno.
366 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
367 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
368 MEM_P and REG_P.
369 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
370 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
371 find_addr_reg): Use REG_P.
372 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
373 (rs6000_emit_le_vsx_move): Use SUBREG_P.
374 (offsettable_ok_by_alignment, constant_pool_expr_p,
375 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
376 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
377 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
378 rs6000_assemble_integer, create_TOC_reference,
379 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
380 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
381 (rs6000_split_vec_extract_var): Use reg_or_subregno.
382 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
383 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
384 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
385 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
386 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
387 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
388 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
389 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
390 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
391 and cbranch<mode>4): Use CONST_INT_P.
392 (multiple define_splits): Use REG_P and SUBREG_P.
393 (define_expands call, call_value): Use MEM_P.
394 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
395 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
396 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
397 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
398 and HARD_REGISTER_NUM_P.
399 (multiple define_splits): Use HARD_REGISTER_NUM_P.
400
401 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
402
403 PR rtl-optimization/88948
404 * rtl.h (prepare_copy_insn): New prototype.
405 * gcse.c (prepare_copy_insn): New function, split out from
406 process_insert_insn.
407 (process_insert_insn): Use prepare_copy_insn.
408 * store-motion.c (replace_store_insn): Use prepare_copy_insn
409 instead of gen_move_insn.
410
411 2019-01-24 Jakub Jelinek <jakub@redhat.com>
412
413 PR debug/89006
414 * config/i386/i386.c (ix86_pic_register_p): Return true for
415 UNSPEC_SET_GOT too.
416
417 PR tree-optimization/88964
418 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
419 punt if HONOR_SNANS (chrec).
420
421 PR middle-end/89015
422 * tree-nested.c (convert_nonlocal_reference_stmt,
423 convert_local_reference_stmt, convert_tramp_reference_stmt,
424 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
425 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
426 or GIMPLE_OMP_TASK.
427
428 PR tree-optimization/89027
429 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
430 for "omp simd array" variables.
431
432 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
433
434 PR target/88469
435 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
436 force the alignment of m_val.
437
438 2019-01-24 Richard Biener <rguenther@suse.de>
439
440 PR lto/87187
441 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
442 When in "legacy" debug mode make sure to reset self-origins.
443
444 2019-01-24 Martin Liska <mliska@suse.cz>
445
446 PR gcov-profile/88994
447 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
448 result will be always smaller or equal to the original.
449 * gcov.c (mangle_name): Fix else branch where we should
450 also copy to PTR and shift the pointer.
451
452 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
453
454 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
455 * vr-values.c (find_case_label_ranges): Fix a comment typo.
456
457 2019-01-23 Bin Cheng <bin.cheng@arm.com>
458 Steve Ellcey <sellcey@marvell.com>
459
460 PR target/85711
461 * recog.c (address_operand): Return false on wrong mode for address.
462 (constrain_operands): Check for mode with 'p' constraint.
463
464 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
465
466 PR target/88998
467 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
468 Disparage MMX alternative.
469 (sse2_cvtpd2pi): Ditto.
470 (sse2_cvttpd2pi): Ditto.
471
472 2019-01-23 David Malcolm <dmalcolm@redhat.com>
473
474 PR driver/89014
475 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
476 use-after-free of the result of
477 aarch64_get_extension_string_for_isa_flags.
478
479 2019-01-23 Jakub Jelinek <jakub@redhat.com>
480
481 PR c/44715
482 * doc/extend.texi: Document break and continue behavior in
483 statement expressions.
484
485 2019-01-23 Richard Biener <rguenther@suse.de>
486
487 PR tree-optimization/89008
488 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
489 not leave another stray operand.
490
491 2019-01-23 Jakub Jelinek <jakub@redhat.com>
492
493 * BASE-VER: Bump to 9.0.1.
494
495 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
496
497 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
498 thunk that returns by reference, use the type of the return object
499 of the thunk instead of that of the alias to build the dereference.
500
501 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
502
503 * config/arc/atomic.md: Add operand to DMB instruction.
504
505 2019-01-23 Jakub Jelinek <jakub@redhat.com>
506
507 PR tree-optimization/88964
508 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
509 build_zero_cst instead of build_int_cst. Return false for loop
510 invariants which honor signed zeros.
511
512 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
513
514 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
515
516 2019-01-22 Jakub Jelinek <jakub@redhat.com>
517
518 PR target/88965
519 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
520 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
521 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
522
523 PR middle-end/88968
524 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
525 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
526
527 PR target/87064
528 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
529 Disable for little endian.
530
531 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
532
533 PR target/88469
534 * config/arm/arm.c (arm_needs_double_word_align): Check
535 DECL_BIT_FIELD_TYPE.
536
537 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
538 H.J. Lu <hongjiu.lu@intel.com>
539
540 PR target/88909
541 * config/i386/i386-builtin.def: Add mask2 to all builtin
542 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
543 SPECIAL_ARGS.
544 * config/i386/i386.c (BDESC): Add mask2 to the definition.
545 (BDESC_FIRST): Likewise.
546 (define_builtin): Add an argument for mask2. Updated to handle
547 both ix86_isa_flags and ix86_isa_flags2.
548 (define_builtin_const): Likewise.
549 (define_builtin_pure): Likewise.
550 (define_builtin2): Deleted.
551 (define_builtin_const2): Likewise.
552 (builtin_description): Add a member, mask2.
553 (bdesc_*): Add mask2 to builtin initializations.
554 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
555 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
556 support.
557 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
558
559 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
560
561 PR target/88954
562 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
563 noplt attribute.
564
565 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
566
567 PR target/88469
568 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
569 alignment is dominated by a bitfield with 64-bit aligned base type.
570 (arm_function_arg): Emit a warning if the alignment has changed since
571 earlier GCC releases.
572 (arm_function_arg_boundary): Likewise.
573 (arm_setup_incoming_varargs): Likewise.
574
575 2019-01-22 Richard Biener <rguenther@suse.de>
576
577 PR tree-optimization/88862
578 * graphite-scop-detection.c
579 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
580
581 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
582
583 * doc/extend.tex (AMD GCN Function Attributes): New section.
584 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
585 * doc/invoke.texi (AMD GCN Options): New section.
586 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
587
588 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
589
590 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
591 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
592
593 2019-01-22 Jakub Jelinek <jakub@redhat.com>
594
595 PR tree-optimization/88044
596 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
597 is false in the first iteration, but !every_iteration, return false
598 instead of true with niter->niter zero.
599
600 PR rtl-optimization/88904
601 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
602 any nonequal registers before processing BB_END (b).
603
604 PR target/88905
605 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
606 GET_MODE (op0).
607 (expand_binop_directly, expand_doubleword_clz,
608 expand_doubleword_popcount, expand_ctz, expand_ffs,
609 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
610
611 PR rtl-optimization/49429
612 PR target/49454
613 PR rtl-optimization/86334
614 PR target/88906
615 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
616 addressable from here...
617 (emit_block_op_via_libcall): ... to here.
618
619 2019-01-22 Richard Biener <rguenther@suse.de>
620
621 * tree-vect-loop.c (vect_analyze_loop_operations): Use
622 auto_vec for cost vector to fix memleak.
623 (vectorize_fold_left_reduction): Properly gather SLP defs.
624 (vectorizable_comparison): Do not swap operands to properly
625 gather SLP defs.
626
627 2019-01-22 Alan Modra <amodra@gmail.com>
628
629 PR target/88614
630 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
631 stays a reg. Allow a const_int.
632 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
633 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
634 (IS_NOMARK_TLSGETADDR): Define.
635 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
636 (rs6000_output_tlsargs): New function.
637 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
638 __tls_get_addr call takes an arg.
639 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
640 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
641 delete split..
642 (call_value_nonlocal_sysv): ..or here, delete split.
643 (tls_gdld_nomark): Delete.
644 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
645 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
646 (call_value_nonlocal_sysv): Likewise.
647 (call_value_nonlocal_sysv_secure): Likewise.
648 (call_value_nonlocal_aix): Likewise.
649 (call_value_indirect_aix): Likewise.
650 (call_value_indirect_elfv2): Likewise.
651 (call_value_local32, call_value_local64): Disable for no-mark tls.
652 (call_value_local_aix): Likewise.
653
654 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
655
656 PR target/88938
657 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
658 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
659
660 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
661
662 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
663 string contents as hash_map keys.
664
665 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
666
667 PR c/88928
668 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
669 for rvalue context. Handle rvalues correctly. Use min_align_of_type
670 instead of TYPE_ALIGN.
671 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
672 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
673 pointer from TYPE_STUB_DECL.
674
675 2019-01-21 Richard Biener <rguenther@suse.de>
676
677 PR tree-optimization/88934
678 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
679 at the possibly non-constant operand.
680 (vect_get_constant_vectors): Adjust.
681
682 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
683
684 PR target/71659
685 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
686 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
687 instead of _X86INTRIN_H_INCLUDED.
688 * onfig/i386/clwbintrin.h: Likewise.
689 * config/i386/pkuintrin.h: Likewise.
690 * config/i386/prfchwintrin.h: Likewise.
691 * config/i386/rdseedintrin.h: Likewise.
692 * config/i386/wbnoinvdintrin.h: Likewise.
693 * config/i386/xsavecintrin.h: Likewise.
694 * config/i386/xsavesintrin.h: Likewise.
695 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
696 * config/i386/xsaveintrin.h: Likewise.
697 * config/i386/xsaveoptintrin.h: Likewise.
698 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
699 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
700 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
701 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
702 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
703 * config/i386/immintrin.h: Here.
704
705 2019-01-20 Martin Jambor <mjambor@suse.cz>
706
707 PR ipa/87615
708 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
709 with aa_walk_budget.
710 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
711 aa_walk_budget_p parameter.
712 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
713 walk. Updated all callers.
714 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
715 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
716 unmodified_parm.
717 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
718 parameter info. Extract info from fbi. Pass fbi to recursive calls
719 and to unmodified_parm.
720 (phi_result_unknown_predicate): New parameter fbi, removed parameter
721 info, updated call to will_be_nonconstant_expr_predicate.
722 (param_change_prob): New parameter fbi, limit AA walking.
723 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
724 calls to various above functions.
725 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
726 parameter. Use it to limit AA walking.
727 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
728 fbi, limit AA walk.
729 (detect_type_change): New parameter fbi, pass it on to
730 detect_type_change_from_memory_writes.
731 (detect_type_change_ssa): Likewise.
732 (aa_overwalked): Removed.
733 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
734 accordingly, adjust to the neew AA limiting scheme.
735 (parm_ref_data_preserved_p): Likewise.
736 (ipa_compute_jump_functions_for_edge): Adjust call to
737 get_dynamic_type.
738 (ipa_analyze_call_uses): Likewise.
739 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
740 (ipa_analyze_node): Initialize aa_walk_budget.
741 (ipcp_transform_function): Likewise.
742 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
743 to get_dynamic_type.
744
745 2019-01-19 Jakub Jelinek <jakub@redhat.com>
746
747 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
748 outside of #if CHECKING_P code.
749
750 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
751
752 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
753 New function, split out from...
754 (loop_versioning::analyze_stride): ...here.
755 (loop_versioning::find_per_loop_multiplication): Use gassign.
756 (loop_versioning::analyze_term_using_scevs): Return a success code.
757 (loop_versioning::analyze_arbitrary_term): New function.
758 (loop_versioning::analyze_address_fragment): Use
759 analyze_arbitrary_term if all else fails.
760
761 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
762
763 PR target/88892
764 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
765 operands.
766
767 2019-01-18 Richard Biener <rguenther@suse.de>
768
769 PR tree-optimization/88903
770 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
771 scalar stmts a SLP shift amount is composed of when detecting
772 shifts by scalars.
773
774 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
775
776 PR target/88799
777 * config/arm/arm-cpus.in (mp): New feature.
778 (sec): New feature.
779 (fgroup ARMv7ve): Add mp and sec features.
780 (arch armv7-a): Add options to allow mp and sec extensions.
781 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
782 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
783 extenstions to the base architecture.
784 (cpu cortex-a8): Add sec extension to the base architecture.
785 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
786 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
787 variants down to the base v7-a varaint.
788 * config/arm/t-multilib (v7_a_arch_variants): New variable.
789 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
790 of permitted extensions for -march=armv7-a and for
791 -mcpu=generic-armv7-a.
792
793 2019-01-18 Martin Liska <mliska@suse.cz>
794
795 * params.def: Fix comment.
796 * tree-profile.c (gimple_init_gcov_profiler): Bump function
797 name.
798 (gimple_gen_ic_func_profiler): Likewise.
799
800 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
801
802 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
803 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
804 and put in error checks for stack protector guard options.
805 (aarch64_stack_protect_guard): New.
806 (TARGET_STACK_PROTECT_GUARD): Define.
807 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
808 (reg_stack_protect_address<mode>): New.
809 (stack_protect_set): Adjust for SSP_GLOBAL.
810 (stack_protect_test): Likewise.
811 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
812 (-mstack-protector-guard): Likewise.
813 (-mstack-protector-guard-offset): Likewise.
814
815 2019-01-18 Jakub Jelinek <jakub@redhat.com>
816
817 PR tree-optimization/86214
818 * tree-inline.h (struct copy_body_data): Add
819 add_clobbers_to_eh_landing_pads member.
820 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
821 (copy_edges_for_bb): Call it if EH edge destination is <
822 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
823 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
824 if flag_stack_reuse != SR_NONE and clear it afterwards.
825
826 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
827
828 PR target/85596
829 * doc/install.texi (with-multilib-list): Document for aarch64.
830
831 2019-01-18 Jakub Jelinek <jakub@redhat.com>
832
833 PR target/88734
834 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
835 (("..."))) with ("...").
836
837 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
838
839 * doc/extend.texi (Built-in Functions for Memory Model Aware
840 Atomic Operations): Document atomic fetch and nand.
841
842 2019-01-18 Martin Liska <mliska@suse.cz>
843 Richard Biener <rguenther@suse.de>
844
845 PR middle-end/88587
846 * cgraph.h (create_version_clone_with_body): Add new argument
847 with attributes.
848 * cgraphclones.c (cgraph_node::create_version_clone): Add
849 DECL_ATTRIBUTES to a newly created decl. And call
850 valid_attribute_p so that proper cl_target_optimization_node
851 is set for the newly created declaration.
852 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
853 for declaration.
854 (expand_target_clones): Do not call valid_attribute_p, it must
855 be already done.
856 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
857 vector types.
858
859 2019-01-17 Jakub Jelinek <jakub@redhat.com>
860
861 PR target/88734
862 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
863 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
864 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
865
866 2019-01-17 Martin Sebor <msebor@redhat.com>
867
868 PR middle-end/88273
869 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
870 Handle anti-ranges the same as no range at all.
871
872 2018-01-17 Steve Ellcey <sellcey@cavium.com>
873
874 * config/aarch64/aarch64.c (cgraph.h): New include.
875 (intl.h): New include.
876 (supported_simd_type): New function.
877 (currently_supported_simd_type): Ditto.
878 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
879 (aarch64_simd_clone_adjust): Ditto.
880 (aarch64_simd_clone_usable): Ditto.
881 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
882 (TARGET_SIMD_CLONE_ADJUST): Ditto.
883 (TARGET_SIMD_CLONE_USABLE): Ditto.
884 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
885 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
886 call.
887
888 2019-01-17 Martin Sebor <msebor@redhat.com>
889
890 PR tree-optimization/88800
891 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
892 NO_WARNING bit here. Avoid folding out-of-bounds calls.
893 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
894 redundant argument. Add new argument and issue diagnostics under
895 its control. Detect out-of-bounds access even with warnings
896 disabled.
897 (check_bounds_or_overlap): Change return type. Add argument.
898 (wrestrict_dom_walker::check_call): Adjust.
899 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
900 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
901 check_bounds_or_overlap's return value.
902 (handle_builtin_stxncpy): Same.
903 (handle_builtin_strcat): Same.
904
905 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
906 Kwok Cheung Yeung <kcy@codesourcery.com>
907 Julian Brown <julian@codesourcery.com>
908 Tom de Vries <tom@codesourcery.com>
909
910 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
911
912 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
913
914 * doc/sourcebuild.texi: Document dg-require-effective-target
915 llvm_binutils and offload_gcn.
916
917 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
918 Kwok Cheung Yeung <kcy@codesourcery.com>
919 Julian Brown <julian@codesourcery.com>
920 Tom de Vries <tom@codesourcery.com>
921
922 * doc/sourcebuild.texi: Document dg-required-effective-target
923 exceptions.
924
925 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
926 Kwok Cheung Yeung <kcy@codesourcery.com>
927 Julian Brown <julian@codesourcery.com>
928 Tom de Vries <tom@codesourcery.com>
929 Jan Hubicka <hubicka@ucw.cz>
930 Martin Jambor <mjambor@suse.cz>
931
932 * config.gcc: Add amdgcn*-*-amdhsa configuration.
933 * configure.ac: Check for dlopen.
934 * configure: Regenerate.
935
936 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
937 Kwok Cheung Yeung <kcy@codesourcery.com>
938 Julian Brown <julian@codesourcery.com>
939 Tom de Vries <tom@codesourcery.com>
940 Jan Hubicka <hubicka@ucw.cz>
941 Martin Jambor <mjambor@suse.cz>
942
943 * common/config/gcn/gcn-common.c: New file.
944 * config/gcn/driver-gcn.c: New file.
945 * config/gcn/gcn-builtins.def: New file.
946 * config/gcn/gcn-hsa.h: New file.
947 * config/gcn/gcn-modes.def: New file.
948 * config/gcn/gcn-opts.h: New file.
949 * config/gcn/gcn-passes.def: New file.
950 * config/gcn/gcn-protos.h: New file.
951 * config/gcn/gcn-run.c: New file.
952 * config/gcn/gcn-tree.c: New file.
953 * config/gcn/gcn.c: New file.
954 * config/gcn/gcn.h: New file.
955 * config/gcn/gcn.opt: New file.
956 * config/gcn/t-gcn-hsa: New file.
957
958 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
959 Kwok Cheung Yeung <kcy@codesourcery.com>
960 Julian Brown <julian@codesourcery.com>
961 Tom de Vries <tom@codesourcery.com>
962 Jan Hubicka <hubicka@ucw.cz>
963 Martin Jambor <mjambor@suse.cz>
964
965 * config/gcn/constraints.md: New file.
966 * config/gcn/gcn-valu.md: New file.
967 * config/gcn/gcn.md: New file.
968 * config/gcn/predicates.md: New file.
969
970 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
971
972 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
973 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
974 (stmt_uses_0_or_null_in_undefined_way): Likewise.
975 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
976
977 2019-01-17 Tamar Christina <tamar.christina@arm.com>
978
979 PR target/88851
980 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
981 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
982 it and document registers.
983
984 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
985
986 * config/aarch64/aarch64.c (ares_tunings): Define.
987 * config/aarch64/aarch64-cores.def (ares): Use the above.
988
989 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
990
991 PR target/88794
992 Revert:
993 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
994
995 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
996 (_mm512_fixupimm_round_pd): Update parameters and builtin.
997 (_mm512_maskz_fixupimm_round_pd): Ditto.
998 (_mm512_fixupimm_round_ps): Ditto.
999 (_mm512_maskz_fixupimm_round_ps): Ditto.
1000 (_mm_fixupimm_round_sd): Ditto.
1001 (_mm_maskz_fixupimm_round_sd): Ditto.
1002 (_mm_fixupimm_round_ss): Ditto.
1003 (_mm_maskz_fixupimm_round_ss): Ditto.
1004 (_mm512_fixupimm_pd): Ditto.
1005 (_mm512_maskz_fixupimm_pd): Ditto.
1006 (_mm512_fixupimm_ps): Ditto.
1007 (_mm512_maskz_fixupimm_ps): Ditto.
1008 (_mm_fixupimm_sd): Ditto.
1009 (_mm_maskz_fixupimm_sd): Ditto.
1010 (_mm_fixupimm_ss): Ditto.
1011 (_mm_maskz_fixupimm_ss): Ditto.
1012 (_mm512_mask_fixupimm_round_pd): Update builtin.
1013 (_mm512_mask_fixupimm_round_ps): Ditto.
1014 (_mm_mask_fixupimm_round_sd): Ditto.
1015 (_mm_mask_fixupimm_round_ss): Ditto.
1016 (_mm512_mask_fixupimm_pd): Ditto.
1017 (_mm512_mask_fixupimm_ps): Ditto.
1018 (_mm_mask_fixupimm_sd): Ditto.
1019 (_mm_mask_fixupimm_ss): Ditto.
1020 * config/i386/avx512vlintrin.h:
1021 (_mm256_fixupimm_pd): Update parameters and builtin.
1022 (_mm256_maskz_fixupimm_pd): Ditto.
1023 (_mm256_fixupimm_ps): Ditto.
1024 (_mm256_maskz_fixupimm_ps): Ditto.
1025 (_mm_fixupimm_pd): Ditto.
1026 (_mm_maskz_fixupimm_pd): Ditto.
1027 (_mm_fixupimm_ps): Ditto.
1028 (_mm_maskz_fixupimm_ps): Ditto.
1029 (_mm256_mask_fixupimm_pd): Update builtin.
1030 (_mm256_mask_fixupimm_ps): Ditto.
1031 (_mm_mask_fixupimm_pd): Ditto.
1032 (_mm_mask_fixupimm_ps): Ditto.
1033 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
1034 * config/i386/i386-builtin.def: Update builtin definitions.
1035 * config/i386/i386.c: Handle new builtin types and remove useless ones.
1036 * config/i386/sse.md: Update VFIXUPIMM* patterns.
1037 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1038 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1039 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
1040 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1041 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1042 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
1043 * config/i386/subst.md:
1044 (round_saeonly_sd_mask_operand4): Add new subst_attr.
1045 (round_saeonly_sd_mask_op4): Ditto.
1046 (round_saeonly_expand_operand5): Ditto.
1047 (round_saeonly_expand): Update.
1048
1049 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1050
1051 PR target/88794
1052 Revert:
1053 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
1054
1055 * config/i386/sse.md: Combine VFIXUPIMM* patterns
1056 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1057 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1058 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
1059 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
1060 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
1061 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
1062
1063 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
1064
1065 PR target/88794
1066 Revert:
1067 2018-12-15 Jakub Jelinek <jakub@redhat.com>
1068
1069 PR target/88489
1070 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
1071 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
1072 instead of UNSPEC_FIXUPIMM.
1073
1074 2019-01-17 Richard Biener <rguenther@suse.de>
1075
1076 PR lto/86736
1077 * dwarf2out.c (want_pubnames): Never generate pubnames sections
1078 and friends for the LTO part of debug info.
1079
1080 2019-01-17 Jakub Jelinek <jakub@redhat.com>
1081
1082 PR tree-optimization/86214
1083 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
1084 if x == y.
1085
1086 PR rtl-optimization/88870
1087 * dce.c (deletable_insn_p): Never delete const/pure calls that can
1088 throw if we can't alter the cfg or delete dead exceptions.
1089 (mark_insn): Don't call find_call_stack_args for such calls.
1090
1091 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
1092
1093 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
1094 prototypes for vec_st.
1095 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
1096 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
1097 mainly on signed/unsigned long long and double.
1098
1099 2019-01-16 David Malcolm <dmalcolm@redhat.com>
1100
1101 PR target/88861
1102 * combine.c (delete_noop_moves): Convert to "bool" return,
1103 returning true if any edges are eliminated.
1104 (combine_instructions): Also return true if delete_noop_moves
1105 returns true.
1106
1107 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1108
1109 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
1110 correct max nunits for endian swap.
1111 (aarch64_expand_fcmla_builtin): Correct subreg code.
1112 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1113 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
1114 lane endianness.
1115
1116 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
1117
1118 * config/alpha/alpha.c (alpha_gimplify_va_arg):
1119 Handle split indirect COMPLEX_TYPE arguments.
1120
1121 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
1122
1123 PR target/86891
1124 * config/aarch64/aarch64-modes.def: Add comment about how the carry
1125 bit is set by add and compare.
1126 (CC_ADC): New CC_MODE.
1127 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
1128 to cache the code and mode of X. Adjust the shape of a CC_Cmode
1129 comparison. Add detection for CC_ADCmode.
1130 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
1131 CC_ADCmode.
1132 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
1133 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
1134 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
1135 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
1136 to eliminate the need for zero-extending the operands.
1137 (add<mode>3_compareC_imm): Delete. Merge into ...
1138 (add<mode>3_compareC): ... this. Restructure the comparison to
1139 eliminate the need for zero-extending the operands.
1140 (add<mode>3_carryin): Use LTU for the overflow detection.
1141 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
1142 Reexpress comparison for overflow.
1143 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
1144 (add<mode>3_carryinC): Likewise.
1145 (add<mode>3_carryinV): Use LTU for carry between partials.
1146 * config/aarch64/predicates.md (aarch64_carry_operation): Update
1147 handling of CC_Cmode and add CC_ADCmode.
1148 (aarch64_borrow_operation): Likewise.
1149
1150 2019-01-16 Tamar Christina <tamar.christina@arm.com>
1151
1152 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
1153 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
1154 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
1155 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
1156
1157 2019-01-16 Martin Liska <mliska@suse.cz>
1158
1159 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
1160 for GCC driver.
1161 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
1162 a new argument.
1163 * gcc.c (add_sysrooted_hdrs_prefix): New function.
1164 (path_prefix_reset): Move up in the source file.
1165 (find_fortran_preinclude_file): Make complex search for the
1166 fortran header files.
1167
1168 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
1169
1170 * godump.c (go_output_typedef): When outputting a typedef, refer
1171 to the underlying type by its name and not its structure.
1172
1173 2019-01-15 David Malcolm <dmalcolm@redhat.com>
1174
1175 PR c++/88795
1176 * tree.c (build_function_type): Assert that arg_types is not
1177 error_mark_node.
1178
1179 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
1180
1181 PR inline-asm/52813
1182 * doc/extend.texi: Document that listing the stack pointer in the
1183 clobber list of an asm is a deprecated feature.
1184 * common.opt (Wdeprecated): Moved from c-family/c.opt.
1185 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
1186 warning instead of an error for clobbers of the stack pointer.
1187 Add a note explaining why.
1188
1189 2019-01-15 Richard Biener <rguenther@suse.de>
1190
1191 PR debug/88046
1192 * dwarf2out.c (gen_member_die): Do not generate inheritance
1193 DIEs late.
1194
1195 2019-01-15 Richard Biener <rguenther@suse.de>
1196
1197 PR tree-optimization/88855
1198 * tree-if-conv.c (combine_blocks): Collect
1199 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
1200
1201 2019-01-15 Tom de Vries <tdevries@suse.de>
1202
1203 PR target/80547
1204 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
1205 lhs == NULL_TREE for gang-level reduction.
1206
1207 2019-01-15 Richard Biener <rguenther@suse.de>
1208 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1209
1210 PR ipa/88788
1211 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
1212 return true if SSA_NAME is already marked in visited bitmap.
1213 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
1214
1215 2019-01-15 Jakub Jelinek <jakub@redhat.com>
1216
1217 PR tree-optimization/88775
1218 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
1219 equal == 0 equality pointer comparisons some more if compared in
1220 integral types and either one points to an automatic var and the
1221 other to a global, or we can prove at least one points to the middle
1222 or both point to start or both point to end.
1223
1224 2019-01-14 Andi Kleen <ak@linux.intel.com>
1225
1226 * Makefile.in: Lower autofdo sampling rate by 10x.
1227 * Makefile.tpl: Dito.
1228
1229 2019-01-14 Tom Honermann <tom@honermann.net>
1230
1231 * defaults.h: Define CHAR8_TYPE.
1232
1233 2019-01-14 Martin Sebor <msebor@redhat.com>
1234
1235 PR target/88638
1236 * doc/extend.texi (Darwin Format Checks): Clarify.
1237
1238 2019-01-14 Richard Biener <rguenther@suse.de>
1239
1240 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
1241 whether we are in (simplify ...) or (match ...) context.
1242
1243 2019-01-14 Jakub Jelinek <jakub@redhat.com>
1244
1245 PR rtl-optimization/88796
1246 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
1247 * cfgexpand.c (stack_protect_prologue): Initialize
1248 crtl->stack_protect_guard_decl.
1249 * function.c (stack_protect_epilogue): Use it instead of calling
1250 targetm.stack_protect_guard again.
1251 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
1252 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
1253 crtl->stack_protect_guard_decl.
1254 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
1255 on the returned MEM_EXPR.
1256
1257 2019-01-12 Tom de Vries <tdevries@suse.de>
1258
1259 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
1260 vector length using -fopenacc-dim.
1261
1262 2019-01-12 Tom de Vries <tdevries@suse.de>
1263
1264 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
1265 lengths into account.
1266
1267 2019-01-12 Svante Signell <svante.signell@gmail.com>
1268
1269 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
1270 (TARGET_CAN_SPLIT_STACK): Define.
1271 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
1272
1273 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
1274
1275 * params.def (inline-unit-growth): Set to 40.
1276
1277 2019-01-12 Jakub Jelinek <jakub@redhat.com>
1278
1279 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
1280
1281 2019-01-12 Tom de Vries <tdevries@suse.de>
1282
1283 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
1284 region calling vector-partitionable routine, set default_vector_length
1285 to WARP_SIZE.
1286
1287 2019-01-12 Tom de Vries <tdevries@suse.de>
1288
1289 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
1290 variable default_vector_length.
1291
1292 2019-01-12 Tom de Vries <tdevries@suse.de>
1293
1294 PR middle-end/88703
1295 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
1296 from oacc_default_dims, as oacc_validate_dims would do it, and apply
1297 dimensions limits.
1298
1299 2019-01-12 Tom de Vries <tdevries@suse.de>
1300
1301 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
1302 (nvptx_goacc_validate_dims): Add used parameter.
1303 * doc/tm.texi: Regenerate.
1304 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
1305 argument to call to targetm.goacc.validate_dims.
1306 (default_goacc_validate_dims): Add used
1307 parameter.
1308 * target.def (validate_dims): Add used parameter in DEFHOOK.
1309 * targhooks.h (default_goacc_validate_dims): Add used parameter.
1310
1311 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1312
1313 PR middle-end/85956
1314 PR lto/88733
1315 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
1316 field.
1317 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
1318 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
1319 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
1320 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
1321
1322 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
1323
1324 PR rtl-optimization/87305
1325 * lra-assigns.c
1326 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
1327 for little endian pseudos used as paradoxical subreg.
1328
1329 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1330
1331 PR tree-optimization/88693
1332 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
1333 for STRING_CSTs that don't contain any NUL characters in the first
1334 TREE_STRING_LENGTH bytes.
1335
1336 2019-01-11 Alan Modra <amodra@gmail.com>
1337
1338 PR 88777
1339 PR 88614
1340 * genattrtab.c (min_fn): Don't translate values.
1341 (min_attr_value): Return INT_MAX when the value can't be calculated.
1342 Return minimum among any values that can be calculated.
1343 (max_attr_value): Adjust.
1344
1345 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1346
1347 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
1348
1349 2019-01-11 Steve Ellcey <sellcey@marvell.com>
1350
1351 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
1352 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
1353 (aarch64_return_call_with_max_clobbers): New function.
1354 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
1355 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
1356 argument.
1357 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
1358 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
1359 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
1360 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
1361 * cselib.c (cselib_process_insn): Add argument to
1362 targetm.hard_regno_call_part_clobbered call.
1363 * ira-conflicts.c (ira_build_conflicts): Ditto.
1364 * ira-costs.c (ira_tune_allocno_costs): Ditto.
1365 * lra-constraints.c (inherit_reload_reg): Ditto.
1366 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
1367 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
1368 argument. Call targetm.return_call_with_max_clobbers.
1369 Add argument to targetm.hard_regno_call_part_clobbered call.
1370 (calls_have_same_clobbers_p): New function.
1371 (process_bb_lives): Add call_insn and last_call_insn variables.
1372 Pass call_insn to check_pseudos_live_through_calls.
1373 Modify if stmt to check targetm.return_call_with_max_clobbers.
1374 Update setting of flush variable.
1375 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
1376 to false.
1377 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
1378 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
1379 targetm.hard_regno_call_part_clobbered call.
1380 * reginfo.c (choose_hard_reg_mode): Ditto.
1381 * regrename.c (check_new_reg_p): Ditto.
1382 * reload.c (find_equiv_reg): Ditto.
1383 * reload1.c (emit_reload_insns): Ditto.
1384 * sched-deps.c (deps_analyze_insn): Ditto.
1385 * sel-sched.c (init_regs_for_mode): Ditto.
1386 (mark_unavailable_hard_regs): Ditto.
1387 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
1388 * target.def (hard_regno_call_part_clobbered): Add insn argument.
1389 (return_call_with_max_clobbers): New target function.
1390 * doc/tm.texi: Regenerate.
1391 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
1392 * hooks.c (hook_bool_uint_mode_false): Change to
1393 hook_bool_insn_uint_mode_false.
1394 * hooks.h (hook_bool_uint_mode_false): Ditto.
1395
1396 2019-01-11 Steve Ellcey <sellcey@marvell.com>
1397
1398 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
1399 (aarch64_remove_extra_call_preserved_regs): New function.
1400 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
1401 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
1402 * doc/tm.texi: Regenerate.
1403 * final.c (get_call_reg_set_usage): Call new hook.
1404 * target.def (remove_extra_call_preserved_regs): New hook.
1405 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
1406 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
1407
1408 2019-01-11 Jakub Jelinek <jakub@redhat.com>
1409
1410 PR bootstrap/88714
1411 * passes.c (finish_optimization_passes): Call print_combine_total_stats
1412 inside of pass_combine_1 dump rather than pass_profile_1.
1413
1414 2019-01-11 Tom de Vries <tdevries@suse.de>
1415
1416 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
1417 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
1418 (PTX_NUM_PER_WORKER_BARRIERS): Define.
1419 (nvptx_apply_dim_limits): Prevent vector_length 64 and
1420 num_workers 16.
1421
1422 2019-01-11 Tom de Vries <tdevries@suse.de>
1423
1424 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
1425
1426 2019-01-11 Jan Beulich <jbeulich@suse.com>
1427
1428 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
1429 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
1430 sse2_cvtsi2sd): Add {l}.
1431 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
1432 syntax.
1433
1434 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1435
1436 PR target/88785
1437 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
1438 define_expand.
1439 (*float<floatunssuffix>v2div2sf2): New define_insn.
1440 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
1441 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
1442 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
1443 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
1444 match_operands with "const0_operand" "C".
1445
1446 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1447
1448 * config/aarch64/aarch64-builtins.c
1449 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
1450 (aarch64_init_simd_builtins): ...Here
1451
1452 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
1453
1454 PR rtl-optimization/87305
1455 * lra-assigns.c
1456 (setup_live_pseudos_and_spill_after_risky_transforms): Check
1457 allocation for big endian pseudos used as paradoxical subregs and
1458 spill them if it is wrong.
1459 * lra-constraints.c (lra_constraints): Add a comment.
1460
1461 2019-01-10 Richard Biener <rguenther@suse.de>
1462
1463 PR tree-optimization/88792
1464 * tree-ssa-pre.c (get_representative_for): Do not return a
1465 value-number here.
1466
1467 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1468
1469 PR middle-end/84877
1470 PR bootstrap/88450
1471 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
1472 (assign_parm_setup_block): Do the argument slot realignment here
1473 instead.
1474
1475 2019-01-10 Stefan Agner <stefan@agner.ch>
1476
1477 PR target/88648
1478 * config/arm/arm.c (arm_option_override_internal): Force
1479 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
1480
1481 2019-01-10 Jakub Jelinek <jakub@redhat.com>
1482
1483 PR c/88568
1484 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
1485 DECL_EXTERNAL.
1486
1487 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1488
1489 * config/arm/arm-builtins.c
1490 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
1491 (MAC_LANE_PAIR_QUALIFIERS): New.
1492 (arm_expand_builtin_args): Use it.
1493 (arm_expand_builtin_1): Likewise.
1494 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
1495 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
1496 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
1497 * config/arm/arm_neon.h:
1498 (vcadd_rot90_f16): New.
1499 (vcaddq_rot90_f16): New.
1500 (vcadd_rot270_f16): New.
1501 (vcaddq_rot270_f16): New.
1502 (vcmla_f16): New.
1503 (vcmlaq_f16): New.
1504 (vcmla_lane_f16): New.
1505 (vcmla_laneq_f16): New.
1506 (vcmlaq_lane_f16): New.
1507 (vcmlaq_laneq_f16): New.
1508 (vcmla_rot90_f16): New.
1509 (vcmlaq_rot90_f16): New.
1510 (vcmla_rot90_lane_f16): New.
1511 (vcmla_rot90_laneq_f16): New.
1512 (vcmlaq_rot90_lane_f16): New.
1513 (vcmlaq_rot90_laneq_f16): New.
1514 (vcmla_rot180_f16): New.
1515 (vcmlaq_rot180_f16): New.
1516 (vcmla_rot180_lane_f16): New.
1517 (vcmla_rot180_laneq_f16): New.
1518 (vcmlaq_rot180_lane_f16): New.
1519 (vcmlaq_rot180_laneq_f16): New.
1520 (vcmla_rot270_f16): New.
1521 (vcmlaq_rot270_f16): New.
1522 (vcmla_rot270_lane_f16): New.
1523 (vcmla_rot270_laneq_f16): New.
1524 (vcmlaq_rot270_lane_f16): New.
1525 (vcmlaq_rot270_laneq_f16): New.
1526 (vcadd_rot90_f32): New.
1527 (vcaddq_rot90_f32): New.
1528 (vcadd_rot270_f32): New.
1529 (vcaddq_rot270_f32): New.
1530 (vcmla_f32): New.
1531 (vcmlaq_f32): New.
1532 (vcmla_lane_f32): New.
1533 (vcmla_laneq_f32): New.
1534 (vcmlaq_lane_f32): New.
1535 (vcmlaq_laneq_f32): New.
1536 (vcmla_rot90_f32): New.
1537 (vcmlaq_rot90_f32): New.
1538 (vcmla_rot90_lane_f32): New.
1539 (vcmla_rot90_laneq_f32): New.
1540 (vcmlaq_rot90_lane_f32): New.
1541 (vcmlaq_rot90_laneq_f32): New.
1542 (vcmla_rot180_f32): New.
1543 (vcmlaq_rot180_f32): New.
1544 (vcmla_rot180_lane_f32): New.
1545 (vcmla_rot180_laneq_f32): New.
1546 (vcmlaq_rot180_lane_f32): New.
1547 (vcmlaq_rot180_laneq_f32): New.
1548 (vcmla_rot270_f32): New.
1549 (vcmlaq_rot270_f32): New.
1550 (vcmla_rot270_lane_f32): New.
1551 (vcmla_rot270_laneq_f32): New.
1552 (vcmlaq_rot270_lane_f32): New.
1553 (vcmlaq_rot270_laneq_f32): New.
1554 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
1555 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
1556 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
1557 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
1558 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
1559 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
1560 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
1561 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
1562 (arm_option_reconfigure_globals): Use them.
1563 * config/arm/iterators.md (VDF, VQ_HSF): New.
1564 (VCADD, VCMLA): New.
1565 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
1566 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
1567 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
1568 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
1569
1570 2019-01-10 Tamar Christina <tamar.christina@arm.com>
1571
1572 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
1573 (emit-rtl.h): Include.
1574 (TYPES_QUADOP_LANE_PAIR): New.
1575 (aarch64_simd_expand_args): Use it.
1576 (aarch64_simd_expand_builtin): Likewise.
1577 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
1578 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
1579 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
1580 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
1581 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
1582 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
1583 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
1584 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
1585 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
1586 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
1587 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
1588 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
1589 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
1590 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
1591 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
1592 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
1593 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
1594 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
1595 aarch64_fcmla<rot><mode>): New.
1596 * config/aarch64/arm_neon.h:
1597 (vcadd_rot90_f16): New.
1598 (vcaddq_rot90_f16): New.
1599 (vcadd_rot270_f16): New.
1600 (vcaddq_rot270_f16): New.
1601 (vcmla_f16): New.
1602 (vcmlaq_f16): New.
1603 (vcmla_lane_f16): New.
1604 (vcmla_laneq_f16): New.
1605 (vcmlaq_lane_f16): New.
1606 (vcmlaq_rot90_lane_f16): New.
1607 (vcmla_rot90_laneq_f16): New.
1608 (vcmla_rot90_lane_f16): New.
1609 (vcmlaq_rot90_f16): New.
1610 (vcmla_rot90_f16): New.
1611 (vcmlaq_laneq_f16): New.
1612 (vcmla_rot180_laneq_f16): New.
1613 (vcmla_rot180_lane_f16): New.
1614 (vcmlaq_rot180_f16): New.
1615 (vcmla_rot180_f16): New.
1616 (vcmlaq_rot90_laneq_f16): New.
1617 (vcmlaq_rot270_laneq_f16): New.
1618 (vcmlaq_rot270_lane_f16): New.
1619 (vcmla_rot270_laneq_f16): New.
1620 (vcmlaq_rot270_f16): New.
1621 (vcmla_rot270_f16): New.
1622 (vcmlaq_rot180_laneq_f16): New.
1623 (vcmlaq_rot180_lane_f16): New.
1624 (vcmla_rot270_lane_f16): New.
1625 (vcadd_rot90_f32): New.
1626 (vcaddq_rot90_f32): New.
1627 (vcaddq_rot90_f64): New.
1628 (vcadd_rot270_f32): New.
1629 (vcaddq_rot270_f32): New.
1630 (vcaddq_rot270_f64): New.
1631 (vcmla_f32): New.
1632 (vcmlaq_f32): New.
1633 (vcmlaq_f64): New.
1634 (vcmla_lane_f32): New.
1635 (vcmla_laneq_f32): New.
1636 (vcmlaq_lane_f32): New.
1637 (vcmlaq_laneq_f32): New.
1638 (vcmla_rot90_f32): New.
1639 (vcmlaq_rot90_f32): New.
1640 (vcmlaq_rot90_f64): New.
1641 (vcmla_rot90_lane_f32): New.
1642 (vcmla_rot90_laneq_f32): New.
1643 (vcmlaq_rot90_lane_f32): New.
1644 (vcmlaq_rot90_laneq_f32): New.
1645 (vcmla_rot180_f32): New.
1646 (vcmlaq_rot180_f32): New.
1647 (vcmlaq_rot180_f64): New.
1648 (vcmla_rot180_lane_f32): New.
1649 (vcmla_rot180_laneq_f32): New.
1650 (vcmlaq_rot180_lane_f32): New.
1651 (vcmlaq_rot180_laneq_f32): New.
1652 (vcmla_rot270_f32): New.
1653 (vcmlaq_rot270_f32): New.
1654 (vcmlaq_rot270_f64): New.
1655 (vcmla_rot270_lane_f32): New.
1656 (vcmla_rot270_laneq_f32): New.
1657 (vcmlaq_rot270_lane_f32): New.
1658 (vcmlaq_rot270_laneq_f32): New.
1659 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
1660 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
1661 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
1662 (FCADD, FCMLA): New.
1663 (rot): New.
1664 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
1665
1666 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1667
1668 PR other/16615
1669
1670 * config/pa/pa.c: Change "can not" to "cannot".
1671 * gimple-ssa-evrp-analyze.c: Likewise.
1672 * ipa-icf.c: Likewise.
1673 * ipa-polymorphic-call.c: Likewise.
1674 * ipa-pure-const.c: Likewise.
1675 * lra-constraints.c: Likewise.
1676 * lra-remat.c: Likewise.
1677 * reload1.c: Likewise.
1678 * reorg.c: Likewise.
1679 * tree-ssa-uninit.c: Likewise.
1680
1681 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
1682
1683 PR other/16615
1684
1685 * Makefile.in: Mechanically replace "can not" with "cannot".
1686 * alias.c: Likewise.
1687 * builtins.c: Likewise.
1688 * calls.c: Likewise.
1689 * cgraph.c: Likewise.
1690 * cgraph.h: Likewise.
1691 * cgraphclones.c: Likewise.
1692 * cgraphunit.c: Likewise.
1693 * combine-stack-adj.c: Likewise.
1694 * combine.c: Likewise.
1695 * common/config/i386/i386-common.c: Likewise.
1696 * config/aarch64/aarch64.c: Likewise.
1697 * config/alpha/sync.md: Likewise.
1698 * config/arc/arc.c: Likewise.
1699 * config/arc/predicates.md: Likewise.
1700 * config/arm/arm-c.c: Likewise.
1701 * config/arm/arm.c: Likewise.
1702 * config/arm/arm.h: Likewise.
1703 * config/arm/arm.md: Likewise.
1704 * config/arm/cortex-r4f.md: Likewise.
1705 * config/csky/csky.c: Likewise.
1706 * config/csky/csky.h: Likewise.
1707 * config/darwin-f.c: Likewise.
1708 * config/epiphany/epiphany.md: Likewise.
1709 * config/i386/i386.c: Likewise.
1710 * config/i386/sol2.h: Likewise.
1711 * config/m68k/m68k.c: Likewise.
1712 * config/mcore/mcore.h: Likewise.
1713 * config/microblaze/microblaze.md: Likewise.
1714 * config/mips/20kc.md: Likewise.
1715 * config/mips/sb1.md: Likewise.
1716 * config/nds32/nds32.c: Likewise.
1717 * config/nds32/predicates.md: Likewise.
1718 * config/pa/pa.c: Likewise.
1719 * config/rs6000/e300c2c3.md: Likewise.
1720 * config/rs6000/rs6000.c: Likewise.
1721 * config/s390/s390.h: Likewise.
1722 * config/sh/sh.c: Likewise.
1723 * config/sh/sh.md: Likewise.
1724 * config/spu/vmx2spu.h: Likewise.
1725 * cprop.c: Likewise.
1726 * dbxout.c: Likewise.
1727 * df-scan.c: Likewise.
1728 * doc/cfg.texi: Likewise.
1729 * doc/extend.texi: Likewise.
1730 * doc/fragments.texi: Likewise.
1731 * doc/gty.texi: Likewise.
1732 * doc/invoke.texi: Likewise.
1733 * doc/lto.texi: Likewise.
1734 * doc/md.texi: Likewise.
1735 * doc/objc.texi: Likewise.
1736 * doc/rtl.texi: Likewise.
1737 * doc/tm.texi: Likewise.
1738 * dse.c: Likewise.
1739 * emit-rtl.c: Likewise.
1740 * emit-rtl.h: Likewise.
1741 * except.c: Likewise.
1742 * expmed.c: Likewise.
1743 * expr.c: Likewise.
1744 * fold-const.c: Likewise.
1745 * genautomata.c: Likewise.
1746 * gimple-fold.c: Likewise.
1747 * hard-reg-set.h: Likewise.
1748 * ifcvt.c: Likewise.
1749 * ipa-comdats.c: Likewise.
1750 * ipa-cp.c: Likewise.
1751 * ipa-devirt.c: Likewise.
1752 * ipa-fnsummary.c: Likewise.
1753 * ipa-icf.c: Likewise.
1754 * ipa-inline-transform.c: Likewise.
1755 * ipa-inline.c: Likewise.
1756 * ipa-polymorphic-call.c: Likewise.
1757 * ipa-profile.c: Likewise.
1758 * ipa-prop.c: Likewise.
1759 * ipa-pure-const.c: Likewise.
1760 * ipa-reference.c: Likewise.
1761 * ipa-split.c: Likewise.
1762 * ipa-visibility.c: Likewise.
1763 * ipa.c: Likewise.
1764 * ira-build.c: Likewise.
1765 * ira-color.c: Likewise.
1766 * ira-conflicts.c: Likewise.
1767 * ira-costs.c: Likewise.
1768 * ira-int.h: Likewise.
1769 * ira-lives.c: Likewise.
1770 * ira.c: Likewise.
1771 * ira.h: Likewise.
1772 * loop-invariant.c: Likewise.
1773 * loop-unroll.c: Likewise.
1774 * lower-subreg.c: Likewise.
1775 * lra-assigns.c: Likewise.
1776 * lra-constraints.c: Likewise.
1777 * lra-eliminations.c: Likewise.
1778 * lra-lives.c: Likewise.
1779 * lra-remat.c: Likewise.
1780 * lra-spills.c: Likewise.
1781 * lra.c: Likewise.
1782 * lto-cgraph.c: Likewise.
1783 * lto-streamer-out.c: Likewise.
1784 * postreload-gcse.c: Likewise.
1785 * predict.c: Likewise.
1786 * profile-count.h: Likewise.
1787 * profile.c: Likewise.
1788 * recog.c: Likewise.
1789 * ree.c: Likewise.
1790 * reload.c: Likewise.
1791 * reload1.c: Likewise.
1792 * reorg.c: Likewise.
1793 * resource.c: Likewise.
1794 * rtl.def: Likewise.
1795 * rtl.h: Likewise.
1796 * rtlanal.c: Likewise.
1797 * sched-deps.c: Likewise.
1798 * sched-ebb.c: Likewise.
1799 * sched-rgn.c: Likewise.
1800 * sel-sched-ir.c: Likewise.
1801 * sel-sched.c: Likewise.
1802 * shrink-wrap.c: Likewise.
1803 * simplify-rtx.c: Likewise.
1804 * symtab.c: Likewise.
1805 * target.def: Likewise.
1806 * toplev.c: Likewise.
1807 * tree-call-cdce.c: Likewise.
1808 * tree-cfg.c: Likewise.
1809 * tree-complex.c: Likewise.
1810 * tree-core.h: Likewise.
1811 * tree-eh.c: Likewise.
1812 * tree-inline.c: Likewise.
1813 * tree-loop-distribution.c: Likewise.
1814 * tree-nrv.c: Likewise.
1815 * tree-profile.c: Likewise.
1816 * tree-sra.c: Likewise.
1817 * tree-ssa-alias.c: Likewise.
1818 * tree-ssa-dce.c: Likewise.
1819 * tree-ssa-dom.c: Likewise.
1820 * tree-ssa-forwprop.c: Likewise.
1821 * tree-ssa-loop-im.c: Likewise.
1822 * tree-ssa-loop-ivcanon.c: Likewise.
1823 * tree-ssa-loop-ivopts.c: Likewise.
1824 * tree-ssa-loop-niter.c: Likewise.
1825 * tree-ssa-phionlycprop.c: Likewise.
1826 * tree-ssa-phiopt.c: Likewise.
1827 * tree-ssa-propagate.c: Likewise.
1828 * tree-ssa-threadedge.c: Likewise.
1829 * tree-ssa-threadupdate.c: Likewise.
1830 * tree-ssa-uninit.c: Likewise.
1831 * tree-ssanames.c: Likewise.
1832 * tree-streamer-out.c: Likewise.
1833 * tree.c: Likewise.
1834 * tree.h: Likewise.
1835 * vr-values.c: Likewise.
1836
1837 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
1838
1839 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
1840 (ix86_split_xorsign): Ditto.
1841 * config/i386/i386.c (ix86_expand_xorsign): New function.
1842 (ix86_split_xorsign): Ditto.
1843 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
1844 (xorsign<mode>3): New expander.
1845 (xorsign<mode>3_1): New insn_and_split pattern.
1846 * config/i386/sse.md (xorsign<mode>3): New expander.
1847
1848 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1849
1850 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
1851 (*tablejump_sp64): Likewise.
1852 (*tablejump<P:mode>): ...this.
1853 (*call_address_sp32): Merge into...
1854 (*call_address_sp64): Likewise.
1855 (*call_address<P:mode>): ...this.
1856 (*call_symbolic_sp32): Merge into...
1857 (*call_symbolic_sp64): Likewise.
1858 (*call_symbolic<P:mode>): ...this.
1859 (call_value): Remove constraint and add predicate.
1860 (*call_value_address_sp32): Merge into...
1861 (*call_value_address_sp64): Likewise.
1862 (*call_value_address<P:mode>): ...this.
1863 (*call_value_symbolic_sp32): Merge into...
1864 (*call_value_symbolic_sp64): Likewise.
1865 (*call_value_symbolic<P:mode>): ...this.
1866 (*sibcall_symbolic_sp32): Merge into...
1867 (*sibcall_symbolic_sp64): Likewise.
1868 (*sibcall_symbolic<P:mode>): ...this.
1869 (sibcall_value): Remove constraint and add predicate.
1870 (*sibcall_value_symbolic_sp32): Merge into...
1871 (*sibcall_value_symbolic_sp64): Likewise.
1872 (*sibcall_value_symbolic<P:mode>): ...this.
1873 (window_save): Minor tweak.
1874 (*branch_sp32): Merge into...
1875 (*branch_sp64): Likewise.
1876 (*branch<P:mode>): ...this.
1877
1878 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
1879 James Clarke <jrtc27@jrtc27.com>
1880
1881 PR target/84010
1882 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
1883 consistently in TLS address generation and adjust code to the renaming
1884 of patterns. Mark calls to __tls_get_addr as const.
1885 * config/sparc/sparc.md (tgd_hi22): Turn into...
1886 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
1887 (tgd_lo10): Turn into...
1888 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
1889 (tgd_add32): Merge into...
1890 (tgd_add64): Likewise.
1891 (tgd_add<P:mode>): ...this and use Pmode throughout.
1892 (tldm_hi22): Turn into...
1893 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
1894 (tldm_lo10): Turn into...
1895 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
1896 (tldm_add32): Merge into...
1897 (tldm_add64): Likewise.
1898 (tldm_add<P:mode>): ...this and use Pmode throughout.
1899 (tldm_call32): Merge into...
1900 (tldm_call64): Likewise.
1901 (tldm_call<P:mode>): ...this and use Pmode throughout.
1902 (tldo_hix22): Turn into...
1903 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
1904 (tldo_lox10): Turn into...
1905 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
1906 (tldo_add32): Merge into...
1907 (tldo_add64): Likewise.
1908 (tldo_add<P:mode>): ...this and use Pmode throughout.
1909 (tie_hi22): Turn into...
1910 (tie_hi22<P:mode>): ...this and use Pmode throughout.
1911 (tie_lo10): Turn into...
1912 (tie_lo10<P:mode>): ...this and use Pmode throughout.
1913 (tie_ld64): Use DImode throughout.
1914 (tie_add32): Merge into...
1915 (tie_add64): Likewise.
1916 (tie_add<P:mode>): ...this and use Pmode throughout.
1917 (tle_hix22_sp32): Merge into...
1918 (tle_hix22_sp64): Likewise.
1919 (tle_hix22<P:mode>): ...this and use Pmode throughout.
1920 (tle_lox22_sp32): Merge into...
1921 (tle_lox22_sp64): Likewise.
1922 (tle_lox22<P:mode>): ...this and use Pmode throughout.
1923 (*tldo_ldub_sp32): Merge into...
1924 (*tldo_ldub_sp64): Likewise.
1925 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
1926 (*tldo_ldub1_sp32): Merge into...
1927 (*tldo_ldub1_sp64): Likewise.
1928 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
1929 (*tldo_ldub2_sp32): Merge into...
1930 (*tldo_ldub2_sp64): Likewise.
1931 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
1932 (*tldo_ldsb1_sp32): Merge into...
1933 (*tldo_ldsb1_sp64): Likewise.
1934 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
1935 (*tldo_ldsb2_sp32): Merge into...
1936 (*tldo_ldsb2_sp64): Likewise.
1937 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
1938 (*tldo_ldub3_sp64): Use DImode throughout.
1939 (*tldo_ldsb3_sp64): Likewise.
1940 (*tldo_lduh_sp32): Merge into...
1941 (*tldo_lduh_sp64): Likewise.
1942 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
1943 (*tldo_lduh1_sp32): Merge into...
1944 (*tldo_lduh1_sp64): Likewise.
1945 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
1946 (*tldo_ldsh1_sp32): Merge into...
1947 (*tldo_ldsh1_sp64): Likewise.
1948 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
1949 (*tldo_lduh2_sp64): Use DImode throughout.
1950 (*tldo_ldsh2_sp64): Likewise.
1951 (*tldo_lduw_sp32): Merge into...
1952 (*tldo_lduw_sp64): Likewise.
1953 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
1954 (*tldo_lduw1_sp64): Use DImode throughout.
1955 (*tldo_ldsw1_sp64): Likewise.
1956 (*tldo_ldx_sp64): Likewise.
1957 (*tldo_stb_sp32): Merge into...
1958 (*tldo_stb_sp64): Likewise.
1959 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
1960 (*tldo_sth_sp32): Merge into...
1961 (*tldo_sth_sp64): Likewise.
1962 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
1963 (*tldo_stw_sp32): Merge into...
1964 (*tldo_stw_sp64): Likewise.
1965 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
1966 (*tldo_stx_sp64): Use DImode throughout.
1967
1968 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1969
1970 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
1971 check configure option to set BTI and Return Address Signing.
1972 * configure.ac: Add --enable-standard-branch-protection and
1973 --disable-standard-branch-protection.
1974 * configure: Regenerated.
1975 * doc/install.texi: Document the same.
1976
1977 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1978 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1979
1980 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
1981 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
1982 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
1983 if bti is enabled.
1984 * config/aarch64/aarch64-bti-insert.c: New file.
1985 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
1986 pass.
1987 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
1988 new bti pass.
1989 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
1990 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
1991 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
1992 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
1993
1994 2018-01-09 Sudakshina Das <sudi.das@arm.com>
1995
1996 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
1997 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
1998 Disable bti for -mbranch-protection=none.
1999 (aarch64_handle_standard_branch_protection): Enable bti for
2000 -mbranch-protection=standard.
2001 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
2002 -mbranch-protection.
2003 (aarch64_bti_enabled): Check if bti is enabled.
2004 * config/aarch64/aarch64.opt: Declare target variable.
2005 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
2006
2007 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2008
2009 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
2010 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
2011 (aarch64_expand_epilogue): Likewise.
2012 (aarch64_output_mi_thunk): Likewise
2013 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
2014 TAILCALL_ADDR_REGS to x16 and x17.
2015 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
2016
2017 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2018
2019 * config/aarch64/aarch64-option-extensions.def: Define
2020 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
2021 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
2022 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
2023 (AARCH64_FL_PREDRES): New.
2024 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
2025 AARCH64_FL_PREDRES by default.
2026 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
2027
2028 2018-01-09 Sudakshina Das <sudi.das@arm.com>
2029
2030 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
2031 ARMv8.5-A.
2032 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
2033 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
2034 * doc/invoke.texi: Document ARMv8.5-A.
2035
2036 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2037
2038 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
2039 (xorsign<mode>3): Likewise.
2040
2041 2019-01-09 Jelinek <jakub@redhat.com>
2042
2043 PR middle-end/88758
2044 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
2045 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
2046
2047 PR rtl-optimization/88331
2048 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
2049 not currently_expanding_to_rtl.
2050
2051 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
2052
2053 * doc/invoke.texi (-Os): Remove trailing spaces.
2054 (-finline-functions): Remove reference to -O2.
2055
2056 2019-01-08 Jakub Jelinek <jakub@redhat.com>
2057
2058 PR rtl-optimization/79593
2059 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
2060
2061 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
2062 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
2063
2064 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
2065
2066 PR bootstrap/88721
2067 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
2068 to -1 on entry.
2069
2070 PR debug/88723
2071 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
2072 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
2073
2074 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
2075
2076 PR target/88717
2077 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
2078 ix86_avx_u128_mode_entry.
2079
2080 2019-01-08 Martin Liska <mliska@suse.cz>
2081
2082 PR tree-optimization/88753
2083 * tree-switch-conversion.c (switch_conversion::build_one_array):
2084 Come up with local variable constructor. Convert first to
2085 type of constructor values.
2086
2087 2019-01-08 Richard Biener <rguenther@suse.de>
2088
2089 PR tree-optimization/86554
2090 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
2091 rpo_avail): Move earlier.
2092 (visit_nary_op): When value-numbering to expressions
2093 with different overflow behavior make sure there's an
2094 available expression on the path.
2095
2096 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
2097
2098 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
2099 aarch64_parse_branch_protection,
2100 struct aarch64_branch_protect_type,
2101 aarch64_handle_no_branch_protection,
2102 aarch64_handle_standard_branch_protection,
2103 aarch64_validate_mbranch_protection,
2104 aarch64_handle_pac_ret_protection,
2105 aarch64_handle_attr_branch_protection,
2106 accepted_branch_protection_string,
2107 aarch64_pac_ret_subtypes,
2108 aarch64_branch_protect_types,
2109 aarch64_handle_pac_ret_leaf): Define.
2110 (aarch64_override_options_after_change_1, aarch64_override_options):
2111 Add check for accepted_branch_protection_string.
2112 (aarch64_option_save): Save accepted_branch_protection_string.
2113 (aarch64_option_restore): Save accepted_branch_protection_string.
2114 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
2115 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
2116 msign-return-address.
2117 * doc/invoke.texi: Add mbranch-protection.
2118
2119 2019-01-08 Alan Modra <amodra@gmail.com>
2120
2121 PR target/88614
2122 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
2123 Delete "unknownp" parameter. Adjust callers. Handle
2124 CONST_INT, PLUS, MINUS, and MULT.
2125 (attr_value_aligned): Renamed from or_attr_value.
2126 (min_attr_value): Return INT_MIN for unhandled rtl case..
2127 (min_fn): ..and translate to INT_MAX here.
2128 (write_length_unit_log): Modify to cope without "unknown".
2129 (write_attr_value): Handle IF_THEN_ELSE.
2130
2131 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2132
2133 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
2134 optimization for masked stores.
2135
2136 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2137
2138 PR middle-end/88567
2139 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
2140 output vector directly to duplicate_and_interleave instead of
2141 going through a temporary. Postpone insertion of ctor_seq to
2142 the end of the loop.
2143
2144 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
2145
2146 PR target/86891
2147 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
2148 unsigned_p. Handle signed and unsigned overflow correction as
2149 required.
2150 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
2151 prototype.
2152 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
2153 for operand 2.
2154 (add<mode>3_compareV_imm): Make this callable for expanding.
2155 (subv<GPI:mode>4): Use register_operand for operand 1. Use
2156 aarch64_plus_operand for operand 2.
2157 (subv<GPI:mode>_insn): New insn pattern.
2158 (subv<GPI:mode>_imm): Likewise.
2159 (negv<GPI:mode>3): New expand pattern.
2160 (negv<GPI:mode>_insn): New insn pattern.
2161 (negv<GPI:mode>_cmp_only): Likewise.
2162 (cmpv<GPI:mode>_insn): Likewise.
2163 (subvti4): Use register_operand for operand 1. Update call to
2164 aarch64_expand_subvti.
2165 (usubvti4): Likewise.
2166 (negvti3): New expand pattern.
2167 (negdi_carryout): New insn pattern.
2168 (negvdi_carryinV): New insn pattern.
2169 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
2170 version the named version.
2171 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
2172 operands.
2173 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
2174 patterns.
2175 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
2176 patterns.
2177 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
2178 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
2179 (sub<mode>3_carryinCV): Delete.
2180 (sub<GPI:mode>3_carryinV): New expand pattern.
2181 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
2182
2183 2019-01-07 Richard Biener <rguenther@suse.de>
2184
2185 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
2186 of tree_operand_hash.
2187
2188 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2189
2190 PR tree-optimization/88598
2191 * tree.h (single_nonzero_element): Declare.
2192 * tree.c (single_nonzero_element): New function.
2193 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
2194 if I is the only nonzero element of CST.
2195
2196 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
2197
2198 PR tree-optimization/88598
2199 * tree.h (initializer_each_zero_or_onep): Declare.
2200 * tree.c (initializer_each_zero_or_onep): New function.
2201 (signed_or_unsigned_type_for): Handle float types too.
2202 (unsigned_type_for, signed_type_for): Update comments accordingly.
2203 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
2204 x & { 0 or -1, 0 or -1, ... }.
2205
2206 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
2207
2208 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
2209 with x86_64-pc-linux-gnu.
2210
2211 2019-01-07 Tom de Vries <tdevries@suse.de>
2212
2213 PR target/85486
2214 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
2215 function.
2216 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
2217 routines.
2218
2219 2019-01-07 Jakub Jelinek <jakub@redhat.com>
2220
2221 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
2222 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
2223 TARGET_AVX512F as condition.
2224
2225 PR debug/88723
2226 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
2227 const_not_ok_for_debug_p target hook.
2228 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
2229 on UNSPEC and subexpressions thereof if all subexpressions of the
2230 UNSPEC are CONSTANT_P.
2231
2232 PR tree-optimization/88676
2233 * tree-ssa-phiopt.c (two_value_replacement): New function.
2234 (tree_ssa_phiopt_worker): Call it.
2235
2236 PR sanitizer/88619
2237 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
2238 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
2239
2240 PR c++/85052
2241 * tree-vect-generic.c: Include insn-config.h and recog.h.
2242 (expand_vector_piecewise): Add defaulted ret_type argument,
2243 if non-NULL, use that in preference to type for the result type.
2244 (expand_vector_parallel): Formatting fix.
2245 (do_vec_conversion, do_vec_narrowing_conversion,
2246 expand_vector_conversion): New functions.
2247 (expand_vector_operations_1): Call expand_vector_conversion
2248 for VEC_CONVERT ifn calls.
2249 * internal-fn.def (VEC_CONVERT): New internal function.
2250 * internal-fn.c (expand_VEC_CONVERT): New function.
2251 * fold-const-call.c (fold_const_vec_convert): New function.
2252 (fold_const_call): Use it for CFN_VEC_CONVERT.
2253 * doc/extend.texi (__builtin_convertvector): Document.
2254
2255 2019-01-07 Tom de Vries <tdevries@suse.de>
2256
2257 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
2258 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
2259 vector_red_partition, vector_red_sym): New global variables.
2260 (nvptx_option_override): Initialize vector_red_sym.
2261 (nvptx_declare_function_name): Restore red_partition register.
2262 (nvptx_file_end): Emit code to declare the vector reduction variables.
2263 (nvptx_output_red_partition): New function.
2264 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
2265 large vector reductions.
2266 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
2267 (nvptx_init_builtins): Add VECTOR_ADDR.
2268 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
2269 Handle nvptx_expand_shared_addr.
2270 (nvptx_get_shared_red_addr): Add vector argument and handle large
2271 vectors.
2272 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
2273 large vectors.
2274 (nvptx_goacc_reduction_init): Likewise.
2275 (nvptx_goacc_reduction_fini): Likewise.
2276 (nvptx_goacc_reduction_teardown): Likewise.
2277 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
2278 init,fini,teardown}.
2279 (nvptx_init_axis_predicate): Initialize vector_red_partition.
2280 (nvptx_set_current_function): Init vector_red_partition.
2281 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
2282 (nvptx_red_partition): New insn.
2283 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
2284
2285 2019-01-07 Tom de Vries <tdevries@suse.de>
2286
2287 PR target/85381
2288 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
2289 empty loops.
2290
2291 2019-01-07 Tom de Vries <tdevries@suse.de>
2292
2293 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
2294 (nvptx_option_override): Init oacc_bcast_partition.
2295 (nvptx_init_oacc_workers): New function.
2296 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
2297 (nvptx_needs_shared_bcast): New function.
2298 (nvptx_find_par): Generalize to enable vectors to use shared-memory
2299 to propagate state.
2300 (nvptx_shared_propagate): Initialize vector bcast partition and
2301 synchronization state.
2302 (nvptx_single): Generalize to enable vectors to use shared-memory
2303 to propagate state.
2304 (nvptx_process_pars): Likewise.
2305 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
2306 * config/nvptx/nvptx.h (struct machine_function): Add
2307 bcast_partition and sync_bar members.
2308
2309 2019-01-07 Tom de Vries <tdevries@suse.de>
2310
2311 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
2312 (nvptx_apply_dim_limits): New function.
2313 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
2314 PTX_WARP_SIZE.
2315
2316 2019-01-07 Tom de Vries <tdevries@suse.de>
2317
2318 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
2319 as late as possible.
2320
2321 2019-01-07 Tom de Vries <tdevries@suse.de>
2322
2323 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
2324 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
2325 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
2326 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
2327 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
2328
2329 2019-01-07 Tom de Vries <tdevries@suse.de>
2330
2331 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
2332
2333 2019-01-07 Tom de Vries <tdevries@suse.de>
2334
2335 * omp-offload.c (oacc_get_min_dim): New function.
2336 * omp-offload.h (oacc_get_min_dim): Declare.
2337
2338 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
2339
2340 PR target/88521
2341 * config/i386/i386.c (function_value_ms_64): Return small sturct in
2342 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
2343
2344 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2345
2346 PR tree-opt/86020
2347 Revert:
2348 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
2349
2350 * ipa-inline.c (edge_badness): Use inlined_time instead of
2351 inline_summaries->get.
2352
2353 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2354
2355 * opts.c (enable_fdo_optimizations): Enable
2356 version-loops-for-strides, loop-interchange, unrol-and-jam
2357 and tree-loop-distribution.
2358 * invoke.texi: Document newly enabled options.
2359
2360 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2361
2362 * doc/invoke.texi (max-inline-insns-small): New parameters.
2363 * ipa-inline.c (want_early_inline_function_p): simplify.
2364 (want_inline_small_function_p): Fix pasto from previous patch;
2365 use max-inline-insns-small bound.
2366 * params.def (max-inline-insns-small): New param.
2367 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
2368 variables correctly.
2369
2370 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2371
2372 * doc/invoke.texi: Document max-inline-insns-size,
2373 uninlined-function-insns, uninlined-function-time,
2374 uninlined-thunk-insns and uninlined-thunk-time.
2375 * params.def: Add max-inline-insns-size,
2376 uninlined-function-insns, uninlined-function-time,
2377 uninlined-thunk-insns and uninlined-thunk-time.
2378 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
2379 new parameters.
2380 * ipa-inline.c (can_inline_edge_by_limits_p,
2381 want_inline_small_function_p): Use new parameters.
2382
2383 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2384
2385 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
2386
2387 2019-01-05 Jakub Jelinek <jakub@redhat.com>
2388
2389 PR middle-end/82564
2390 PR target/88620
2391 * expr.c (expand_assignment): For calls returning VLA structures
2392 if to_rtx is not a MEM, force it into a stack temporary.
2393
2394 PR debug/88635
2395 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
2396 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
2397 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
2398 subexpressions of both operands.
2399 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
2400 subrtxes are CONSTANT_P.
2401 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
2402 2018-11-09 changes.
2403
2404 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
2405
2406 * params.def (hot-bb-count-ws-permille): Set to 990.
2407
2408 2019-01-04 Martin Sebor <msebor@redhat.com>
2409
2410 PR c/88546
2411 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
2412 leaf.
2413
2414 2019-01-04 Martin Sebor <msebor@redhat.com>
2415
2416 PR c/88363
2417 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
2418
2419 2019-01-04 Jakub Jelinek <jakub@redhat.com>
2420
2421 * gdbinit.in: Turn off pagination for the skip commands, restore
2422 it to previous state afterwards.
2423
2424 2019-01-04 Jakub Jelinek <jakub@redhat.com>
2425
2426 PR target/88594
2427 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
2428 of GET_MODE (opN) as modes of the libcall arguments.
2429
2430 2019-01-04 Jan Beulich <jbeulich@suse.com>
2431
2432 * config/i386/sse.md
2433 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
2434 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
2435 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
2436 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
2437 avx512f_vmcmp<mode>3<round_saeonly_name>,
2438 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
2439 avx512f_maskcmp<mode>3,
2440 <avx512>_cvt<ssemodesuffix>2mask<mode>,
2441 <avx512>_cvt<ssemodesuffix>2mask<mode>,
2442 *<avx512>_cvtmask2<ssemodesuffix><mode>,
2443 *<avx512>_cvtmask2<ssemodesuffix><mode>,
2444 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
2445 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
2446 <avx512>_gt<mode>3<mask_scalar_merge_name>,
2447 <avx512>_gt<mode>3<mask_scalar_merge_name>,
2448 <avx512>_testm<mode>3<mask_scalar_merge_name>,
2449 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
2450 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
2451 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
2452 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
2453 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
2454 avx512cd_maskb_vec_dup<mode>,
2455 avx512cd_maskw_vec_dup<mode>,
2456 avx512dq_fpclass<mode><mask_scalar_merge_name>,
2457 avx512dq_vmfpclass<mode>,
2458 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
2459 instead of =Yk.
2460
2461 2019-01-03 Martin Sebor <msebor@redhat.com>
2462
2463 PR tree-optimization/88659
2464 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
2465
2466 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
2467
2468 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
2469 unaligned vsx and avoid lxvd2x/stxvd2x.
2470 (gen_lvx_v4si_move): New function.
2471
2472 2019-01-03 Tom de Vries <tdevries@suse.de>
2473
2474 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
2475 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
2476 function.
2477 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
2478
2479 2019-01-03 Tom de Vries <tdevries@suse.de>
2480
2481 * config/nvptx/nvptx.c (struct offload_attrs): New.
2482 (populate_offload_attrs): New function. Factor mask extraction out of
2483 nvptx_reorg. Add extraction of dimensions.
2484 (nvptx_reorg): Use populate_offload_attrs.
2485
2486 2019-01-03 Tom de Vries <tdevries@suse.de>
2487
2488 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
2489 cases for oacc_min_dims_p and routine_p. Add asserts for
2490 oacc_default_dims_p and offload_region_p.
2491
2492 2019-01-03 Tom de Vries <tdevries@suse.de>
2493
2494 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
2495 factored out of ...
2496 (nvptx_goacc_validate_dims): ... here.
2497
2498 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
2499
2500 PR tree-optimization/85574
2501 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
2502 structure.
2503 (struct ssa_equip_hash_traits): Declare.
2504 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
2505
2506 2019-01-03 Jakub Jelinek <jakub@redhat.com>
2507
2508 PR debug/88644
2509 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
2510 change it to qualified_type.
2511
2512 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
2513
2514 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
2515 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
2516
2517 2019-01-02 Martin Sebor <msebor@redhat.com>
2518 Jeff Law <law@redhat.com>
2519
2520 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
2521 (get_range_strlen_tree): Update appropriately.
2522 (get_range_strlen)
2523 * gimple-fold.h (get_range_strlen): Drop unused last argument.
2524
2525 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
2526 rather than set_range_info.
2527 * tree-ssa-strlen.c (set_strlen_range): Extracted from
2528 maybe_set_strlen_range. Handle potentially boundary crossing
2529 cases more conservatively.
2530 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
2531 Call set_strlen_range.
2532 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
2533
2534 PR middle-end/88663
2535 * gimple-fold.c (get_range_strlen): Update prototype to no longer
2536 need the flexp argument.
2537 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
2538 from calls to get_range_strlen. Update comments. Just update
2539 VAL for an unterminated const char array and let the reset of the
2540 code handle it normally. No longer try to set *flexp. Adjust
2541 return value.
2542 (get_range_strlen): Update for the new get_range_strlen API.
2543 (get_maxval_strlen): Similarly.
2544 (gimple_fold_builtin_strlen): Handle update meaning of return value
2545 from get_range_strlen.
2546 * gimple-ssa-sprintf.c (get_string_length): Update for the new
2547 get_range_strlen API.
2548
2549 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
2550
2551 PR lto/88130
2552 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
2553 false at WPA time when body was removed.
2554
2555 2019-01-02 Martin Liska <mliska@suse.cz>
2556
2557 PR tree-optimization/88650
2558 * predict.c (set_even_probabilities): Calculate probability
2559 remainer only when really used.
2560
2561 2019-01-02 Richard Biener <rguenther@suse.de>
2562
2563 PR middle-end/88651
2564 * tree-data-ref.c (analyze_subscript_affine_affine): Use
2565 widest_ints when mangling max_stmt_execution results.
2566
2567 2019-01-02 Richard Biener <rguenther@suse.de>
2568
2569 PR tree-optimization/88621
2570 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
2571 bitfields when canoncalizing.
2572
2573 2019-01-02 Richard Biener <rguenther@suse.de>
2574
2575 PR target/87545
2576 * config/i386/x86-tune-costs.h (intel_cost): Adjust
2577 cost of cheap SSE instruction.
2578
2579 2019-01-02 Richard Biener <rguenther@suse.de>
2580
2581 PR ipa/85574
2582 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
2583 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
2584 function.
2585 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
2586 set after UIDs before splitting them.
2587
2588 2019-01-01 Martin Sebor <msebor@redhat.com>
2589 Jeff Law <law@redhat.com>
2590
2591 * gimple-fold.c (get_range_strlen_tree): Record if the computed
2592 length is optimistic. If it is, then arrange to compute the
2593 conservative length as well.
2594
2595 * gimple-fold.h (get_range_strlen): Update prototype.
2596 * builtins.c (check_access): Update call to get_range_strlen to use
2597 c_strlen_data pointer. Change various variable accesses to instead
2598 pull data from the c_strlen_data structure.
2599 (check_strncat_sizes, expand_builtin_strncat): Likewise.
2600 * calls.c (maybe_warn_nonstring_arg): Likewise.
2601 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
2602 minimum length if maximum lengh is unknown.
2603 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
2604 that used c_strlen, it's no longer needed. Restructure slightly.
2605 (format_string): Set unlikely range appropriately.
2606 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
2607 formatting issues.
2608 (get_range_strlen): Accept c_strlen_data pointer for external
2609 call sites as well. Pass through to call to internal get_range_strlen.
2610 Adjust minlen, maxlen and maxbound as needed.
2611 (get_maxval_strlen): Update comments.
2612 (gimple_fold_builtin_strlen): Update call to get_range_strlen
2613 to use c_strlen_data pointer. Change variable accesses to instead
2614 use c_strlen_data data members.
2615
2616 * gimple-fold.c (get_range_strlen): Update prototype.
2617 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
2618 local variables. Use pdata to return information to caller.
2619 Update calls to get_range_strlen. Update pdata->maxbound.
2620 (get_range_strlen -- static version): Similarly.
2621 (get_range_strlen -- extern version): Update for internal
2622 get_range_strlen API change. Convert to external data format.
2623 (get_maxval_strlen): Similarly.
2624
2625 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
2626
2627 * coverage.c (get_coverage_counts): Use current_function_decl.
2628 * profile.c (read_thunk_profile): New function.
2629 (branch_prob): Add THUNK parameter.
2630 * tree-profile.c (tree_profiling): Handle thunks.
2631 * value-prof.c (init_node_map): Handle thunks.
2632 * value-prof.h (branch_prob): Upate prototype.
2633 (read_thunk_profile): Declare.
2634
2635 2019-01-01 Jakub Jelinek <jakub@redhat.com>
2636
2637 Update copyright years.
2638
2639 * gcc.c (process_command): Update copyright notice dates.
2640 * gcov-dump.c (print_version): Ditto.
2641 * gcov.c (print_version): Ditto.
2642 * gcov-tool.c (print_version): Ditto.
2643 * gengtype.c (create_file): Ditto.
2644 * doc/cpp.texi: Bump @copying's copyright year.
2645 * doc/cppinternals.texi: Ditto.
2646 * doc/gcc.texi: Ditto.
2647 * doc/gccint.texi: Ditto.
2648 * doc/gcov.texi: Ditto.
2649 * doc/install.texi: Ditto.
2650 * doc/invoke.texi: Ditto.
2651 \f
2652 Copyright (C) 2019 Free Software Foundation, Inc.
2653
2654 Copying and distribution of this file, with or without modification,
2655 are permitted in any medium without royalty provided the copyright
2656 notice and this notice are preserved.