]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
re PR middle-end/89503 (Checking ICE in 'gcc.dg/warn-strlen-no-nul.c')
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-03-01 Jakub Jelinek <jakub@redhat.com>
2
3 PR middle-end/89503
4 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
5 on DECL_P and EXPR_P.
6
7 2019-03-01 Richard Biener <rguenther@suse.de>
8
9 PR middle-end/89497
10 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
11 argument, defaulted to zero.
12 * passes.c (execute_function_todo): Pass down SSA update flags
13 to cleanup_tree_cfg.
14 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
15 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
16 form if requested.
17 (cleanup_tree_cfg): Get and pass down SSA update flags.
18
19 2019-03-01 Jakub Jelinek <jakub@redhat.com>
20
21 PR bootstrap/89539
22 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
23 early_lto_debug argument.
24
25 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
26
27 PR tree-optimization/89536
28 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
29 only whether bit #0 of the value is 0 instead of the entire value.
30
31 2019-02-28 Marek Polacek <polacek@redhat.com>
32
33 PR c++/87068 - missing diagnostic with fallthrough statement.
34 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
35 at the end of a seq, save its location to walk_stmt_info.
36 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
37 a switch.
38
39 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
40
41 PR lto/88585
42 * tree.c (find_atomic_core_type): Move ahead in file.
43 (check_base_type): Correctly compare alignments of atomic types.
44
45 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
46
47 PR target/89455
48 * config/i386/i386.c (get_builtin_code_for_version): Identify
49 Westmere from PCLMUL, instead of AES.
50
51 2019-02-28 Jakub Jelinek <jakub@redhat.com>
52
53 PR target/89434
54 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
55 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
56 -UINTVAL (...).
57
58 2019-02-28 Tamar Christina <tamar.christina@arm.com>
59
60 PR target/88530
61 * config/aarch64/aarch64-option-extensions.def: Document it.
62 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
63 if empty hwcaps.
64
65 2019-02-28 Jakub Jelinek <jakub@redhat.com>
66
67 PR c/89520
68 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
69 builtins if they don't have a single scalar floating point argument.
70 Formatting fixes.
71
72 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
73
74 PR rtl-optimization/89490
75 * varasm.c (get_block_for_section): Bail out for mergeable sections.
76 (default_use_anchors_for_symbol_p, output_object_block): Assert the
77 block section is not mergeable.
78
79 2019-02-27 Jakub Jelinek <jakub@redhat.com>
80
81 PR target/70341
82 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
83 old define_insn to ...
84 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
85 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
86 Rename old define_insn to ...
87 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
88 (thumb2_casesi_internal_pic): New define_expand. Rename old
89 define_insn to ...
90 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
91 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
92 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
93
94 2019-02-27 Richard Biener <rguenther@suse.de>
95
96 PR debug/88878
97 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
98
99 2019-02-27 Richard Biener <rguenther@suse.de>
100
101 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
102 building.
103
104 2019-02-27 Richard Biener <rguenther@suse.de>
105
106 PR debug/88878
107 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
108 parameter, prefix section name with .gnu.debuglto_ if true.
109 (dwarf2out_finish): Pass false to output_comdat_type_unit.
110 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
111
112 2019-02-27 Richard Biener <rguenther@suse.de>
113
114 PR debug/89514
115 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
116 rather than on use_debug_types, doing what output_die does.
117 (value_format): Likewise.
118
119 2019-02-27 Martin Jambor <mjambor@suse.cz>
120 Martin Sebor <msebor@redhat.com>
121
122 * doc/invoke.texi (Warning Options): Reword description of
123 -Wno-absolute-value.
124
125 2019-02-27 Jakub Jelinek <jakub@redhat.com>
126
127 PR tree-optimization/89280
128 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
129 builtin_setjmp_setup_bb): New functions.
130 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
131 When visiting __builtin_setjmp_setup block, queue in special
132 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
133 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
134 from visited after the loop if they don't have any visited successor
135 blocks.
136
137 2018-02-26 Steve Ellcey <sellcey@marvell.com>
138
139 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
140 New function.
141 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
142
143 2019-02-26 Jakub Jelinek <jakub@redhat.com>
144
145 PR c++/89507
146 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
147 with types other than sizetype/ssizetype.
148
149 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
150
151 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
152 (enum sparc_processor_type): ...this.
153 (enum sparc_code_model_type): New enumeration type.
154 (enum sparc_memory_model_type): Tweak comments.
155 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
156 (mtune): Likewise.
157 (mcmodel): Use sparc_code_model enumeration and variable.
158 (sparc_code_model): New enumeration.
159 (mdebug): Add Undocumented marker.
160 * config/sparc/sparc.h (enum cmodel): Delete.
161 (sparc_cmodel): Likewise.
162 (TARGET_CM_MEDLOW): Adjust to above renaming.
163 (TARGET_CM_MEDMID): Likewise.
164 (TARGET_CM_MEDANY): Likewise.
165 (TARGET_CM_EMBMEDANY): Likewise.
166 * config/sparc/sparc.c (sparc_cmodel): Delete.
167 (sparc_option_override): Remove string/value mapping support for the
168 code model. Move code and memory model support to after the handling
169 of target flags. Do private machine setup last.
170 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
171 (sparc_legitimize_reload_address): Likewise.
172 (sparc_output_mi_thunk): Likewise.
173 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
174
175 2019-02-26 Jakub Jelinek <jakub@redhat.com>
176
177 PR tree-optimization/89500
178 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
179 (handle_builtin_strlen): Remove noncst_bound variable. Always
180 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
181 cst if the first cst bytes starting at x are known to be non-zero,
182 even if the string is not zero terminated. Don't try to modify
183 *si for strnlen. Update strlen_to_stridx only for strlen or if
184 we can prove strnlen returns the same value as strlen would.
185
186 2019-02-26 Martin Liska <mliska@suse.cz>
187
188 * alloc-pool.h (struct pool_usage): Remove extra
189 print_dash_line.
190 * bitmap.h (struct bitmap_usage): Likewise.
191 * ggc-common.c (struct ggc_usage): Likewise.
192 * mem-stats.h (struct mem_usage): Likewise.
193 (mem_alloc_description::dump): Print dash lines
194 here and repeat header at the end of a table report.
195 It's then more readable.
196 * tree-phinodes.c (phinodes_print_statistics): Make
197 horizontal alignment.
198 * tree-ssanames.c (ssanames_print_statistics): Likewise.
199 * vec.c (struct vec_usage): Remove extra print_dash_line.
200 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
201
202 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
203
204 * doc/extend.texi (__builtin_object_size):
205 Use @pxref instead of @xref inside parenthesis.
206 (__builtin_has_attribute): Add missing comma after @xref.
207 (__builtin_object_size): Ditto.
208 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
209 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
210 in the list.
211
212 2019-02-26 Jeff Law <law@redhat.com>
213
214 PR rtl-optimization/87761
215 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
216 detect obviously dead insns and delete them.
217
218 2019-02-26 Richard Biener <rguenther@suse.de>
219
220 PR tree-optimization/89505
221 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
222 to handle restrict pointed-to vars with multiple subvars
223 correctly.
224
225 2019-02-26 Richard Biener <rguenther@suse.de>
226
227 PR tree-optimization/89489
228 * tree-parloops.c (create_loop_fn): Copy over last_clique.
229
230 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
231
232 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
233 and move around comment.
234 <BIT_AND_EXPR>: Likewise.
235 <BIT_NOT_EXPR>: Add specific handling for boolean types.
236
237 2019-02-26 Jakub Jelinek <jakub@redhat.com>
238
239 PR target/89474
240 * config/i386/i386.c (remove_partial_avx_dependency): Call
241 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
242 after changing possibly many instructions to use that pseudo. Fix up
243 insertion of v4sf_const0 setter at the start of bb.
244
245 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
246
247 PR c/80409
248 * doc/extend.texi (Variadic Pointer Args): New section.
249
250 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
251 Martin Sebor <msebor@gmail.com>
252
253 * common.opt (Wattribute-alias): Likewise.
254 * doc/invoke.texi (Option Summary): List general form of
255 -Wattribute-alias=. List positive form of -Wmissing-attributes.
256 (-Wmissing-attributes): Invert entry, rewrite and correct default.
257 Add cross-references.
258 (-Wattribute-alias): Rewrite and correct default. Mention
259 considered attributes (same as for -Wmissing-attributes).
260
261 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
262
263 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
264 (_mm_cvtpd_ps): Likewise.
265 (_mm_cvttpd_epi32): Likewise.
266
267 PR target/89338
268 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
269 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
270
271 PR target/89339
272 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
273
274 2019-02-25 Tamar Christina <tamar.christina@arm.com>
275
276 PR target/88530
277 * common/config/aarch64/aarch64-common.c
278 (struct aarch64_option_extension): Add is_synthetic.
279 (all_extensions): Use it.
280 (TARGET_OPTION_INIT_STRUCT): Define hook.
281 (struct gcc_targetm_common): Moved to end.
282 (all_extensions_by_on): New.
283 (opt_ext_cmp, typedef opt_ext): New.
284 (aarch64_option_init_struct): New.
285 (aarch64_contains_opt): New.
286 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
287 * config/aarch64/aarch64-option-extensions.def
288 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
289 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
290 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
291 Set is_synthetic to false.
292 (crypto): Set is_synthetic to true.
293 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
294 SYNTHETIC.
295
296 2019-02-25 Tamar Christina <tamar.christina@arm.com>
297
298 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
299 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
300 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
301 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
302 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
303 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
304 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
305 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
306 Rename ...
307 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
308 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
309 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
310 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
311 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
312 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
313 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
314 vfmlsl_laneq_high_f16): ... To this.
315 * config/arm/neon.md: Update comments.
316
317 2019-02-25 Tamar Christina <tamar.christina@arm.com>
318
319 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
320 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
321 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
322 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
323 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
324 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
325 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
326 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
327 Rename ...
328 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
329 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
330 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
331 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
332 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
333 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
334 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
335 vfmlslq_laneq_high_f16): ... To this.
336
337 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
338
339 PR rtl-optimization/86096
340 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
341 comparing mw_order values.
342
343 2019-02-25 Jakub Jelinek <jakub@redhat.com>
344
345 PR target/89434
346 * config/arm/arm.md (*subsi3_carryin_const): Use
347 arm_neg_immediate_operand predicate instead of
348 arm_not_immediate_operand, "L" constraint instead of "K" and
349 print it using %n2 instead of %B2.
350 (*subsi3_carryin_const0): New define_insn.
351 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
352 instead of arm_not_operand and "I" constraint instead of "K" and
353 print it using %n3 instead of %B2. Instead of using match_dup 2 add
354 another match_operand and in the condition check that it is negation
355 of operands[2].
356 (*subsi3_carryin_compare_const0): New define_ins.
357 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
358 *subsi3_carryin_const.
359 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
360 split into *subsi3_carryin_compare_const0 if the highpart is zero.
361
362 PR target/89438
363 * config/arm.vfp.md (*negdf2_vfp): Use
364 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
365 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
366
367 2019-02-24 Jakub Jelinek <jakub@redhat.com>
368
369 PR rtl-optimization/89445
370 * simplify-rtx.c (simplify_ternary_operation): Don't use
371 simplify_merge_mask on operands that may trap.
372 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
373 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
374 second operand is CONST_VECTOR, check if any element could be zero.
375 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
376 their operands can trap.
377
378 2019-02-23 Martin Sebor <msebor@redhat.com>
379
380 * gimple-ssa-sprintf.c (target_strtol): Rename...
381 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
382 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
383 check for range error.
384
385 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
386
387 PR driver/69471
388 * opts-common.c (prune_options): Also prune joined switches
389 with Negative and RejectNegative.
390 * config/i386/i386.opt (march=): Add Negative(march=).
391 (mtune=): Add Negative(mtune=).
392 * doc/options.texi: Document Negative used together with Joined
393 and RejectNegative.
394
395 2019-02-22 Martin Sebor <msebor@redhat.com>
396
397 * doc/extend.texi (Other Builtins): Add
398 __builtin_is_constant_evaluated.
399
400 2019-02-22 Richard Biener <rguenther@suse.de>
401
402 PR tree-optimization/87609
403 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
404
405 2019-02-22 Jeff Law <law@redhat.com>
406
407 PR rtl-optimization/87761
408 * config/mips/mips.md: Add new combiner pattern to recognize
409 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
410
411 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
412
413 PR target/89324
414 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
415 destination register in peepholes generating patterns for ADDS/SUBS.
416 (add<mode>3_compare0,
417 *addsi3_compare0_uxtw, add<mode>3_compareC,
418 add<mode>3_compareV_imm, add<mode>3_compareV,
419 *adds_<optab><ALLX:mode>_<GPI:mode>,
420 *subs_<optab><ALLX:mode>_<GPI:mode>,
421 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
422 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
423 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
424 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
425 sub<mode>3_compare1): Allow stack pointer for source register.
426 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
427
428 2019-02-22 Martin Sebor <msebor@redhat.com>
429
430 PR tree-optimization/88993
431 PR tree-optimization/88853
432 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
433 New helper.
434 (sprintf_dom_walker::call_info::is_string_func): New helper.
435 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
436 for formatted string functions.
437 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
438
439 2019-02-22 Martin Sebor <msebor@redhat.com>
440
441 PR c/89425
442 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
443 unreachable subexpressions.
444
445 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
446 Hongtao Liu <hongtao.liu@intel.com>
447 Sunil K Pandey <sunil.k.pandey@intel.com>
448
449 PR target/87007
450 * config/i386/i386-passes.def: Add
451 pass_remove_partial_avx_dependency.
452 * config/i386/i386-protos.h
453 (make_pass_remove_partial_avx_dependency): New.
454 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
455 New function.
456 (pass_data_remove_partial_avx_dependency): New.
457 (pass_remove_partial_avx_dependency): Likewise.
458 (make_pass_remove_partial_avx_dependency): Likewise.
459 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
460 (*extendsfdf2): Add avx_partial_xmm_update.
461 (truncdfsf2): Likewise.
462 (*float<SWI48:mode><MODEF:mode>2): Likewise.
463 (SF/DF conversion splitters): Disabled for TARGET_AVX.
464
465 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
466
467 PR middle-end/85598
468 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
469 analysis for pass.
470
471 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
472
473 PR target/89444
474 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
475 (PTA_SKYLAKE): Add PTA_AES.
476 (PTA_GOLDMONT): Likewise.
477
478 2019-02-22 Sudakshina Das <sudi.das@arm.com>
479
480 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
481 instruction if enabled.
482 (aarch64_override_options): Remove reference to return address key.
483
484 2019-02-22 Richard Biener <rguenther@suse.de>
485
486 PR tree-optimization/89440
487 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
488 not necessary assert.
489
490 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
491
492 PR fortran/72741
493 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
494 (oacc_replace_fn_attrib_attr): ... this new function.
495 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
496 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
497
498 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
499
500 * config/arm/arm-cpus.in (ares): Rename to...
501 (neoverse-n1): ... This. Add ares as alias.
502 * config/arm/arm-tables.opt: Regenerate.
503 * config/arm/arm-tune.md: Likewise.
504 * doc/invoke.txt (ARM Options): Document neoverse-n1.
505
506 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
507
508 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
509 * config/aarch64/aarch64-tune.md: Regenerate.
510 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
511
512 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
513
514 * config/aarch64/aarch64.c (ares_tunings): Rename to...
515 (neoversen1_tunings): ... This.
516 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
517 (neoverse-n1): New CPU.
518 * config/aarch64/aarch64-tune.md: Regenerate.
519 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
520
521 2019-02-22 Richard Biener <rguenther@suse.de>
522
523 PR middle-end/87609
524 * cfghooks.h (dependence_hash): New typedef.
525 (struct copy_bb_data): New type.
526 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
527 (duplicate_block): Likewise.
528 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
529 (copy_bbs): Create and pass down copy_bb_data.
530 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
531 (rtl_duplicate_bb): Likewise.
532 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
533 remap dependence info.
534
535 2019-02-22 Richard Biener <rguenther@suse.de>
536
537 PR tree-optimization/87609
538 * tree-core.h (tree_base): Document special clique values.
539 * tree-inline.c (remap_dependence_clique): Do not use the
540 special clique value of one.
541 (maybe_set_dependence_info): Use clique one.
542 (clear_dependence_clique): New callback.
543 (compute_dependence_clique): Clear clique one from all refs
544 before assigning it (again).
545
546 2019-02-21 Martin Sebor <msebor@redhat.com>
547
548 * doc/extend.texi (__clear_cache): Correct signature.
549
550 2019-02-21 Ian Lance Taylor <iant@golang.org>
551
552 PR go/89170
553 * varasm.c (decode_addr_const): Call lookup_constant_def rather
554 than output_constant_def.
555 (add_constant_to_table): New static function.
556 (output_constant_def): Call add_constant_to_table.
557 (tree_output_constant_def): Likewise.
558
559 2019-02-21 Jakub Jelinek <jakub@redhat.com>
560
561 PR c++/89285
562 * builtins.c (fold_builtin_arith_overflow): If first two args are
563 INTEGER_CSTs, set intres and ovfres to constants rather than calls
564 to ifn.
565
566 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
567
568 PR target/87412
569 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
570 error for -mindirect-branch/-mfunction-return with incompatible
571 -fcf-protection.
572
573 2019-02-21 Jakub Jelinek <jakub@redhat.com>
574
575 PR bootstrap/88714
576 * constraints.md (q): Remove.
577 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
578 instead of q.
579
580 2019-02-21 Martin Jambor <mjambor@suse.cz>
581
582 PR hsa/89302
583 * omp-general.c (omp_extract_for_data): Removed a duplicate call
584 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
585 (omp_adjust_for_condition): ...here. Added necessary parameters.
586 * omp-general.h (omp_adjust_for_condition): Updated declaration.
587 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
588 proper values to new parameters of omp_adjust_for_condition.
589
590 2019-02-20 Jakub Jelinek <jakub@redhat.com>
591
592 PR middle-end/89412
593 * expr.c (expand_assignment): If result is a MEM, use change_address
594 instead of simplify_gen_subreg.
595
596 2019-02-20 Jakub Jelinek <jakub@redhat.com>
597 David Malcolm <dmalcolm@redhat.com>
598
599 PR middle-end/89091
600 * fold-const.c (decode_field_reference): Return NULL_TREE if
601 lang_hooks.types.type_for_size returns NULL. Check it before
602 overwriting *exp_. Use return NULL_TREE instead of return 0.
603
604 2019-02-20 Jakub Jelinek <jakub@redhat.com>
605
606 PR middle-end/88074
607 PR middle-end/89415
608 * toplev.c (do_compile): Double the emin/emax exponents to workaround
609 buggy mpc_norm.
610
611 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
612
613 PR target/89397
614 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
615 TARGET_SSE in addition to TARGET_SSE_MATH.
616
617 (ix86_excess_precision): Ditto.
618 (ix86_float_exceptions_rounding_supported_p): Ditto.
619 (use_rsqrt_p): Ditto.
620 * config/i386/sse.md (rsqrt<mode>2): Ditto.
621
622 2019-02-20 David Malcolm <dmalcolm@redhat.com>
623
624 PR c/89410
625 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
626 linenum_arith_t when determining if two adjacent line spans are
627 close enough to merge.
628 (diagnostic_show_locus): Use linenum_arith_t when iterating over
629 lines within each line_span.
630
631 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
632
633 PR target/86487
634 * lra-constraints.c(uses_hard_regs_p): Fix handling of
635 paradoxical SUBREGS.
636
637 2019-02-20 Li Jia He <helijia@linux.ibm.com>
638
639 PR target/88100
640 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
641 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
642 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
643 range checking it.
644
645 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
646
647 * config/gcn/gcn.c (print_operand): Fix typo.
648
649 2019-02-19 Richard Biener <rguenther@suse.de>
650
651 PR middle-end/88074
652 * toplev.c (do_compile): Initialize mpfr's exponent range
653 based on available float modes.
654
655 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
656
657 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
658 as long as the epilogue isn't completed.
659
660 2019-02-18 Martin Sebor <msebor@redhat.com>
661
662 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
663 __has_cpp_attribute, and __has_include.
664
665 2019-02-18 Martin Sebor <msebor@redhat.com>
666
667 * doc/invoke.texi (-Wreturn-type): Correct and expand.
668
669 2019-02-18 Martin Sebor <msebor@redhat.com>
670
671 PR middle-end/89294
672 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
673 expression.
674 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
675
676 2019-02-18 Richard Biener <rguenther@suse.de>
677
678 PR tree-optimization/89296
679 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
680 of no-warning flag to cases that might emit the bogus warning.
681
682 2019-02-18 Jakub Jelinek <jakub@redhat.com>
683
684 PR bootstrap/88714
685 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
686 "q" constraint.
687 * config/arm/vfp.md (*movdi_vfp): Likewise.
688 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
689 "q" constraint for operands[0].
690
691 PR target/89369
692 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
693 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
694 pattern in a temporary buffer.
695 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
696 than 64-operands[2].
697
698 PR target/89361
699 * config/s390/s390.c (s390_indirect_branch_attrvalue,
700 s390_indirect_branch_settings): Define unconditionally.
701 (s390_set_current_function): Likewise, but guard the whole body except
702 the s390_indirect_branch_settings call with
703 #if S390_USE_TARGET_ATTRIBUTE.
704 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
705
706 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
707 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
708 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
709 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
710 HOST_WIDE_INT_1U instead of 1ULL.
711 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
712 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
713 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
714 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
715 instead of 1UL.
716 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
717 instead of 1ul.
718
719 2019-02-18 Martin Jambor <mjambor@suse.cz>
720
721 PR tree-optimization/89209
722 * tree-sra.c (create_access_replacement): New optional parameter
723 reg_tree. Use it as a type if non-NULL and access type is not of
724 a register type.
725 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
726 to create_access_replacement.
727 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
728 Check lacc is non-NULL before attempting to re-create it on the RHS.
729
730 2019-02-18 Martin Liska <mliska@suse.cz>
731
732 PR ipa/89306
733 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
734 by default.
735 (symbol_table::free_edge): Recycle m_summary_id.
736 * cgraph.h (get_summary_id): New.
737 (symbol_table::release_symbol): Set m_summary_id to -1
738 by default.
739 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
740 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
741 function_summary to fast_function_summary.
742 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
743 * ipa-pure-const.c (class funct_state_summary_t):
744 Switch from function_summary to fast_function_summary.
745 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
746 (class ipa_ref_opt_summary_t): Switch from function_summary
747 to fast_function_summary.
748 * symbol-summary.h (class function_summary_base): New class
749 that is created from base of former function_summary.
750 (function_summary_base::unregister_hooks): New.
751 (class function_summary): Inherit from function_summary_base.
752 (class call_summary_base): New class
753 that is created from base of former call_summary.
754 (class call_summary): Inherit from call_summary_base.
755 (struct is_same): New.
756 (class fast_function_summary): New summary class.
757 (class fast_call_summary): New summary class.
758 * vec.h (vec_safe_grow_cleared): New function.
759
760 2019-02-18 Martin Liska <mliska@suse.cz>
761
762 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
763 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
764 * doc/tm.texi: Document new target hook.
765 * doc/tm.texi.in: Likewise.
766 * target.def: Add new target macro.
767 * gcc.c (find_fortran_preinclude_file): Do not search multilib
768 suffixes.
769
770 2019-02-17 Alan Modra <amodra@gmail.com>
771
772 PR target/89271
773 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
774 output reg on add insn.
775 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
776
777 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
778
779 PR target/89372
780 * config/i386/sse.md (ssedoublemode): Remove V4HI.
781 (PMULHRSW): Likewise.
782 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
783 TARGET_AVX2.
784 (ssse3_pmulhrswv4hi3): New expander.
785
786 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
787
788 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
789 MMX. Add isa attribute.
790
791 2019-02-16 Jakub Jelinek <jakub@redhat.com>
792
793 PR rtl-optimization/66152
794 * builtins.h (c_readstr): Declare.
795 * builtins.c (c_readstr): Remove forward declaration. Add
796 null_terminated_p argument, if false, read all bytes from the
797 string instead of stopping after '\0'.
798 * expr.c (string_cst_read_str): New function.
799 (store_expr): Use string_cst_read_str instead of
800 builtin_strncpy_read_str. Try to store by pieces the whole
801 exp_len first, and only if that fails, split it up into
802 store by pieces followed by clear_storage. Formatting fix.
803
804 * config/i386/i386.md (*movqi_internal): Remove static from
805 buf variable. Use output_asm_insn (buf, operands); return "";
806 instead of return buf;.
807 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
808 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
809 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
810
811 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
812
813 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
814 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
815 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
816 (CC1_SPEC): Likewise.
817 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
818
819 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
820
821 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
822 the base address on 64-bit strict-alignment platforms.
823
824 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
825
826 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
827
828 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
829
830 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
831
832 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
833
834 PR rtl-optimization/88308
835 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
836 on copied instruction.
837
838 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
839
840 * final.c (insn_current_reference_address): Replace test on JUMP_P
841 with test on jump_to_label_p.
842 * config/visium/visium-passes.def: New file.
843 * config/visium/t-visium (PASSES_EXTRA): Define.
844 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
845 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
846 (TRAMPOLINE_ALIGNMENT): Define.
847 * config/visium/visium.c (visium_option_override): Do not register
848 the machine-specific reorg pass here.
849 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
850 for the GR6.
851 (output_branch): Adjust threshold for long branch instruction.
852 * config/visium/visium.md (cpu): Move around.
853 (length): Adjust for the GR6.
854
855 2019-02-15 Richard Biener <rguenther@suse.de>
856 Jakub Jelinek <jakub@redhat.com>
857
858 PR tree-optimization/89278
859 * tree-loop-distribution.c: Include tree-eh.h.
860 (generate_memset_builtin, generate_memcpy_builtin): Call
861 rewrite_to_non_trapping_overflow on builtin->size before passing it
862 to force_gimple_operand_gsi.
863
864 2019-02-15 Jakub Jelinek <jakub@redhat.com>
865
866 PR other/89342
867 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
868 optimize_debug.
869 * opth-gen.awk: Likewise.
870
871 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
872
873 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
874 Enable MMX, SSE and SSE2 by default.
875 * config/i386/i386.c (ix86_option_override_internal): Do not
876 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
877
878 2019-02-14 Jakub Jelinek <jakub@redhat.com>
879
880 PR rtl-optimization/89354
881 * combine.c (make_extraction): Punt if extraction_mode is narrower
882 than len bits.
883
884 2019-02-14 Maya Rashish <coypu@sdf.org>
885
886 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
887 * config/netbsd-d.c: New file.
888 * config/t-netbsd: Add netbsd-d.o
889
890 2018-02-14 Steve Ellcey <sellcey@marvell.com>
891
892 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
893 affects_type_identity to true for aarch64_vector_pcs.
894 (aarch64_comp_type_attributes): New function.
895 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
896
897 2019-02-14 Tamar Christina <tamar.christina@arm.com>
898
899 PR target/88850
900 * config/arm/iterators.md (ANY64): Add V4HF.
901
902 2019-02-14 Martin Liska <mliska@suse.cz>
903
904 PR rtl-optimization/89242
905 * dce.c (delete_unmarked_insns): Call free_dominance_info we
906 process a transformation.
907
908 2019-02-14 Jakub Jelinek <jakub@redhat.com>
909
910 PR tree-optimization/89314
911 * fold-const.c (fold_binary_loc): Cast strlen argument to
912 const char * before dereferencing it. Formatting fixes.
913
914 PR middle-end/89284
915 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
916
917 2019-02-13 Ian Lance Taylor <iant@golang.org>
918
919 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
920 and set current index for other optimizations.
921
922 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
923
924 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
925 nonimmediate_operand as operand 2 predicate.
926 (vec_set<VF2_512_256:mode>_0): Ditto.
927 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
928 (*vec_concatv2si): Remove alternative 2.
929 (*vec_concatv4si_0): Use vm constraint for alternative 0.
930 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
931 (vec_concatv2di): Split alternatives 4,5,6 to ...
932 (*vec_concatv2di_0) ... new pattern.
933
934 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
935
936 PR target/89190
937 * config/arm/arm.c (ldm_stm_operation_p) Set
938 addr_reg_in_reglist correctly for first register.
939 (load_multiple_sequence): Remove dead base check.
940 (gen_ldm_seq): Correctly set write_back for Thumb-1.
941
942 2019-02-13 Tamar Christina <tamar.christina@arm.com>
943
944 PR target/88847
945 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
946 Expose as @aarch64_pred_mov.
947 * config/aarch64/aarch64.c (aarch64_classify_address):
948 Use expand_insn which legitimizes operands.
949
950 2019-02-13 Martin Liska <mliska@suse.cz>
951
952 * builtins.h (expand_builtin_with_bounds): Remove declaration.
953 * calls.c (struct arg_data): Remove special_slot, pointer_arg
954 and pointer_offset fields.
955 (initialize_argument_information): Remove usage of dead
956 fields.
957 * cgraph.h (struct cgraph_thunk_info): Remove
958 add_pointer_bounds_args.
959 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
960 fields.
961 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
962 fields.
963 * config/i386/i386.c (ix86_function_arg_advance): Remove
964 unrelated comment.
965 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
966 (def_builtin): Remove usage of dead
967 fields.
968 (ix86_add_new_builtins): Likewise.
969 * ipa-fnsummary.c (compute_fn_summary): Likewise.
970 * ipa-icf.c (sem_function::equals_wpa): Likewise.
971 (sem_function::init): Likewise.
972 (sem_variable::merge): Likewise.
973 * ipa-visibility.c (function_and_variable_visibility): Likewise.
974 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
975 * lto-cgraph.c (lto_output_node): Likewise.
976 (lto_output_varpool_node): Likewise.
977 (input_node): Likewise.
978 (input_varpool_node): Likewise.
979 * lto-streamer-out.c (lto_output): Likewise.
980 * tree-inline.c (expand_call_inline): Remove usage of
981 assign_stmts.
982 * tree-inline.h (struct copy_body_data): Likewise.
983 * varpool.c (varpool_node::dump): Likewise.
984
985 2019-02-13 Jakub Jelinek <jakub@redhat.com>
986
987 PR middle-end/89303
988 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
989 into pt->vars_contains_escaped_heap instead of setting
990 pt->vars_contains_escaped_heap to it.
991
992 PR middle-end/89281
993 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
994 INTVAL (size), compare it to GET_MODE_MASK instead of
995 1 << GET_MODE_BITSIZE.
996
997 PR target/89290
998 * config/i386/predicates.md (x86_64_immediate_operand): Allow
999 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
1000 -mcmodel=large.
1001
1002 2019-02-13 Martin Liska <mliska@suse.cz>
1003
1004 PR lto/88858
1005 * cfgrtl.c (remove_barriers_from_footer): New function.
1006 (try_redirect_by_replacing_jump): Use it.
1007 (cfg_layout_redirect_edge_and_branch): Likewise.
1008
1009 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
1010
1011 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
1012 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
1013 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
1014 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
1015 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
1016 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
1017 New BU_CRYPTO_2.
1018 * config/rs6000/rs6000.c (builtin_function_type)
1019 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
1020 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
1021 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
1022 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
1023 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
1024
1025 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
1026
1027 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
1028 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
1029
1030 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
1031
1032 PR target/89229
1033 * config/i386/i386.md (*movoi_internal_avx): Revert revision
1034 268678 and revision 268657.
1035 (*movti_internal): Likewise.
1036
1037 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
1038
1039 PR target/89233
1040 * config/s390/s390.c (s390_decompose_address): Update comment.
1041 (s390_check_qrst_address): Reject invalid address forms after
1042 LRA.
1043
1044 2019-02-12 Martin Liska <mliska@suse.cz>
1045
1046 PR lto/88876
1047 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
1048 we need default values of funct_state for a function that
1049 is not optimized.
1050
1051 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
1052
1053 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
1054 the object to pick the size of stores on strict-alignment platforms.
1055
1056 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
1057 (*movdi_insn_sp32): Likewise.
1058 (*movdi_insn_sp64): Likewise.
1059
1060 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
1061
1062 PR lto/88677
1063 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
1064 types that needs constructiong.
1065 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
1066
1067 2019-02-12 Richard Biener <rguenther@suse.de>
1068
1069 PR tree-optimization/89253
1070 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
1071 duplicate the loop.
1072
1073 2019-02-11 David Malcolm <dmalcolm@redhat.com>
1074
1075 PR lto/88147
1076 * input.c (selftest::test_line_offset_overflow): New selftest.
1077 (selftest::input_c_tests): Call it.
1078
1079 2019-02-11 Martin Sebor <msebor@redhat.com>
1080
1081 PR tree-optimization/88771
1082 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
1083 when -Wstringop-overflow is set.
1084 (builtin_memref::builtin_memref): Adjust excessive upper bound
1085 only when lower bound is not excessive.
1086 (maybe_diag_overlap): Detect and diagnose excessive bounds via
1087 -Wstringop-ovefflow.
1088 (maybe_diag_offset_bounds): Rename...
1089 (maybe_diag_access_bounds): ...to this.
1090 (check_bounds_or_overlap): Adjust for name change above.
1091
1092 2019-02-11 Martin Sebor <msebor@redhat.com>
1093
1094 PR c++/87996
1095 * builtins.c (max_object_size): Move from here...
1096 * builtins.h (max_object_size): ...and here...
1097 * tree.c (max_object_size): ...to here...
1098 * tree.h (max_object_size): ...and here.
1099
1100 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
1101
1102 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
1103 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
1104 for correct semantics.
1105
1106 2019-02-11 Alan Modra <amodra@gmail.com>
1107
1108 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
1109 -mlongcall and -mpltseq.
1110 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
1111 (RS/6000 and PowerPC Options <-mpltseq>): Document.
1112 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
1113 * config/rs6000/sysv4.opt (mpltseq): New option.
1114 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
1115 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
1116 support is lacking. Don't allow -mpltseq with -mbss-plt.
1117 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
1118 -mpltseq given for ELFv1.
1119 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
1120 Only use UNSPEC_PLTSEQ for inline PLT calls.
1121 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
1122 use UNSPEC_PLTSEQ for inline PLT calls.
1123 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
1124 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
1125 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
1126 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1127 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1128 (pltseq_mtctr_<mode>): Likewise.
1129
1130 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1131
1132 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
1133 Solaris ld.
1134 * configure: Regenerate.
1135
1136 2019-02-11 Jakub Jelinek <jakub@redhat.com>
1137
1138 PR bootstrap/88714
1139 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
1140 instead of r.
1141
1142 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
1143
1144 * function.c (assign_parm_setup_block): Use the stored
1145 size, not the passed size, when allocating stack-space,
1146 also for a parameter with alignment larger than
1147 MAX_SUPPORTED_STACK_ALIGNMENT.
1148
1149 2019-02-11 Martin Liska <mliska@suse.cz>
1150
1151 PR ipa/89009
1152 * ipa-cp.c (build_toporder_info): Remove usage of a param.
1153 * ipa-inline.c (inline_small_functions): Likewise.
1154 * ipa-pure-const.c (propagate_pure_const): Likewise.
1155 (propagate_nothrow): Likewise.
1156 * ipa-reference.c (propagate): Likewise.
1157 * ipa-utils.c (struct searchc_env): Remove unused field.
1158 (searchc): Always search across AVAIL_INTERPOSABLE.
1159 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
1160 the only called IPA pure const can properly not propagate
1161 across interposable boundary.
1162 * ipa-utils.h (ipa_reduced_postorder): Remove param.
1163
1164 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
1165
1166 * config/nds32/nds32.md (call_internal, call_value_internal,
1167 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
1168
1169 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
1170
1171 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
1172 typo.
1173
1174 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
1175
1176 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
1177 in comments
1178
1179 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1180
1181 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
1182
1183 2019-02-10 Jakub Jelinek <jakub@redhat.com>
1184
1185 PR tree-optimization/89268
1186 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
1187 if preds is non-NULL.
1188
1189 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1190
1191 PR lto/89272
1192 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
1193 polymorphic types.
1194
1195 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1196
1197 * config/nds32/nds32.md (trap): New pattern.
1198
1199 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
1200
1201 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
1202 dwarf span.
1203
1204 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
1205
1206 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
1207 to split POST_INC.
1208
1209 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1210
1211 * ipa-visibility.c (localize_node): Also do not localize
1212 LDPR_PREVAILING_DEF_IRONLY_EXP.
1213
1214 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1215
1216 PR lto/87957
1217 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
1218 instead of type_with_linkage.
1219
1220 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
1221
1222 PR ipa/88755
1223 * params.def (uninlined-function-insns, uninlined-function-time,
1224 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
1225 bound so we don't get overflows.
1226
1227 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
1228
1229 * config/rs6000/rs6000-string.c (expand_compare_loop,
1230 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
1231 memcmp/strncmp.
1232
1233 2019-02-09 Jakub Jelinek <jakub@redhat.com>
1234
1235 PR middle-end/89246
1236 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1237 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
1238 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
1239
1240 2019-02-09 Alan Modra <amodra@gmail.com>
1241
1242 PR target/88343
1243 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
1244 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
1245 setup.
1246
1247 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
1248
1249 PR middle-end/88560
1250 * lra-constraints.c (process_alt_operands): Don't increase reject
1251 for memory when offset memory is required.
1252
1253 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
1254
1255 * config/s390/vector.md: Implement vector copysign.
1256
1257 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1258
1259 * expr.c (expand_constructor): Correct indentations.
1260
1261 2019-02-08 Richard Biener <rguenther@suse.de>
1262
1263 PR tree-optimization/89247
1264 * tree-if-conv.c: Include tree-cfgcleanup.h.
1265 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
1266 (tree_if_conversion): Pass through predicate vector.
1267 (pass_if_conversion::execute): Do CFG cleanup and SSA update
1268 inline, see if any if-converted loops we refrece in
1269 LOOP_VECTORIZED calls vanished and fixup.
1270 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
1271
1272 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
1273
1274 * config/s390/constraints.md (jdd): New constraint.
1275
1276 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
1277
1278 PR target/89229
1279 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
1280 upper 16 vector registers without TARGET_AVX512VL.
1281 (*movti_internal): Likewise.
1282
1283 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1284
1285 PR rtl-optimization/89234
1286 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
1287 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
1288 (copy_reg_eh_region_note_backward): Likewise.
1289
1290 2019-02-08 Richard Biener <rguenther@suse.de>
1291
1292 PR middle-end/89223
1293 * tree-data-ref.c (initialize_matrix_A): Fail if constant
1294 doesn't fit in HWI.
1295 (analyze_subscript_affine_affine): Handle failure from
1296 initialize_matrix_A.
1297
1298 2019-02-08 Jakub Jelinek <jakub@redhat.com>
1299
1300 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
1301 cfun everywhere.
1302
1303 2019-02-07 David Malcolm <dmalcolm@redhat.com>
1304
1305 PR tree-optimization/86637
1306 PR tree-optimization/89235
1307 * tree-vect-loop.c (optimize_mask_stores): Add an
1308 auto_purge_vect_location sentinel to ensure that vect_location is
1309 purged on exit.
1310 * tree-vectorizer.c
1311 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
1312 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
1313 to ensure that vect_location is purged on exit.
1314 (pass_slp_vectorize::execute): Likewise, replacing the manual
1315 reset.
1316 * tree-vectorizer.h (class auto_purge_vect_location): New class.
1317
1318 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1319
1320 * config/aarch64/iterators.md (max_opp): New code_attr.
1321 (USMAX): New code iterator.
1322 * config/aarch64/predicates.md (aarch64_smin): New predicate.
1323 (aarch64_smax): Likewise.
1324 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
1325 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
1326 MINUS (MAX MIN).
1327
1328 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
1329
1330 PR target/89229
1331 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
1332 for TARGET_AVX512VL.
1333 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
1334
1335 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
1336
1337 * config/s390/s390-builtin-types.def: Add new types.
1338 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
1339 (s390_vec_xlw4): Make the memory operand into a const pointer.
1340 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
1341 float.
1342 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
1343 a new vector type with the alignment of the scalar memory operand.
1344
1345 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
1346 Jakub Jelinek <jakub@redhat.com>
1347
1348 PR bootstrap/88714
1349 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
1350 arm_count_ldrdstrd_insns): New declarations.
1351 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
1352 MINUS.
1353 (valid_operands_ldrd_strd): New function.
1354 (arm_count_ldrdstrd_insns): New function.
1355 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
1356 sets instead of single DImode set and define new insns to match this.
1357
1358 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1359
1360 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
1361 Make it a C initializer.
1362
1363 2019-02-07 Tamar Christina <tamar.christina@arm.com>
1364
1365 PR/target 88850
1366 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
1367
1368 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1369
1370 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
1371 Use neon_dot<q> for type.
1372 (neon_<sup>dot_lane<vsi2qi>): Likewise.
1373
1374 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1375
1376 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
1377 Use neon_dot<q> for type.
1378 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
1379 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
1380
1381 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
1382
1383 PR rtl-optimization/89225
1384 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
1385 sizes check.
1386
1387 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
1388
1389 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
1390 after restoring registers saved to allocate the frame on Windows.
1391
1392 2019-02-06 Richard Biener <rguenther@suse.de>
1393
1394 PR tree-optimization/89182
1395 * graphite.h (cached_scalar_evolution_in_region): Declare.
1396 * graphite.c (struct seir_cache_key): New.
1397 (struct sese_scev_hash): Likewise.
1398 (seir_cache): New global.
1399 (cached_scalar_evolution_in_region): New function.
1400 (graphite_transform_loops): Allocate and release seir_cache.
1401 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
1402 cached_scalar_evolution_in_region.
1403 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1404 Simplify.
1405 (scop_detection::graphite_can_represent_expr: Use
1406 cached_scalar_evolution_in_region.
1407 (scop_detection::stmt_simple_for_scop_p): Likewise.
1408 (find_params_in_bb): Likewise.
1409 (gather_bbs::before_dom_children): Likewise.
1410 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
1411 (add_loop_constraints): Likewise.
1412
1413 2019-02-06 Jakub Jelinek <jakub@redhat.com>
1414
1415 PR middle-end/89210
1416 * fold-const-call.c (fold_const_vec_convert): Pass true as last
1417 operand to new_unary_operation only if both element types are integral
1418 and it isn't a widening conversion. Return NULL_TREE if
1419 new_unary_operation failed.
1420
1421 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
1422
1423 PR target/88856
1424 * config/s390/s390.md: Remove load and test FP splitter.
1425
1426 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1427
1428 PR target/89112
1429 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
1430 expand_compare_loop, expand_block_compare_gpr,
1431 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
1432 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
1433 #include "profile-count.h" and "predict.h" for types and functions
1434 needed to work with REG_BR_PROB notes.
1435
1436 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
1437
1438 PR target/89112
1439 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
1440 for the long branch case.
1441
1442 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1443
1444 PR target/89188
1445 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
1446 can throw, non-call exceptions are enabled and we can't delete
1447 dead exceptions or alter cfg. Set must_clean if
1448 delete_insn_and_edges returns true, don't set it blindly for calls.
1449 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
1450
1451 PR rtl-optimization/89195
1452 * combine.c (make_extraction): For MEMs, don't extract bytes outside
1453 of the original MEM.
1454
1455 2019-02-05 Martin Liska <mliska@suse.cz>
1456
1457 PR gcov-profile/89000
1458 * gcov.c (function_summary): Remove argument.
1459 (file_summary): New function.
1460 (print_usage): Replace tabs with spaces.
1461 (generate_results): Use new function file_summary.
1462
1463 2019-02-05 Jakub Jelinek <jakub@redhat.com>
1464
1465 PR target/89186
1466 * optabs.c (prepare_cmp_insn): Pass x and y to
1467 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
1468
1469 2019-02-05 Richard Biener <rguenther@suse.de>
1470
1471 PR middle-end/89150
1472 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
1473 (struct bitmap_element): Drop chain_prev so we properly recurse on
1474 the prev member, supporting tree views.
1475 (struct bitmap_head): GTY skip the obstack member.
1476
1477 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
1478
1479 PR c/88698
1480 * doc/extend.texi (Vector Extensions): Add an example of using vector
1481 types together with x86 intrinsics.
1482
1483 2019-02-04 Alan Modra <amodra@gmail.com>
1484
1485 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
1486 str[] size to 160, and comment.
1487
1488 2019-02-04 Alan Modra <amodra@gmail.com>
1489
1490 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
1491 (rs6000_pltseq_template): Guard output of TLS markers with
1492 TARGET_TLS_MARKERS.
1493 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
1494 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
1495 to use inline PLT sequences.
1496 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1497 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1498 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
1499
1500 2019-02-04 Martin Liska <mliska@suse.cz>
1501
1502 PR ipa/88985
1503 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
1504 out when ipa_fn_summaries does not contain entry for callee.
1505
1506 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
1507
1508 * config/sparc/sparc.h: Remove superfluous blank lines.
1509 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
1510 (got_register_rtx): ...this.
1511 (sparc_got): Adjust to above renaming.
1512 (sparc_tls_got): Likewise.
1513 (sparc_delegitimize_address): Likewise.
1514 (sparc_output_mi_thunk): Likewise.
1515 (sparc_init_pic_reg): Likewise.
1516 (save_local_or_in_reg_p): Fix test on the GOT register.
1517 (USE_HIDDEN_LINKONCE): Move around.
1518 (get_pc_thunk_name): Likewise.
1519 (gen_load_pcrel_sym): Likewise.
1520 (load_got_register): Likewise.
1521
1522 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
1523
1524 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
1525 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
1526
1527 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1528
1529 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
1530 into consideration.
1531
1532 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
1533
1534 * config.gcc (with_nds32_lib, glibc):
1535 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
1536 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
1537 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
1538
1539 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
1540
1541 PR target/89071
1542 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
1543 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
1544 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
1545 (*rcpsf2_sse): Ditto.
1546 (*rsqrtsf2_sse): Ditto.
1547 (sse4_1_round<mode<2): Ditto.
1548
1549 2019-02-03 Richard Biener <rguenther@suse.de>
1550
1551 PR debug/87295
1552 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
1553 orig.
1554
1555 2019-02-02 Jakub Jelinek <jakub@redhat.com>
1556
1557 PR middle-end/87887
1558 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1559 Punt with warning on aggregate return or argument types. Ignore
1560 type/mode checking for uniform arguments.
1561
1562 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
1563
1564 * combine.c (try_combine): Do not print "Can't combine" messages unless
1565 printing failed combination attempts.
1566
1567 2019-02-01 Martin Jambor <mjambor@suse.cz>
1568
1569 PR hsa/87863
1570 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
1571 segment and global segment variables before making them static.
1572
1573 2019-02-01 Martin Jambor <mjambor@suse.cz>
1574
1575 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
1576 missed optimization dump with dump_enabled_p.
1577
1578 2019-02-01 Richard Biener <rguenther@suse.de>
1579
1580 PR middle-end/88597
1581 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
1582 the instantiate cache.
1583 (instantiate_scev_binary): Elide second operand procesing
1584 if equal to the first.
1585 * tree-chrec.c (chrec_contains_symbols): Add visited set.
1586 (chrec_contains_undetermined): Likewise.
1587 (tree_contains_chrecs): Likewise.
1588
1589 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
1590
1591 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
1592
1593 2019-02-01 Jakub Jelinek <jakub@redhat.com>
1594
1595 PR tree-optimization/89143
1596 * wide-int-range.h (wide_int_range_absu): Declare.
1597 * wide-int-range.cc (wide_int_range_absu): New function.
1598 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
1599
1600 PR tree-optimization/88107
1601 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
1602 instead of assertion that eh_region_outermost is non-NULL, if it
1603 is NULL, set *ALL to true and return NULL.
1604 (move_sese_region_to_fn): Adjust caller, if all is set, call
1605 duplicate_eh_regions with NULL region.
1606
1607 2019-02-01 Richard Biener <rguenth@suse.de>
1608
1609 PR rtl-optimization/88593
1610 * mode-switching.c (optimize_mode_switching): Free dominators before
1611 calling cleanup_cfg.
1612
1613 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
1614
1615 PR tree-optimization/88932
1616 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
1617
1618 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1619
1620 PR middle-end/89137
1621 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
1622 bogus clang warning.
1623
1624 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
1625
1626 PR target/89071
1627 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
1628 alternative to avoid partial SSE register stall for TARGET_AVX.
1629 (truncdfsf2): Ditto.
1630 (sse4_1_round<mode>2): Ditto.
1631
1632 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
1633
1634 PR tree-optimization/89008
1635 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
1636 process anything of the form X * 0.
1637
1638 2019-01-31 Richard Biener <rguenther@suse.de>
1639
1640 PR tree-optimization/89135
1641 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
1642 with abnormal preds.
1643
1644 2019-01-31 Jakub Jelinek <jakub@redhat.com>
1645
1646 PR sanitizer/89124
1647 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
1648 always_inline callees into no_sanitize_address callers.
1649
1650 2019-01-31 Richard Biener <rguenther@suse.de>
1651
1652 PR rtl-optimization/89115
1653 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
1654
1655 2019-01-30 Martin Sebor <msebor@redhat.com>
1656
1657 PR other/89106
1658 * doc/extend.texi (cast to a union): Correct and expand.
1659
1660 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
1661
1662 PR rtl-optimization/87246
1663 * lra-constraints.c (simplify_operand_subreg): Reload memory
1664 in subreg if the address became invalid.
1665
1666 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
1667
1668 PR target/87064
1669 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
1670 Disable for little-endian.
1671
1672 2019-01-30 Richard Biener <rguenther@suse.de>
1673
1674 PR rtl-optimization/89115
1675 * opts.c (default_options_optimization): Reduce
1676 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
1677 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
1678 to the default.
1679
1680 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
1681
1682 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
1683 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
1684 type of vector element when vec_extract is implemented by direct
1685 move.
1686
1687 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
1688
1689 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
1690
1691 2019-01-30 Richard Biener <rguenther@suse.de>
1692
1693 PR tree-optimization/89111
1694 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
1695 canonicalization to appropriately sized access types.
1696
1697 2019-01-30 Jakub Jelinek <jakub@redhat.com>
1698
1699 PR c++/89105
1700 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
1701 for arguments to functions that are TU-local and shouldn't be
1702 referenced by assembly.
1703
1704 2019-01-30 Ulrich Drepper <drepper@redhat.com>
1705
1706 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
1707 after '='.
1708
1709 2019-01-29 Martin Sebor <msebor@redhat.com>
1710
1711 PR c/88956
1712 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
1713
1714 2019-01-29 Jakub Jelinek <jakub@redhat.com>
1715
1716 PR c++/66676
1717 PR ipa/89104
1718 * omp-simd-clone.c (simd_clone_clauses_extract)
1719 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
1720 OMP_CLAUSE_ALIGNED_ALIGNMENT.
1721
1722 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
1723
1724 * config.gcc: Force .init_array for ARC.
1725
1726 2019-01-29 Richard Biener <rguenther@suse.de>
1727
1728 PR debug/87295
1729 * dwarf2out.c (collect_skeleton_dies): New helper.
1730 (copy_decls_for_unworthy_types): Call it.
1731 (build_abbrev_table): Assert we do not try to replace
1732 DW_AT_signature refs with local refs.
1733
1734 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1735
1736 PR middle-end/89002
1737 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
1738 for lastprivate/linear IV, push gimplify context around gimplify_assign
1739 and, if it needed any temporaries, pop it into a gimple bind around the
1740 sequence.
1741
1742 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
1743
1744 * common.opt (-Wattribute-alias): Remove "no-" from name.
1745 Make -Wattribute-alias command line option and
1746 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
1747
1748 2019-01-28 Jakub Jelinek <jakub@redhat.com>
1749
1750 PR target/89073
1751 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
1752 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
1753 x86 ISA options.
1754 (bmi2): Add missing @opindex.
1755 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
1756 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
1757 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
1758 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
1759 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
1760 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
1761 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
1762 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
1763 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
1764 xsavec, xsaveopt and xsaves options.
1765
1766 2019-01-28 Richard Biener <rguenther@suse.de>
1767
1768 PR debug/89076
1769 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
1770 support removal.
1771
1772 2019-01-28 Richard Biener <rguenther@suse.de>
1773
1774 PR tree-optimization/88739
1775 * tree-cfg.c (verify_types_in_gimple_reference): Verify
1776 BIT_FIELD_REFs only are applied to mode-precision operands
1777 when they are integral.
1778 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
1779 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
1780 BIT_FIELD_REFs of non-mode-precision integral operands.
1781
1782 2019-01-27 Jakub Jelinek <jakub@redhat.com>
1783
1784 PR target/87214
1785 * config/i386/sse.md
1786 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
1787 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
1788 first constants in pairs are multiples of 2. Formatting fixes.
1789 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
1790 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
1791 first constants in each quadruple are multiples of 4. Formatting fixes.
1792
1793 2019-01-26 Martin Jambor <mjambor@suse.cz>
1794
1795 PR ipa/88933
1796 * tree-inline.c: Include tree-cfgcleanup.h.
1797 (delete_unreachable_blocks_update_callgraph): Move...
1798 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
1799 ...here, make externally visible, make second argument bool, adjust
1800 all callers.
1801 * tree-cfgcleanup.c: Include cgraph.h.
1802 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
1803 Declare.
1804 * ipa-prop.c: Include tree-cfgcleanup.h.
1805 (ipcp_transform_function): Call
1806 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
1807
1808 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
1809
1810 PR rtl-optimization/88846
1811 * ira.c (process_set_for_memref_referenced_p): New.
1812 (memref_referenced_p): Add new param. Use
1813 process_set_for_memref_referenced_p. Add new switch cases.
1814 (memref_used_between_p): Pass new arg to memref_referenced_p.
1815
1816 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
1817
1818 PR target/88469
1819 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
1820 argument ABI_BREAK. Set to true if the calculated alignment has
1821 changed in gcc-9. Check bit-fields for their base type alignment.
1822 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
1823 (aarch64_function_arg_boundary): Likewise.
1824 (aarch64_gimplify_va_arg_expr): Likewise.
1825
1826 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1827
1828 PR middle-end/89037
1829 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
1830 instead of accessing TREE_INT_CST_ELT directly.
1831
1832 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
1833
1834 * doc/sourcebuild.texi (Environment attributes): Add fenv and
1835 fenv_exceptions description.
1836
1837 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
1838
1839 PR rtl-optimization/87763
1840 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
1841 Allow SUBREG when matching CC_NZmode compare.
1842
1843 2019-01-25 Richard Biener <rguenther@suse.de>
1844
1845 PR tree-optimization/89049
1846 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
1847 Look at the pattern stmt to determine if the stmt is vectorized.
1848
1849 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
1850
1851 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
1852 (pred_mov<mode>): Handle all-register forms using both a new
1853 alternative and a split.
1854
1855 2019-01-25 Richard Biener <rguenther@suse.de>
1856
1857 PR tree-optimization/86865
1858 * graphite-scop-detection.c (scop_detection::can_represent_loop):
1859 Reject non-do-while loops.
1860
1861 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
1862
1863 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
1864 * config/rs6000/constraints.md (Q constraint): Use REG_P.
1865 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
1866 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1867 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
1868 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1869 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
1870 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
1871 vlogical_operand, gpc_reg_operand, int_reg_operand,
1872 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
1873 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
1874 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
1875 (save_world_operation, restore_world_operation, lmw_operation,
1876 stmw_operation): Use MEM_P and REG_P.
1877 (tie_operand): Use MEM_P.
1878 (vrsave_operation, crsave_operation): Use REG_P.
1879 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
1880 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
1881 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
1882 (call_operand): Use HARD_REGISTER_P.
1883 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
1884 Use CONST_INT_P.
1885 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
1886 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
1887 quad_aligned_load_p, replace_swapped_aligned_store,
1888 recombine_lvx_pattern, replace_swapped_aligned_load,
1889 recombine_stvx_pattern): Use MEM_P.
1890 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
1891 Use MEM_P and SYMBOL_REF_P.
1892 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
1893 (insn_is_swappable_p): Use REG_P and MEM_P.
1894 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
1895 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
1896 Use CONST_INT_P.
1897 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1898 Use CONST_DOUBLE_P.
1899 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1900 CONST_WIDE_INT_P.
1901 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
1902 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
1903 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
1904 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
1905 reg_or_subregno:
1906 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1907 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
1908 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
1909 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
1910 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
1911 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
1912 rs6000_split_logical_di): Use CONST_INT_P.
1913 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
1914 REG_P and SYMBOL_REF_P.
1915 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
1916 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
1917 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
1918 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
1919 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
1920 (small_data_operand, print_operand_address): Use CONST_INT_P and
1921 SYMBOL_REF_P.
1922 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
1923 (rs6000_init_hard_regno_mode_ok, direct_move_p):
1924 Use HARD_REGISTER_NUM_P.
1925 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
1926 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
1927 SUBREG_P and SYMBOL_REF_P.
1928 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
1929 and HARD_REGISTER_NUM_P.
1930 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
1931 reg_or_subregno.
1932 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1933 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1934 MEM_P and REG_P.
1935 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
1936 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
1937 find_addr_reg): Use REG_P.
1938 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
1939 (rs6000_emit_le_vsx_move): Use SUBREG_P.
1940 (offsettable_ok_by_alignment, constant_pool_expr_p,
1941 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
1942 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
1943 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
1944 rs6000_assemble_integer, create_TOC_reference,
1945 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
1946 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
1947 (rs6000_split_vec_extract_var): Use reg_or_subregno.
1948 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1949 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1950 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1951 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1952 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
1953 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
1954 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
1955 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
1956 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
1957 and cbranch<mode>4): Use CONST_INT_P.
1958 (multiple define_splits): Use REG_P and SUBREG_P.
1959 (define_expands call, call_value): Use MEM_P.
1960 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
1961 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
1962 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
1963 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
1964 and HARD_REGISTER_NUM_P.
1965 (multiple define_splits): Use HARD_REGISTER_NUM_P.
1966
1967 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
1968
1969 PR rtl-optimization/88948
1970 * rtl.h (prepare_copy_insn): New prototype.
1971 * gcse.c (prepare_copy_insn): New function, split out from
1972 process_insert_insn.
1973 (process_insert_insn): Use prepare_copy_insn.
1974 * store-motion.c (replace_store_insn): Use prepare_copy_insn
1975 instead of gen_move_insn.
1976
1977 2019-01-24 Jakub Jelinek <jakub@redhat.com>
1978
1979 PR debug/89006
1980 * config/i386/i386.c (ix86_pic_register_p): Return true for
1981 UNSPEC_SET_GOT too.
1982
1983 PR tree-optimization/88964
1984 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1985 punt if HONOR_SNANS (chrec).
1986
1987 PR middle-end/89015
1988 * tree-nested.c (convert_nonlocal_reference_stmt,
1989 convert_local_reference_stmt, convert_tramp_reference_stmt,
1990 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
1991 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
1992 or GIMPLE_OMP_TASK.
1993
1994 PR tree-optimization/89027
1995 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
1996 for "omp simd array" variables.
1997
1998 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
1999
2000 PR target/88469
2001 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
2002 force the alignment of m_val.
2003
2004 2019-01-24 Richard Biener <rguenther@suse.de>
2005
2006 PR lto/87187
2007 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
2008 When in "legacy" debug mode make sure to reset self-origins.
2009
2010 2019-01-24 Martin Liska <mliska@suse.cz>
2011
2012 PR gcov-profile/88994
2013 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
2014 result will be always smaller or equal to the original.
2015 * gcov.c (mangle_name): Fix else branch where we should
2016 also copy to PTR and shift the pointer.
2017
2018 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
2019
2020 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
2021 * vr-values.c (find_case_label_ranges): Fix a comment typo.
2022
2023 2019-01-23 Bin Cheng <bin.cheng@arm.com>
2024 Steve Ellcey <sellcey@marvell.com>
2025
2026 PR target/85711
2027 * recog.c (address_operand): Return false on wrong mode for address.
2028 (constrain_operands): Check for mode with 'p' constraint.
2029
2030 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
2031
2032 PR target/88998
2033 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
2034 Disparage MMX alternative.
2035 (sse2_cvtpd2pi): Ditto.
2036 (sse2_cvttpd2pi): Ditto.
2037
2038 2019-01-23 David Malcolm <dmalcolm@redhat.com>
2039
2040 PR driver/89014
2041 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
2042 use-after-free of the result of
2043 aarch64_get_extension_string_for_isa_flags.
2044
2045 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2046
2047 PR c/44715
2048 * doc/extend.texi: Document break and continue behavior in
2049 statement expressions.
2050
2051 2019-01-23 Richard Biener <rguenther@suse.de>
2052
2053 PR tree-optimization/89008
2054 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
2055 not leave another stray operand.
2056
2057 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2058
2059 * BASE-VER: Bump to 9.0.1.
2060
2061 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
2062
2063 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
2064 thunk that returns by reference, use the type of the return object
2065 of the thunk instead of that of the alias to build the dereference.
2066
2067 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
2068
2069 * config/arc/atomic.md: Add operand to DMB instruction.
2070
2071 2019-01-23 Jakub Jelinek <jakub@redhat.com>
2072
2073 PR tree-optimization/88964
2074 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
2075 build_zero_cst instead of build_int_cst. Return false for loop
2076 invariants which honor signed zeros.
2077
2078 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
2079
2080 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
2081
2082 2019-01-22 Jakub Jelinek <jakub@redhat.com>
2083
2084 PR target/88965
2085 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
2086 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
2087 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
2088
2089 PR middle-end/88968
2090 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
2091 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
2092
2093 PR target/87064
2094 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
2095 Disable for little endian.
2096
2097 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
2098
2099 PR target/88469
2100 * config/arm/arm.c (arm_needs_double_word_align): Check
2101 DECL_BIT_FIELD_TYPE.
2102
2103 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
2104 H.J. Lu <hongjiu.lu@intel.com>
2105
2106 PR target/88909
2107 * config/i386/i386-builtin.def: Add mask2 to all builtin
2108 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
2109 SPECIAL_ARGS.
2110 * config/i386/i386.c (BDESC): Add mask2 to the definition.
2111 (BDESC_FIRST): Likewise.
2112 (define_builtin): Add an argument for mask2. Updated to handle
2113 both ix86_isa_flags and ix86_isa_flags2.
2114 (define_builtin_const): Likewise.
2115 (define_builtin_pure): Likewise.
2116 (define_builtin2): Deleted.
2117 (define_builtin_const2): Likewise.
2118 (builtin_description): Add a member, mask2.
2119 (bdesc_*): Add mask2 to builtin initializations.
2120 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
2121 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
2122 support.
2123 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
2124
2125 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
2126
2127 PR target/88954
2128 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
2129 noplt attribute.
2130
2131 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
2132
2133 PR target/88469
2134 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
2135 alignment is dominated by a bitfield with 64-bit aligned base type.
2136 (arm_function_arg): Emit a warning if the alignment has changed since
2137 earlier GCC releases.
2138 (arm_function_arg_boundary): Likewise.
2139 (arm_setup_incoming_varargs): Likewise.
2140
2141 2019-01-22 Richard Biener <rguenther@suse.de>
2142
2143 PR tree-optimization/88862
2144 * graphite-scop-detection.c
2145 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
2146
2147 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
2148
2149 * doc/extend.tex (AMD GCN Function Attributes): New section.
2150 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
2151 * doc/invoke.texi (AMD GCN Options): New section.
2152 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
2153
2154 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
2155
2156 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
2157 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
2158
2159 2019-01-22 Jakub Jelinek <jakub@redhat.com>
2160
2161 PR tree-optimization/88044
2162 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
2163 is false in the first iteration, but !every_iteration, return false
2164 instead of true with niter->niter zero.
2165
2166 PR rtl-optimization/88904
2167 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
2168 any nonequal registers before processing BB_END (b).
2169
2170 PR target/88905
2171 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
2172 GET_MODE (op0).
2173 (expand_binop_directly, expand_doubleword_clz,
2174 expand_doubleword_popcount, expand_ctz, expand_ffs,
2175 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
2176
2177 PR rtl-optimization/49429
2178 PR target/49454
2179 PR rtl-optimization/86334
2180 PR target/88906
2181 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
2182 addressable from here...
2183 (emit_block_op_via_libcall): ... to here.
2184
2185 2019-01-22 Richard Biener <rguenther@suse.de>
2186
2187 * tree-vect-loop.c (vect_analyze_loop_operations): Use
2188 auto_vec for cost vector to fix memleak.
2189 (vectorize_fold_left_reduction): Properly gather SLP defs.
2190 (vectorizable_comparison): Do not swap operands to properly
2191 gather SLP defs.
2192
2193 2019-01-22 Alan Modra <amodra@gmail.com>
2194
2195 PR target/88614
2196 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
2197 stays a reg. Allow a const_int.
2198 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
2199 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
2200 (IS_NOMARK_TLSGETADDR): Define.
2201 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
2202 (rs6000_output_tlsargs): New function.
2203 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
2204 __tls_get_addr call takes an arg.
2205 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
2206 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
2207 delete split..
2208 (call_value_nonlocal_sysv): ..or here, delete split.
2209 (tls_gdld_nomark): Delete.
2210 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
2211 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
2212 (call_value_nonlocal_sysv): Likewise.
2213 (call_value_nonlocal_sysv_secure): Likewise.
2214 (call_value_nonlocal_aix): Likewise.
2215 (call_value_indirect_aix): Likewise.
2216 (call_value_indirect_elfv2): Likewise.
2217 (call_value_local32, call_value_local64): Disable for no-mark tls.
2218 (call_value_local_aix): Likewise.
2219
2220 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
2221
2222 PR target/88938
2223 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
2224 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
2225
2226 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
2227
2228 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
2229 string contents as hash_map keys.
2230
2231 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
2232
2233 PR c/88928
2234 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
2235 for rvalue context. Handle rvalues correctly. Use min_align_of_type
2236 instead of TYPE_ALIGN.
2237 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
2238 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
2239 pointer from TYPE_STUB_DECL.
2240
2241 2019-01-21 Richard Biener <rguenther@suse.de>
2242
2243 PR tree-optimization/88934
2244 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
2245 at the possibly non-constant operand.
2246 (vect_get_constant_vectors): Adjust.
2247
2248 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
2249
2250 PR target/71659
2251 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
2252 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
2253 instead of _X86INTRIN_H_INCLUDED.
2254 * onfig/i386/clwbintrin.h: Likewise.
2255 * config/i386/pkuintrin.h: Likewise.
2256 * config/i386/prfchwintrin.h: Likewise.
2257 * config/i386/rdseedintrin.h: Likewise.
2258 * config/i386/wbnoinvdintrin.h: Likewise.
2259 * config/i386/xsavecintrin.h: Likewise.
2260 * config/i386/xsavesintrin.h: Likewise.
2261 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
2262 * config/i386/xsaveintrin.h: Likewise.
2263 * config/i386/xsaveoptintrin.h: Likewise.
2264 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
2265 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
2266 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
2267 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
2268 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
2269 * config/i386/immintrin.h: Here.
2270
2271 2019-01-20 Martin Jambor <mjambor@suse.cz>
2272
2273 PR ipa/87615
2274 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
2275 with aa_walk_budget.
2276 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
2277 aa_walk_budget_p parameter.
2278 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
2279 walk. Updated all callers.
2280 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
2281 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
2282 unmodified_parm.
2283 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
2284 parameter info. Extract info from fbi. Pass fbi to recursive calls
2285 and to unmodified_parm.
2286 (phi_result_unknown_predicate): New parameter fbi, removed parameter
2287 info, updated call to will_be_nonconstant_expr_predicate.
2288 (param_change_prob): New parameter fbi, limit AA walking.
2289 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
2290 calls to various above functions.
2291 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
2292 parameter. Use it to limit AA walking.
2293 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
2294 fbi, limit AA walk.
2295 (detect_type_change): New parameter fbi, pass it on to
2296 detect_type_change_from_memory_writes.
2297 (detect_type_change_ssa): Likewise.
2298 (aa_overwalked): Removed.
2299 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
2300 accordingly, adjust to the neew AA limiting scheme.
2301 (parm_ref_data_preserved_p): Likewise.
2302 (ipa_compute_jump_functions_for_edge): Adjust call to
2303 get_dynamic_type.
2304 (ipa_analyze_call_uses): Likewise.
2305 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
2306 (ipa_analyze_node): Initialize aa_walk_budget.
2307 (ipcp_transform_function): Likewise.
2308 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
2309 to get_dynamic_type.
2310
2311 2019-01-19 Jakub Jelinek <jakub@redhat.com>
2312
2313 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
2314 outside of #if CHECKING_P code.
2315
2316 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
2317
2318 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
2319 New function, split out from...
2320 (loop_versioning::analyze_stride): ...here.
2321 (loop_versioning::find_per_loop_multiplication): Use gassign.
2322 (loop_versioning::analyze_term_using_scevs): Return a success code.
2323 (loop_versioning::analyze_arbitrary_term): New function.
2324 (loop_versioning::analyze_address_fragment): Use
2325 analyze_arbitrary_term if all else fails.
2326
2327 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
2328
2329 PR target/88892
2330 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
2331 operands.
2332
2333 2019-01-18 Richard Biener <rguenther@suse.de>
2334
2335 PR tree-optimization/88903
2336 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
2337 scalar stmts a SLP shift amount is composed of when detecting
2338 shifts by scalars.
2339
2340 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
2341
2342 PR target/88799
2343 * config/arm/arm-cpus.in (mp): New feature.
2344 (sec): New feature.
2345 (fgroup ARMv7ve): Add mp and sec features.
2346 (arch armv7-a): Add options to allow mp and sec extensions.
2347 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
2348 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
2349 extenstions to the base architecture.
2350 (cpu cortex-a8): Add sec extension to the base architecture.
2351 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
2352 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
2353 variants down to the base v7-a varaint.
2354 * config/arm/t-multilib (v7_a_arch_variants): New variable.
2355 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
2356 of permitted extensions for -march=armv7-a and for
2357 -mcpu=generic-armv7-a.
2358
2359 2019-01-18 Martin Liska <mliska@suse.cz>
2360
2361 * params.def: Fix comment.
2362 * tree-profile.c (gimple_init_gcov_profiler): Bump function
2363 name.
2364 (gimple_gen_ic_func_profiler): Likewise.
2365
2366 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2367
2368 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
2369 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
2370 and put in error checks for stack protector guard options.
2371 (aarch64_stack_protect_guard): New.
2372 (TARGET_STACK_PROTECT_GUARD): Define.
2373 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
2374 (reg_stack_protect_address<mode>): New.
2375 (stack_protect_set): Adjust for SSP_GLOBAL.
2376 (stack_protect_test): Likewise.
2377 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
2378 (-mstack-protector-guard): Likewise.
2379 (-mstack-protector-guard-offset): Likewise.
2380
2381 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2382
2383 PR tree-optimization/86214
2384 * tree-inline.h (struct copy_body_data): Add
2385 add_clobbers_to_eh_landing_pads member.
2386 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
2387 (copy_edges_for_bb): Call it if EH edge destination is <
2388 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
2389 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
2390 if flag_stack_reuse != SR_NONE and clear it afterwards.
2391
2392 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
2393
2394 PR target/85596
2395 * doc/install.texi (with-multilib-list): Document for aarch64.
2396
2397 2019-01-18 Jakub Jelinek <jakub@redhat.com>
2398
2399 PR target/88734
2400 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
2401 (("..."))) with ("...").
2402
2403 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
2404
2405 * doc/extend.texi (Built-in Functions for Memory Model Aware
2406 Atomic Operations): Document atomic fetch and nand.
2407
2408 2019-01-18 Martin Liska <mliska@suse.cz>
2409 Richard Biener <rguenther@suse.de>
2410
2411 PR middle-end/88587
2412 * cgraph.h (create_version_clone_with_body): Add new argument
2413 with attributes.
2414 * cgraphclones.c (cgraph_node::create_version_clone): Add
2415 DECL_ATTRIBUTES to a newly created decl. And call
2416 valid_attribute_p so that proper cl_target_optimization_node
2417 is set for the newly created declaration.
2418 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
2419 for declaration.
2420 (expand_target_clones): Do not call valid_attribute_p, it must
2421 be already done.
2422 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
2423 vector types.
2424
2425 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2426
2427 PR target/88734
2428 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
2429 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
2430 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
2431
2432 2019-01-17 Martin Sebor <msebor@redhat.com>
2433
2434 PR middle-end/88273
2435 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
2436 Handle anti-ranges the same as no range at all.
2437
2438 2018-01-17 Steve Ellcey <sellcey@cavium.com>
2439
2440 * config/aarch64/aarch64.c (cgraph.h): New include.
2441 (intl.h): New include.
2442 (supported_simd_type): New function.
2443 (currently_supported_simd_type): Ditto.
2444 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
2445 (aarch64_simd_clone_adjust): Ditto.
2446 (aarch64_simd_clone_usable): Ditto.
2447 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
2448 (TARGET_SIMD_CLONE_ADJUST): Ditto.
2449 (TARGET_SIMD_CLONE_USABLE): Ditto.
2450 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
2451 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
2452 call.
2453
2454 2019-01-17 Martin Sebor <msebor@redhat.com>
2455
2456 PR tree-optimization/88800
2457 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
2458 NO_WARNING bit here. Avoid folding out-of-bounds calls.
2459 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
2460 redundant argument. Add new argument and issue diagnostics under
2461 its control. Detect out-of-bounds access even with warnings
2462 disabled.
2463 (check_bounds_or_overlap): Change return type. Add argument.
2464 (wrestrict_dom_walker::check_call): Adjust.
2465 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
2466 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
2467 check_bounds_or_overlap's return value.
2468 (handle_builtin_stxncpy): Same.
2469 (handle_builtin_strcat): Same.
2470
2471 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2472 Kwok Cheung Yeung <kcy@codesourcery.com>
2473 Julian Brown <julian@codesourcery.com>
2474 Tom de Vries <tom@codesourcery.com>
2475
2476 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
2477
2478 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2479
2480 * doc/sourcebuild.texi: Document dg-require-effective-target
2481 llvm_binutils and offload_gcn.
2482
2483 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2484 Kwok Cheung Yeung <kcy@codesourcery.com>
2485 Julian Brown <julian@codesourcery.com>
2486 Tom de Vries <tom@codesourcery.com>
2487
2488 * doc/sourcebuild.texi: Document dg-required-effective-target
2489 exceptions.
2490
2491 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2492 Kwok Cheung Yeung <kcy@codesourcery.com>
2493 Julian Brown <julian@codesourcery.com>
2494 Tom de Vries <tom@codesourcery.com>
2495 Jan Hubicka <hubicka@ucw.cz>
2496 Martin Jambor <mjambor@suse.cz>
2497
2498 * config.gcc: Add amdgcn*-*-amdhsa configuration.
2499 * configure.ac: Check for dlopen.
2500 * configure: Regenerate.
2501
2502 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2503 Kwok Cheung Yeung <kcy@codesourcery.com>
2504 Julian Brown <julian@codesourcery.com>
2505 Tom de Vries <tom@codesourcery.com>
2506 Jan Hubicka <hubicka@ucw.cz>
2507 Martin Jambor <mjambor@suse.cz>
2508
2509 * common/config/gcn/gcn-common.c: New file.
2510 * config/gcn/driver-gcn.c: New file.
2511 * config/gcn/gcn-builtins.def: New file.
2512 * config/gcn/gcn-hsa.h: New file.
2513 * config/gcn/gcn-modes.def: New file.
2514 * config/gcn/gcn-opts.h: New file.
2515 * config/gcn/gcn-passes.def: New file.
2516 * config/gcn/gcn-protos.h: New file.
2517 * config/gcn/gcn-run.c: New file.
2518 * config/gcn/gcn-tree.c: New file.
2519 * config/gcn/gcn.c: New file.
2520 * config/gcn/gcn.h: New file.
2521 * config/gcn/gcn.opt: New file.
2522 * config/gcn/t-gcn-hsa: New file.
2523
2524 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
2525 Kwok Cheung Yeung <kcy@codesourcery.com>
2526 Julian Brown <julian@codesourcery.com>
2527 Tom de Vries <tom@codesourcery.com>
2528 Jan Hubicka <hubicka@ucw.cz>
2529 Martin Jambor <mjambor@suse.cz>
2530
2531 * config/gcn/constraints.md: New file.
2532 * config/gcn/gcn-valu.md: New file.
2533 * config/gcn/gcn.md: New file.
2534 * config/gcn/predicates.md: New file.
2535
2536 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
2537
2538 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
2539 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
2540 (stmt_uses_0_or_null_in_undefined_way): Likewise.
2541 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
2542
2543 2019-01-17 Tamar Christina <tamar.christina@arm.com>
2544
2545 PR target/88851
2546 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
2547 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
2548 it and document registers.
2549
2550 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2551
2552 * config/aarch64/aarch64.c (ares_tunings): Define.
2553 * config/aarch64/aarch64-cores.def (ares): Use the above.
2554
2555 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2556
2557 PR target/88794
2558 Revert:
2559 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
2560
2561 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
2562 (_mm512_fixupimm_round_pd): Update parameters and builtin.
2563 (_mm512_maskz_fixupimm_round_pd): Ditto.
2564 (_mm512_fixupimm_round_ps): Ditto.
2565 (_mm512_maskz_fixupimm_round_ps): Ditto.
2566 (_mm_fixupimm_round_sd): Ditto.
2567 (_mm_maskz_fixupimm_round_sd): Ditto.
2568 (_mm_fixupimm_round_ss): Ditto.
2569 (_mm_maskz_fixupimm_round_ss): Ditto.
2570 (_mm512_fixupimm_pd): Ditto.
2571 (_mm512_maskz_fixupimm_pd): Ditto.
2572 (_mm512_fixupimm_ps): Ditto.
2573 (_mm512_maskz_fixupimm_ps): Ditto.
2574 (_mm_fixupimm_sd): Ditto.
2575 (_mm_maskz_fixupimm_sd): Ditto.
2576 (_mm_fixupimm_ss): Ditto.
2577 (_mm_maskz_fixupimm_ss): Ditto.
2578 (_mm512_mask_fixupimm_round_pd): Update builtin.
2579 (_mm512_mask_fixupimm_round_ps): Ditto.
2580 (_mm_mask_fixupimm_round_sd): Ditto.
2581 (_mm_mask_fixupimm_round_ss): Ditto.
2582 (_mm512_mask_fixupimm_pd): Ditto.
2583 (_mm512_mask_fixupimm_ps): Ditto.
2584 (_mm_mask_fixupimm_sd): Ditto.
2585 (_mm_mask_fixupimm_ss): Ditto.
2586 * config/i386/avx512vlintrin.h:
2587 (_mm256_fixupimm_pd): Update parameters and builtin.
2588 (_mm256_maskz_fixupimm_pd): Ditto.
2589 (_mm256_fixupimm_ps): Ditto.
2590 (_mm256_maskz_fixupimm_ps): Ditto.
2591 (_mm_fixupimm_pd): Ditto.
2592 (_mm_maskz_fixupimm_pd): Ditto.
2593 (_mm_fixupimm_ps): Ditto.
2594 (_mm_maskz_fixupimm_ps): Ditto.
2595 (_mm256_mask_fixupimm_pd): Update builtin.
2596 (_mm256_mask_fixupimm_ps): Ditto.
2597 (_mm_mask_fixupimm_pd): Ditto.
2598 (_mm_mask_fixupimm_ps): Ditto.
2599 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
2600 * config/i386/i386-builtin.def: Update builtin definitions.
2601 * config/i386/i386.c: Handle new builtin types and remove useless ones.
2602 * config/i386/sse.md: Update VFIXUPIMM* patterns.
2603 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2604 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2605 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
2606 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2607 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2608 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
2609 * config/i386/subst.md:
2610 (round_saeonly_sd_mask_operand4): Add new subst_attr.
2611 (round_saeonly_sd_mask_op4): Ditto.
2612 (round_saeonly_expand_operand5): Ditto.
2613 (round_saeonly_expand): Update.
2614
2615 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2616
2617 PR target/88794
2618 Revert:
2619 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
2620
2621 * config/i386/sse.md: Combine VFIXUPIMM* patterns
2622 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2623 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2624 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
2625 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2626 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2627 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
2628
2629 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
2630
2631 PR target/88794
2632 Revert:
2633 2018-12-15 Jakub Jelinek <jakub@redhat.com>
2634
2635 PR target/88489
2636 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
2637 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
2638 instead of UNSPEC_FIXUPIMM.
2639
2640 2019-01-17 Richard Biener <rguenther@suse.de>
2641
2642 PR lto/86736
2643 * dwarf2out.c (want_pubnames): Never generate pubnames sections
2644 and friends for the LTO part of debug info.
2645
2646 2019-01-17 Jakub Jelinek <jakub@redhat.com>
2647
2648 PR tree-optimization/86214
2649 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
2650 if x == y.
2651
2652 PR rtl-optimization/88870
2653 * dce.c (deletable_insn_p): Never delete const/pure calls that can
2654 throw if we can't alter the cfg or delete dead exceptions.
2655 (mark_insn): Don't call find_call_stack_args for such calls.
2656
2657 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
2658
2659 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
2660 prototypes for vec_st.
2661 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
2662 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
2663 mainly on signed/unsigned long long and double.
2664
2665 2019-01-16 David Malcolm <dmalcolm@redhat.com>
2666
2667 PR target/88861
2668 * combine.c (delete_noop_moves): Convert to "bool" return,
2669 returning true if any edges are eliminated.
2670 (combine_instructions): Also return true if delete_noop_moves
2671 returns true.
2672
2673 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2674
2675 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
2676 correct max nunits for endian swap.
2677 (aarch64_expand_fcmla_builtin): Correct subreg code.
2678 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2679 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
2680 lane endianness.
2681
2682 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
2683
2684 * config/alpha/alpha.c (alpha_gimplify_va_arg):
2685 Handle split indirect COMPLEX_TYPE arguments.
2686
2687 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
2688
2689 PR target/86891
2690 * config/aarch64/aarch64-modes.def: Add comment about how the carry
2691 bit is set by add and compare.
2692 (CC_ADC): New CC_MODE.
2693 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
2694 to cache the code and mode of X. Adjust the shape of a CC_Cmode
2695 comparison. Add detection for CC_ADCmode.
2696 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
2697 CC_ADCmode.
2698 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
2699 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
2700 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
2701 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
2702 to eliminate the need for zero-extending the operands.
2703 (add<mode>3_compareC_imm): Delete. Merge into ...
2704 (add<mode>3_compareC): ... this. Restructure the comparison to
2705 eliminate the need for zero-extending the operands.
2706 (add<mode>3_carryin): Use LTU for the overflow detection.
2707 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
2708 Reexpress comparison for overflow.
2709 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
2710 (add<mode>3_carryinC): Likewise.
2711 (add<mode>3_carryinV): Use LTU for carry between partials.
2712 * config/aarch64/predicates.md (aarch64_carry_operation): Update
2713 handling of CC_Cmode and add CC_ADCmode.
2714 (aarch64_borrow_operation): Likewise.
2715
2716 2019-01-16 Tamar Christina <tamar.christina@arm.com>
2717
2718 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
2719 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
2720 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
2721 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
2722
2723 2019-01-16 Martin Liska <mliska@suse.cz>
2724
2725 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
2726 for GCC driver.
2727 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
2728 a new argument.
2729 * gcc.c (add_sysrooted_hdrs_prefix): New function.
2730 (path_prefix_reset): Move up in the source file.
2731 (find_fortran_preinclude_file): Make complex search for the
2732 fortran header files.
2733
2734 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
2735
2736 * godump.c (go_output_typedef): When outputting a typedef, refer
2737 to the underlying type by its name and not its structure.
2738
2739 2019-01-15 David Malcolm <dmalcolm@redhat.com>
2740
2741 PR c++/88795
2742 * tree.c (build_function_type): Assert that arg_types is not
2743 error_mark_node.
2744
2745 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
2746
2747 PR inline-asm/52813
2748 * doc/extend.texi: Document that listing the stack pointer in the
2749 clobber list of an asm is a deprecated feature.
2750 * common.opt (Wdeprecated): Moved from c-family/c.opt.
2751 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
2752 warning instead of an error for clobbers of the stack pointer.
2753 Add a note explaining why.
2754
2755 2019-01-15 Richard Biener <rguenther@suse.de>
2756
2757 PR debug/88046
2758 * dwarf2out.c (gen_member_die): Do not generate inheritance
2759 DIEs late.
2760
2761 2019-01-15 Richard Biener <rguenther@suse.de>
2762
2763 PR tree-optimization/88855
2764 * tree-if-conv.c (combine_blocks): Collect
2765 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
2766
2767 2019-01-15 Tom de Vries <tdevries@suse.de>
2768
2769 PR target/80547
2770 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
2771 lhs == NULL_TREE for gang-level reduction.
2772
2773 2019-01-15 Richard Biener <rguenther@suse.de>
2774 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2775
2776 PR ipa/88788
2777 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
2778 return true if SSA_NAME is already marked in visited bitmap.
2779 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
2780
2781 2019-01-15 Jakub Jelinek <jakub@redhat.com>
2782
2783 PR tree-optimization/88775
2784 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
2785 equal == 0 equality pointer comparisons some more if compared in
2786 integral types and either one points to an automatic var and the
2787 other to a global, or we can prove at least one points to the middle
2788 or both point to start or both point to end.
2789
2790 2019-01-14 Andi Kleen <ak@linux.intel.com>
2791
2792 * Makefile.in: Lower autofdo sampling rate by 10x.
2793 * Makefile.tpl: Dito.
2794
2795 2019-01-14 Tom Honermann <tom@honermann.net>
2796
2797 * defaults.h: Define CHAR8_TYPE.
2798
2799 2019-01-14 Martin Sebor <msebor@redhat.com>
2800
2801 PR target/88638
2802 * doc/extend.texi (Darwin Format Checks): Clarify.
2803
2804 2019-01-14 Richard Biener <rguenther@suse.de>
2805
2806 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
2807 whether we are in (simplify ...) or (match ...) context.
2808
2809 2019-01-14 Jakub Jelinek <jakub@redhat.com>
2810
2811 PR rtl-optimization/88796
2812 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
2813 * cfgexpand.c (stack_protect_prologue): Initialize
2814 crtl->stack_protect_guard_decl.
2815 * function.c (stack_protect_epilogue): Use it instead of calling
2816 targetm.stack_protect_guard again.
2817 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
2818 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
2819 crtl->stack_protect_guard_decl.
2820 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
2821 on the returned MEM_EXPR.
2822
2823 2019-01-12 Tom de Vries <tdevries@suse.de>
2824
2825 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
2826 vector length using -fopenacc-dim.
2827
2828 2019-01-12 Tom de Vries <tdevries@suse.de>
2829
2830 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
2831 lengths into account.
2832
2833 2019-01-12 Svante Signell <svante.signell@gmail.com>
2834
2835 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
2836 (TARGET_CAN_SPLIT_STACK): Define.
2837 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2838
2839 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
2840
2841 * params.def (inline-unit-growth): Set to 40.
2842
2843 2019-01-12 Jakub Jelinek <jakub@redhat.com>
2844
2845 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
2846
2847 2019-01-12 Tom de Vries <tdevries@suse.de>
2848
2849 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
2850 region calling vector-partitionable routine, set default_vector_length
2851 to WARP_SIZE.
2852
2853 2019-01-12 Tom de Vries <tdevries@suse.de>
2854
2855 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
2856 variable default_vector_length.
2857
2858 2019-01-12 Tom de Vries <tdevries@suse.de>
2859
2860 PR middle-end/88703
2861 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
2862 from oacc_default_dims, as oacc_validate_dims would do it, and apply
2863 dimensions limits.
2864
2865 2019-01-12 Tom de Vries <tdevries@suse.de>
2866
2867 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
2868 (nvptx_goacc_validate_dims): Add used parameter.
2869 * doc/tm.texi: Regenerate.
2870 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
2871 argument to call to targetm.goacc.validate_dims.
2872 (default_goacc_validate_dims): Add used
2873 parameter.
2874 * target.def (validate_dims): Add used parameter in DEFHOOK.
2875 * targhooks.h (default_goacc_validate_dims): Add used parameter.
2876
2877 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2878
2879 PR middle-end/85956
2880 PR lto/88733
2881 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2882 field.
2883 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
2884 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
2885 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
2886 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
2887
2888 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
2889
2890 PR rtl-optimization/87305
2891 * lra-assigns.c
2892 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2893 for little endian pseudos used as paradoxical subreg.
2894
2895 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2896
2897 PR tree-optimization/88693
2898 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
2899 for STRING_CSTs that don't contain any NUL characters in the first
2900 TREE_STRING_LENGTH bytes.
2901
2902 2019-01-11 Alan Modra <amodra@gmail.com>
2903
2904 PR 88777
2905 PR 88614
2906 * genattrtab.c (min_fn): Don't translate values.
2907 (min_attr_value): Return INT_MAX when the value can't be calculated.
2908 Return minimum among any values that can be calculated.
2909 (max_attr_value): Adjust.
2910
2911 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2912
2913 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2914
2915 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2916
2917 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2918 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
2919 (aarch64_return_call_with_max_clobbers): New function.
2920 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
2921 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
2922 argument.
2923 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
2924 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
2925 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
2926 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
2927 * cselib.c (cselib_process_insn): Add argument to
2928 targetm.hard_regno_call_part_clobbered call.
2929 * ira-conflicts.c (ira_build_conflicts): Ditto.
2930 * ira-costs.c (ira_tune_allocno_costs): Ditto.
2931 * lra-constraints.c (inherit_reload_reg): Ditto.
2932 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
2933 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
2934 argument. Call targetm.return_call_with_max_clobbers.
2935 Add argument to targetm.hard_regno_call_part_clobbered call.
2936 (calls_have_same_clobbers_p): New function.
2937 (process_bb_lives): Add call_insn and last_call_insn variables.
2938 Pass call_insn to check_pseudos_live_through_calls.
2939 Modify if stmt to check targetm.return_call_with_max_clobbers.
2940 Update setting of flush variable.
2941 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
2942 to false.
2943 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
2944 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
2945 targetm.hard_regno_call_part_clobbered call.
2946 * reginfo.c (choose_hard_reg_mode): Ditto.
2947 * regrename.c (check_new_reg_p): Ditto.
2948 * reload.c (find_equiv_reg): Ditto.
2949 * reload1.c (emit_reload_insns): Ditto.
2950 * sched-deps.c (deps_analyze_insn): Ditto.
2951 * sel-sched.c (init_regs_for_mode): Ditto.
2952 (mark_unavailable_hard_regs): Ditto.
2953 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
2954 * target.def (hard_regno_call_part_clobbered): Add insn argument.
2955 (return_call_with_max_clobbers): New target function.
2956 * doc/tm.texi: Regenerate.
2957 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
2958 * hooks.c (hook_bool_uint_mode_false): Change to
2959 hook_bool_insn_uint_mode_false.
2960 * hooks.h (hook_bool_uint_mode_false): Ditto.
2961
2962 2019-01-11 Steve Ellcey <sellcey@marvell.com>
2963
2964 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2965 (aarch64_remove_extra_call_preserved_regs): New function.
2966 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
2967 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
2968 * doc/tm.texi: Regenerate.
2969 * final.c (get_call_reg_set_usage): Call new hook.
2970 * target.def (remove_extra_call_preserved_regs): New hook.
2971 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
2972 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
2973
2974 2019-01-11 Jakub Jelinek <jakub@redhat.com>
2975
2976 PR bootstrap/88714
2977 * passes.c (finish_optimization_passes): Call print_combine_total_stats
2978 inside of pass_combine_1 dump rather than pass_profile_1.
2979
2980 2019-01-11 Tom de Vries <tdevries@suse.de>
2981
2982 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
2983 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
2984 (PTX_NUM_PER_WORKER_BARRIERS): Define.
2985 (nvptx_apply_dim_limits): Prevent vector_length 64 and
2986 num_workers 16.
2987
2988 2019-01-11 Tom de Vries <tdevries@suse.de>
2989
2990 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2991
2992 2019-01-11 Jan Beulich <jbeulich@suse.com>
2993
2994 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
2995 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
2996 sse2_cvtsi2sd): Add {l}.
2997 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
2998 syntax.
2999
3000 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3001
3002 PR target/88785
3003 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
3004 define_expand.
3005 (*float<floatunssuffix>v2div2sf2): New define_insn.
3006 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
3007 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
3008 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
3009 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
3010 match_operands with "const0_operand" "C".
3011
3012 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3013
3014 * config/aarch64/aarch64-builtins.c
3015 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
3016 (aarch64_init_simd_builtins): ...Here
3017
3018 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
3019
3020 PR rtl-optimization/87305
3021 * lra-assigns.c
3022 (setup_live_pseudos_and_spill_after_risky_transforms): Check
3023 allocation for big endian pseudos used as paradoxical subregs and
3024 spill them if it is wrong.
3025 * lra-constraints.c (lra_constraints): Add a comment.
3026
3027 2019-01-10 Richard Biener <rguenther@suse.de>
3028
3029 PR tree-optimization/88792
3030 * tree-ssa-pre.c (get_representative_for): Do not return a
3031 value-number here.
3032
3033 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3034
3035 PR middle-end/84877
3036 PR bootstrap/88450
3037 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
3038 (assign_parm_setup_block): Do the argument slot realignment here
3039 instead.
3040
3041 2019-01-10 Stefan Agner <stefan@agner.ch>
3042
3043 PR target/88648
3044 * config/arm/arm.c (arm_option_override_internal): Force
3045 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
3046
3047 2019-01-10 Jakub Jelinek <jakub@redhat.com>
3048
3049 PR c/88568
3050 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
3051 DECL_EXTERNAL.
3052
3053 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3054
3055 * config/arm/arm-builtins.c
3056 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
3057 (MAC_LANE_PAIR_QUALIFIERS): New.
3058 (arm_expand_builtin_args): Use it.
3059 (arm_expand_builtin_1): Likewise.
3060 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
3061 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
3062 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
3063 * config/arm/arm_neon.h:
3064 (vcadd_rot90_f16): New.
3065 (vcaddq_rot90_f16): New.
3066 (vcadd_rot270_f16): New.
3067 (vcaddq_rot270_f16): New.
3068 (vcmla_f16): New.
3069 (vcmlaq_f16): New.
3070 (vcmla_lane_f16): New.
3071 (vcmla_laneq_f16): New.
3072 (vcmlaq_lane_f16): New.
3073 (vcmlaq_laneq_f16): New.
3074 (vcmla_rot90_f16): New.
3075 (vcmlaq_rot90_f16): New.
3076 (vcmla_rot90_lane_f16): New.
3077 (vcmla_rot90_laneq_f16): New.
3078 (vcmlaq_rot90_lane_f16): New.
3079 (vcmlaq_rot90_laneq_f16): New.
3080 (vcmla_rot180_f16): New.
3081 (vcmlaq_rot180_f16): New.
3082 (vcmla_rot180_lane_f16): New.
3083 (vcmla_rot180_laneq_f16): New.
3084 (vcmlaq_rot180_lane_f16): New.
3085 (vcmlaq_rot180_laneq_f16): New.
3086 (vcmla_rot270_f16): New.
3087 (vcmlaq_rot270_f16): New.
3088 (vcmla_rot270_lane_f16): New.
3089 (vcmla_rot270_laneq_f16): New.
3090 (vcmlaq_rot270_lane_f16): New.
3091 (vcmlaq_rot270_laneq_f16): New.
3092 (vcadd_rot90_f32): New.
3093 (vcaddq_rot90_f32): New.
3094 (vcadd_rot270_f32): New.
3095 (vcaddq_rot270_f32): New.
3096 (vcmla_f32): New.
3097 (vcmlaq_f32): New.
3098 (vcmla_lane_f32): New.
3099 (vcmla_laneq_f32): New.
3100 (vcmlaq_lane_f32): New.
3101 (vcmlaq_laneq_f32): New.
3102 (vcmla_rot90_f32): New.
3103 (vcmlaq_rot90_f32): New.
3104 (vcmla_rot90_lane_f32): New.
3105 (vcmla_rot90_laneq_f32): New.
3106 (vcmlaq_rot90_lane_f32): New.
3107 (vcmlaq_rot90_laneq_f32): New.
3108 (vcmla_rot180_f32): New.
3109 (vcmlaq_rot180_f32): New.
3110 (vcmla_rot180_lane_f32): New.
3111 (vcmla_rot180_laneq_f32): New.
3112 (vcmlaq_rot180_lane_f32): New.
3113 (vcmlaq_rot180_laneq_f32): New.
3114 (vcmla_rot270_f32): New.
3115 (vcmlaq_rot270_f32): New.
3116 (vcmla_rot270_lane_f32): New.
3117 (vcmla_rot270_laneq_f32): New.
3118 (vcmlaq_rot270_lane_f32): New.
3119 (vcmlaq_rot270_laneq_f32): New.
3120 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
3121 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
3122 vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
3123 vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
3124 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
3125 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
3126 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
3127 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
3128 (arm_option_reconfigure_globals): Use them.
3129 * config/arm/iterators.md (VDF, VQ_HSF): New.
3130 (VCADD, VCMLA): New.
3131 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
3132 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
3133 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
3134 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
3135
3136 2019-01-10 Tamar Christina <tamar.christina@arm.com>
3137
3138 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
3139 (emit-rtl.h): Include.
3140 (TYPES_QUADOP_LANE_PAIR): New.
3141 (aarch64_simd_expand_args): Use it.
3142 (aarch64_simd_expand_builtin): Likewise.
3143 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
3144 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
3145 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
3146 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
3147 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
3148 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
3149 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
3150 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
3151 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
3152 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
3153 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
3154 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
3155 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
3156 fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
3157 fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
3158 fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
3159 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
3160 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
3161 aarch64_fcmla<rot><mode>): New.
3162 * config/aarch64/arm_neon.h:
3163 (vcadd_rot90_f16): New.
3164 (vcaddq_rot90_f16): New.
3165 (vcadd_rot270_f16): New.
3166 (vcaddq_rot270_f16): New.
3167 (vcmla_f16): New.
3168 (vcmlaq_f16): New.
3169 (vcmla_lane_f16): New.
3170 (vcmla_laneq_f16): New.
3171 (vcmlaq_lane_f16): New.
3172 (vcmlaq_rot90_lane_f16): New.
3173 (vcmla_rot90_laneq_f16): New.
3174 (vcmla_rot90_lane_f16): New.
3175 (vcmlaq_rot90_f16): New.
3176 (vcmla_rot90_f16): New.
3177 (vcmlaq_laneq_f16): New.
3178 (vcmla_rot180_laneq_f16): New.
3179 (vcmla_rot180_lane_f16): New.
3180 (vcmlaq_rot180_f16): New.
3181 (vcmla_rot180_f16): New.
3182 (vcmlaq_rot90_laneq_f16): New.
3183 (vcmlaq_rot270_laneq_f16): New.
3184 (vcmlaq_rot270_lane_f16): New.
3185 (vcmla_rot270_laneq_f16): New.
3186 (vcmlaq_rot270_f16): New.
3187 (vcmla_rot270_f16): New.
3188 (vcmlaq_rot180_laneq_f16): New.
3189 (vcmlaq_rot180_lane_f16): New.
3190 (vcmla_rot270_lane_f16): New.
3191 (vcadd_rot90_f32): New.
3192 (vcaddq_rot90_f32): New.
3193 (vcaddq_rot90_f64): New.
3194 (vcadd_rot270_f32): New.
3195 (vcaddq_rot270_f32): New.
3196 (vcaddq_rot270_f64): New.
3197 (vcmla_f32): New.
3198 (vcmlaq_f32): New.
3199 (vcmlaq_f64): New.
3200 (vcmla_lane_f32): New.
3201 (vcmla_laneq_f32): New.
3202 (vcmlaq_lane_f32): New.
3203 (vcmlaq_laneq_f32): New.
3204 (vcmla_rot90_f32): New.
3205 (vcmlaq_rot90_f32): New.
3206 (vcmlaq_rot90_f64): New.
3207 (vcmla_rot90_lane_f32): New.
3208 (vcmla_rot90_laneq_f32): New.
3209 (vcmlaq_rot90_lane_f32): New.
3210 (vcmlaq_rot90_laneq_f32): New.
3211 (vcmla_rot180_f32): New.
3212 (vcmlaq_rot180_f32): New.
3213 (vcmlaq_rot180_f64): New.
3214 (vcmla_rot180_lane_f32): New.
3215 (vcmla_rot180_laneq_f32): New.
3216 (vcmlaq_rot180_lane_f32): New.
3217 (vcmlaq_rot180_laneq_f32): New.
3218 (vcmla_rot270_f32): New.
3219 (vcmlaq_rot270_f32): New.
3220 (vcmlaq_rot270_f64): New.
3221 (vcmla_rot270_lane_f32): New.
3222 (vcmla_rot270_laneq_f32): New.
3223 (vcmlaq_rot270_lane_f32): New.
3224 (vcmlaq_rot270_laneq_f32): New.
3225 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
3226 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
3227 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
3228 (FCADD, FCMLA): New.
3229 (rot): New.
3230 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
3231
3232 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3233
3234 PR other/16615
3235
3236 * config/pa/pa.c: Change "can not" to "cannot".
3237 * gimple-ssa-evrp-analyze.c: Likewise.
3238 * ipa-icf.c: Likewise.
3239 * ipa-polymorphic-call.c: Likewise.
3240 * ipa-pure-const.c: Likewise.
3241 * lra-constraints.c: Likewise.
3242 * lra-remat.c: Likewise.
3243 * reload1.c: Likewise.
3244 * reorg.c: Likewise.
3245 * tree-ssa-uninit.c: Likewise.
3246
3247 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
3248
3249 PR other/16615
3250
3251 * Makefile.in: Mechanically replace "can not" with "cannot".
3252 * alias.c: Likewise.
3253 * builtins.c: Likewise.
3254 * calls.c: Likewise.
3255 * cgraph.c: Likewise.
3256 * cgraph.h: Likewise.
3257 * cgraphclones.c: Likewise.
3258 * cgraphunit.c: Likewise.
3259 * combine-stack-adj.c: Likewise.
3260 * combine.c: Likewise.
3261 * common/config/i386/i386-common.c: Likewise.
3262 * config/aarch64/aarch64.c: Likewise.
3263 * config/alpha/sync.md: Likewise.
3264 * config/arc/arc.c: Likewise.
3265 * config/arc/predicates.md: Likewise.
3266 * config/arm/arm-c.c: Likewise.
3267 * config/arm/arm.c: Likewise.
3268 * config/arm/arm.h: Likewise.
3269 * config/arm/arm.md: Likewise.
3270 * config/arm/cortex-r4f.md: Likewise.
3271 * config/csky/csky.c: Likewise.
3272 * config/csky/csky.h: Likewise.
3273 * config/darwin-f.c: Likewise.
3274 * config/epiphany/epiphany.md: Likewise.
3275 * config/i386/i386.c: Likewise.
3276 * config/i386/sol2.h: Likewise.
3277 * config/m68k/m68k.c: Likewise.
3278 * config/mcore/mcore.h: Likewise.
3279 * config/microblaze/microblaze.md: Likewise.
3280 * config/mips/20kc.md: Likewise.
3281 * config/mips/sb1.md: Likewise.
3282 * config/nds32/nds32.c: Likewise.
3283 * config/nds32/predicates.md: Likewise.
3284 * config/pa/pa.c: Likewise.
3285 * config/rs6000/e300c2c3.md: Likewise.
3286 * config/rs6000/rs6000.c: Likewise.
3287 * config/s390/s390.h: Likewise.
3288 * config/sh/sh.c: Likewise.
3289 * config/sh/sh.md: Likewise.
3290 * config/spu/vmx2spu.h: Likewise.
3291 * cprop.c: Likewise.
3292 * dbxout.c: Likewise.
3293 * df-scan.c: Likewise.
3294 * doc/cfg.texi: Likewise.
3295 * doc/extend.texi: Likewise.
3296 * doc/fragments.texi: Likewise.
3297 * doc/gty.texi: Likewise.
3298 * doc/invoke.texi: Likewise.
3299 * doc/lto.texi: Likewise.
3300 * doc/md.texi: Likewise.
3301 * doc/objc.texi: Likewise.
3302 * doc/rtl.texi: Likewise.
3303 * doc/tm.texi: Likewise.
3304 * dse.c: Likewise.
3305 * emit-rtl.c: Likewise.
3306 * emit-rtl.h: Likewise.
3307 * except.c: Likewise.
3308 * expmed.c: Likewise.
3309 * expr.c: Likewise.
3310 * fold-const.c: Likewise.
3311 * genautomata.c: Likewise.
3312 * gimple-fold.c: Likewise.
3313 * hard-reg-set.h: Likewise.
3314 * ifcvt.c: Likewise.
3315 * ipa-comdats.c: Likewise.
3316 * ipa-cp.c: Likewise.
3317 * ipa-devirt.c: Likewise.
3318 * ipa-fnsummary.c: Likewise.
3319 * ipa-icf.c: Likewise.
3320 * ipa-inline-transform.c: Likewise.
3321 * ipa-inline.c: Likewise.
3322 * ipa-polymorphic-call.c: Likewise.
3323 * ipa-profile.c: Likewise.
3324 * ipa-prop.c: Likewise.
3325 * ipa-pure-const.c: Likewise.
3326 * ipa-reference.c: Likewise.
3327 * ipa-split.c: Likewise.
3328 * ipa-visibility.c: Likewise.
3329 * ipa.c: Likewise.
3330 * ira-build.c: Likewise.
3331 * ira-color.c: Likewise.
3332 * ira-conflicts.c: Likewise.
3333 * ira-costs.c: Likewise.
3334 * ira-int.h: Likewise.
3335 * ira-lives.c: Likewise.
3336 * ira.c: Likewise.
3337 * ira.h: Likewise.
3338 * loop-invariant.c: Likewise.
3339 * loop-unroll.c: Likewise.
3340 * lower-subreg.c: Likewise.
3341 * lra-assigns.c: Likewise.
3342 * lra-constraints.c: Likewise.
3343 * lra-eliminations.c: Likewise.
3344 * lra-lives.c: Likewise.
3345 * lra-remat.c: Likewise.
3346 * lra-spills.c: Likewise.
3347 * lra.c: Likewise.
3348 * lto-cgraph.c: Likewise.
3349 * lto-streamer-out.c: Likewise.
3350 * postreload-gcse.c: Likewise.
3351 * predict.c: Likewise.
3352 * profile-count.h: Likewise.
3353 * profile.c: Likewise.
3354 * recog.c: Likewise.
3355 * ree.c: Likewise.
3356 * reload.c: Likewise.
3357 * reload1.c: Likewise.
3358 * reorg.c: Likewise.
3359 * resource.c: Likewise.
3360 * rtl.def: Likewise.
3361 * rtl.h: Likewise.
3362 * rtlanal.c: Likewise.
3363 * sched-deps.c: Likewise.
3364 * sched-ebb.c: Likewise.
3365 * sched-rgn.c: Likewise.
3366 * sel-sched-ir.c: Likewise.
3367 * sel-sched.c: Likewise.
3368 * shrink-wrap.c: Likewise.
3369 * simplify-rtx.c: Likewise.
3370 * symtab.c: Likewise.
3371 * target.def: Likewise.
3372 * toplev.c: Likewise.
3373 * tree-call-cdce.c: Likewise.
3374 * tree-cfg.c: Likewise.
3375 * tree-complex.c: Likewise.
3376 * tree-core.h: Likewise.
3377 * tree-eh.c: Likewise.
3378 * tree-inline.c: Likewise.
3379 * tree-loop-distribution.c: Likewise.
3380 * tree-nrv.c: Likewise.
3381 * tree-profile.c: Likewise.
3382 * tree-sra.c: Likewise.
3383 * tree-ssa-alias.c: Likewise.
3384 * tree-ssa-dce.c: Likewise.
3385 * tree-ssa-dom.c: Likewise.
3386 * tree-ssa-forwprop.c: Likewise.
3387 * tree-ssa-loop-im.c: Likewise.
3388 * tree-ssa-loop-ivcanon.c: Likewise.
3389 * tree-ssa-loop-ivopts.c: Likewise.
3390 * tree-ssa-loop-niter.c: Likewise.
3391 * tree-ssa-phionlycprop.c: Likewise.
3392 * tree-ssa-phiopt.c: Likewise.
3393 * tree-ssa-propagate.c: Likewise.
3394 * tree-ssa-threadedge.c: Likewise.
3395 * tree-ssa-threadupdate.c: Likewise.
3396 * tree-ssa-uninit.c: Likewise.
3397 * tree-ssanames.c: Likewise.
3398 * tree-streamer-out.c: Likewise.
3399 * tree.c: Likewise.
3400 * tree.h: Likewise.
3401 * vr-values.c: Likewise.
3402
3403 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
3404
3405 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
3406 (ix86_split_xorsign): Ditto.
3407 * config/i386/i386.c (ix86_expand_xorsign): New function.
3408 (ix86_split_xorsign): Ditto.
3409 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
3410 (xorsign<mode>3): New expander.
3411 (xorsign<mode>3_1): New insn_and_split pattern.
3412 * config/i386/sse.md (xorsign<mode>3): New expander.
3413
3414 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3415
3416 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
3417 (*tablejump_sp64): Likewise.
3418 (*tablejump<P:mode>): ...this.
3419 (*call_address_sp32): Merge into...
3420 (*call_address_sp64): Likewise.
3421 (*call_address<P:mode>): ...this.
3422 (*call_symbolic_sp32): Merge into...
3423 (*call_symbolic_sp64): Likewise.
3424 (*call_symbolic<P:mode>): ...this.
3425 (call_value): Remove constraint and add predicate.
3426 (*call_value_address_sp32): Merge into...
3427 (*call_value_address_sp64): Likewise.
3428 (*call_value_address<P:mode>): ...this.
3429 (*call_value_symbolic_sp32): Merge into...
3430 (*call_value_symbolic_sp64): Likewise.
3431 (*call_value_symbolic<P:mode>): ...this.
3432 (*sibcall_symbolic_sp32): Merge into...
3433 (*sibcall_symbolic_sp64): Likewise.
3434 (*sibcall_symbolic<P:mode>): ...this.
3435 (sibcall_value): Remove constraint and add predicate.
3436 (*sibcall_value_symbolic_sp32): Merge into...
3437 (*sibcall_value_symbolic_sp64): Likewise.
3438 (*sibcall_value_symbolic<P:mode>): ...this.
3439 (window_save): Minor tweak.
3440 (*branch_sp32): Merge into...
3441 (*branch_sp64): Likewise.
3442 (*branch<P:mode>): ...this.
3443
3444 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3445 James Clarke <jrtc27@jrtc27.com>
3446
3447 PR target/84010
3448 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
3449 consistently in TLS address generation and adjust code to the renaming
3450 of patterns. Mark calls to __tls_get_addr as const.
3451 * config/sparc/sparc.md (tgd_hi22): Turn into...
3452 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
3453 (tgd_lo10): Turn into...
3454 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
3455 (tgd_add32): Merge into...
3456 (tgd_add64): Likewise.
3457 (tgd_add<P:mode>): ...this and use Pmode throughout.
3458 (tldm_hi22): Turn into...
3459 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
3460 (tldm_lo10): Turn into...
3461 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
3462 (tldm_add32): Merge into...
3463 (tldm_add64): Likewise.
3464 (tldm_add<P:mode>): ...this and use Pmode throughout.
3465 (tldm_call32): Merge into...
3466 (tldm_call64): Likewise.
3467 (tldm_call<P:mode>): ...this and use Pmode throughout.
3468 (tldo_hix22): Turn into...
3469 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
3470 (tldo_lox10): Turn into...
3471 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
3472 (tldo_add32): Merge into...
3473 (tldo_add64): Likewise.
3474 (tldo_add<P:mode>): ...this and use Pmode throughout.
3475 (tie_hi22): Turn into...
3476 (tie_hi22<P:mode>): ...this and use Pmode throughout.
3477 (tie_lo10): Turn into...
3478 (tie_lo10<P:mode>): ...this and use Pmode throughout.
3479 (tie_ld64): Use DImode throughout.
3480 (tie_add32): Merge into...
3481 (tie_add64): Likewise.
3482 (tie_add<P:mode>): ...this and use Pmode throughout.
3483 (tle_hix22_sp32): Merge into...
3484 (tle_hix22_sp64): Likewise.
3485 (tle_hix22<P:mode>): ...this and use Pmode throughout.
3486 (tle_lox22_sp32): Merge into...
3487 (tle_lox22_sp64): Likewise.
3488 (tle_lox22<P:mode>): ...this and use Pmode throughout.
3489 (*tldo_ldub_sp32): Merge into...
3490 (*tldo_ldub_sp64): Likewise.
3491 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
3492 (*tldo_ldub1_sp32): Merge into...
3493 (*tldo_ldub1_sp64): Likewise.
3494 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
3495 (*tldo_ldub2_sp32): Merge into...
3496 (*tldo_ldub2_sp64): Likewise.
3497 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
3498 (*tldo_ldsb1_sp32): Merge into...
3499 (*tldo_ldsb1_sp64): Likewise.
3500 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
3501 (*tldo_ldsb2_sp32): Merge into...
3502 (*tldo_ldsb2_sp64): Likewise.
3503 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
3504 (*tldo_ldub3_sp64): Use DImode throughout.
3505 (*tldo_ldsb3_sp64): Likewise.
3506 (*tldo_lduh_sp32): Merge into...
3507 (*tldo_lduh_sp64): Likewise.
3508 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
3509 (*tldo_lduh1_sp32): Merge into...
3510 (*tldo_lduh1_sp64): Likewise.
3511 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
3512 (*tldo_ldsh1_sp32): Merge into...
3513 (*tldo_ldsh1_sp64): Likewise.
3514 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
3515 (*tldo_lduh2_sp64): Use DImode throughout.
3516 (*tldo_ldsh2_sp64): Likewise.
3517 (*tldo_lduw_sp32): Merge into...
3518 (*tldo_lduw_sp64): Likewise.
3519 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
3520 (*tldo_lduw1_sp64): Use DImode throughout.
3521 (*tldo_ldsw1_sp64): Likewise.
3522 (*tldo_ldx_sp64): Likewise.
3523 (*tldo_stb_sp32): Merge into...
3524 (*tldo_stb_sp64): Likewise.
3525 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
3526 (*tldo_sth_sp32): Merge into...
3527 (*tldo_sth_sp64): Likewise.
3528 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
3529 (*tldo_stw_sp32): Merge into...
3530 (*tldo_stw_sp64): Likewise.
3531 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
3532 (*tldo_stx_sp64): Use DImode throughout.
3533
3534 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3535
3536 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
3537 check configure option to set BTI and Return Address Signing.
3538 * configure.ac: Add --enable-standard-branch-protection and
3539 --disable-standard-branch-protection.
3540 * configure: Regenerated.
3541 * doc/install.texi: Document the same.
3542
3543 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3544 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
3545
3546 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
3547 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
3548 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
3549 if bti is enabled.
3550 * config/aarch64/aarch64-bti-insert.c: New file.
3551 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
3552 pass.
3553 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
3554 new bti pass.
3555 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
3556 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
3557 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
3558 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
3559
3560 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3561
3562 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
3563 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
3564 Disable bti for -mbranch-protection=none.
3565 (aarch64_handle_standard_branch_protection): Enable bti for
3566 -mbranch-protection=standard.
3567 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
3568 -mbranch-protection.
3569 (aarch64_bti_enabled): Check if bti is enabled.
3570 * config/aarch64/aarch64.opt: Declare target variable.
3571 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
3572
3573 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3574
3575 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
3576 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
3577 (aarch64_expand_epilogue): Likewise.
3578 (aarch64_output_mi_thunk): Likewise
3579 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
3580 TAILCALL_ADDR_REGS to x16 and x17.
3581 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
3582
3583 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3584
3585 * config/aarch64/aarch64-option-extensions.def: Define
3586 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
3587 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
3588 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
3589 (AARCH64_FL_PREDRES): New.
3590 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
3591 AARCH64_FL_PREDRES by default.
3592 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
3593
3594 2018-01-09 Sudakshina Das <sudi.das@arm.com>
3595
3596 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
3597 ARMv8.5-A.
3598 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
3599 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
3600 * doc/invoke.texi: Document ARMv8.5-A.
3601
3602 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3603
3604 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
3605 (xorsign<mode>3): Likewise.
3606
3607 2019-01-09 Jelinek <jakub@redhat.com>
3608
3609 PR middle-end/88758
3610 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
3611 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
3612
3613 PR rtl-optimization/88331
3614 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
3615 not currently_expanding_to_rtl.
3616
3617 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
3618
3619 * doc/invoke.texi (-Os): Remove trailing spaces.
3620 (-finline-functions): Remove reference to -O2.
3621
3622 2019-01-08 Jakub Jelinek <jakub@redhat.com>
3623
3624 PR rtl-optimization/79593
3625 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
3626
3627 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
3628 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
3629
3630 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
3631
3632 PR bootstrap/88721
3633 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
3634 to -1 on entry.
3635
3636 PR debug/88723
3637 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
3638 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
3639
3640 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
3641
3642 PR target/88717
3643 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
3644 ix86_avx_u128_mode_entry.
3645
3646 2019-01-08 Martin Liska <mliska@suse.cz>
3647
3648 PR tree-optimization/88753
3649 * tree-switch-conversion.c (switch_conversion::build_one_array):
3650 Come up with local variable constructor. Convert first to
3651 type of constructor values.
3652
3653 2019-01-08 Richard Biener <rguenther@suse.de>
3654
3655 PR tree-optimization/86554
3656 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
3657 rpo_avail): Move earlier.
3658 (visit_nary_op): When value-numbering to expressions
3659 with different overflow behavior make sure there's an
3660 available expression on the path.
3661
3662 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
3663
3664 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
3665 aarch64_parse_branch_protection,
3666 struct aarch64_branch_protect_type,
3667 aarch64_handle_no_branch_protection,
3668 aarch64_handle_standard_branch_protection,
3669 aarch64_validate_mbranch_protection,
3670 aarch64_handle_pac_ret_protection,
3671 aarch64_handle_attr_branch_protection,
3672 accepted_branch_protection_string,
3673 aarch64_pac_ret_subtypes,
3674 aarch64_branch_protect_types,
3675 aarch64_handle_pac_ret_leaf): Define.
3676 (aarch64_override_options_after_change_1, aarch64_override_options):
3677 Add check for accepted_branch_protection_string.
3678 (aarch64_option_save): Save accepted_branch_protection_string.
3679 (aarch64_option_restore): Save accepted_branch_protection_string.
3680 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
3681 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
3682 msign-return-address.
3683 * doc/invoke.texi: Add mbranch-protection.
3684
3685 2019-01-08 Alan Modra <amodra@gmail.com>
3686
3687 PR target/88614
3688 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
3689 Delete "unknownp" parameter. Adjust callers. Handle
3690 CONST_INT, PLUS, MINUS, and MULT.
3691 (attr_value_aligned): Renamed from or_attr_value.
3692 (min_attr_value): Return INT_MIN for unhandled rtl case..
3693 (min_fn): ..and translate to INT_MAX here.
3694 (write_length_unit_log): Modify to cope without "unknown".
3695 (write_attr_value): Handle IF_THEN_ELSE.
3696
3697 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3698
3699 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
3700 optimization for masked stores.
3701
3702 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3703
3704 PR middle-end/88567
3705 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
3706 output vector directly to duplicate_and_interleave instead of
3707 going through a temporary. Postpone insertion of ctor_seq to
3708 the end of the loop.
3709
3710 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
3711
3712 PR target/86891
3713 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
3714 unsigned_p. Handle signed and unsigned overflow correction as
3715 required.
3716 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
3717 prototype.
3718 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
3719 for operand 2.
3720 (add<mode>3_compareV_imm): Make this callable for expanding.
3721 (subv<GPI:mode>4): Use register_operand for operand 1. Use
3722 aarch64_plus_operand for operand 2.
3723 (subv<GPI:mode>_insn): New insn pattern.
3724 (subv<GPI:mode>_imm): Likewise.
3725 (negv<GPI:mode>3): New expand pattern.
3726 (negv<GPI:mode>_insn): New insn pattern.
3727 (negv<GPI:mode>_cmp_only): Likewise.
3728 (cmpv<GPI:mode>_insn): Likewise.
3729 (subvti4): Use register_operand for operand 1. Update call to
3730 aarch64_expand_subvti.
3731 (usubvti4): Likewise.
3732 (negvti3): New expand pattern.
3733 (negdi_carryout): New insn pattern.
3734 (negvdi_carryinV): New insn pattern.
3735 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
3736 version the named version.
3737 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
3738 operands.
3739 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
3740 patterns.
3741 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
3742 patterns.
3743 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
3744 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
3745 (sub<mode>3_carryinCV): Delete.
3746 (sub<GPI:mode>3_carryinV): New expand pattern.
3747 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
3748
3749 2019-01-07 Richard Biener <rguenther@suse.de>
3750
3751 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
3752 of tree_operand_hash.
3753
3754 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3755
3756 PR tree-optimization/88598
3757 * tree.h (single_nonzero_element): Declare.
3758 * tree.c (single_nonzero_element): New function.
3759 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
3760 if I is the only nonzero element of CST.
3761
3762 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
3763
3764 PR tree-optimization/88598
3765 * tree.h (initializer_each_zero_or_onep): Declare.
3766 * tree.c (initializer_each_zero_or_onep): New function.
3767 (signed_or_unsigned_type_for): Handle float types too.
3768 (unsigned_type_for, signed_type_for): Update comments accordingly.
3769 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
3770 x & { 0 or -1, 0 or -1, ... }.
3771
3772 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
3773
3774 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
3775 with x86_64-pc-linux-gnu.
3776
3777 2019-01-07 Tom de Vries <tdevries@suse.de>
3778
3779 PR target/85486
3780 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
3781 function.
3782 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
3783 routines.
3784
3785 2019-01-07 Jakub Jelinek <jakub@redhat.com>
3786
3787 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
3788 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
3789 TARGET_AVX512F as condition.
3790
3791 PR debug/88723
3792 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
3793 const_not_ok_for_debug_p target hook.
3794 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
3795 on UNSPEC and subexpressions thereof if all subexpressions of the
3796 UNSPEC are CONSTANT_P.
3797
3798 PR tree-optimization/88676
3799 * tree-ssa-phiopt.c (two_value_replacement): New function.
3800 (tree_ssa_phiopt_worker): Call it.
3801
3802 PR sanitizer/88619
3803 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
3804 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
3805
3806 PR c++/85052
3807 * tree-vect-generic.c: Include insn-config.h and recog.h.
3808 (expand_vector_piecewise): Add defaulted ret_type argument,
3809 if non-NULL, use that in preference to type for the result type.
3810 (expand_vector_parallel): Formatting fix.
3811 (do_vec_conversion, do_vec_narrowing_conversion,
3812 expand_vector_conversion): New functions.
3813 (expand_vector_operations_1): Call expand_vector_conversion
3814 for VEC_CONVERT ifn calls.
3815 * internal-fn.def (VEC_CONVERT): New internal function.
3816 * internal-fn.c (expand_VEC_CONVERT): New function.
3817 * fold-const-call.c (fold_const_vec_convert): New function.
3818 (fold_const_call): Use it for CFN_VEC_CONVERT.
3819 * doc/extend.texi (__builtin_convertvector): Document.
3820
3821 2019-01-07 Tom de Vries <tdevries@suse.de>
3822
3823 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
3824 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
3825 vector_red_partition, vector_red_sym): New global variables.
3826 (nvptx_option_override): Initialize vector_red_sym.
3827 (nvptx_declare_function_name): Restore red_partition register.
3828 (nvptx_file_end): Emit code to declare the vector reduction variables.
3829 (nvptx_output_red_partition): New function.
3830 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
3831 large vector reductions.
3832 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
3833 (nvptx_init_builtins): Add VECTOR_ADDR.
3834 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
3835 Handle nvptx_expand_shared_addr.
3836 (nvptx_get_shared_red_addr): Add vector argument and handle large
3837 vectors.
3838 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
3839 large vectors.
3840 (nvptx_goacc_reduction_init): Likewise.
3841 (nvptx_goacc_reduction_fini): Likewise.
3842 (nvptx_goacc_reduction_teardown): Likewise.
3843 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
3844 init,fini,teardown}.
3845 (nvptx_init_axis_predicate): Initialize vector_red_partition.
3846 (nvptx_set_current_function): Init vector_red_partition.
3847 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
3848 (nvptx_red_partition): New insn.
3849 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
3850
3851 2019-01-07 Tom de Vries <tdevries@suse.de>
3852
3853 PR target/85381
3854 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
3855 empty loops.
3856
3857 2019-01-07 Tom de Vries <tdevries@suse.de>
3858
3859 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
3860 (nvptx_option_override): Init oacc_bcast_partition.
3861 (nvptx_init_oacc_workers): New function.
3862 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
3863 (nvptx_needs_shared_bcast): New function.
3864 (nvptx_find_par): Generalize to enable vectors to use shared-memory
3865 to propagate state.
3866 (nvptx_shared_propagate): Initialize vector bcast partition and
3867 synchronization state.
3868 (nvptx_single): Generalize to enable vectors to use shared-memory
3869 to propagate state.
3870 (nvptx_process_pars): Likewise.
3871 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
3872 * config/nvptx/nvptx.h (struct machine_function): Add
3873 bcast_partition and sync_bar members.
3874
3875 2019-01-07 Tom de Vries <tdevries@suse.de>
3876
3877 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
3878 (nvptx_apply_dim_limits): New function.
3879 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
3880 PTX_WARP_SIZE.
3881
3882 2019-01-07 Tom de Vries <tdevries@suse.de>
3883
3884 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3885 as late as possible.
3886
3887 2019-01-07 Tom de Vries <tdevries@suse.de>
3888
3889 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
3890 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
3891 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
3892 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
3893 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
3894
3895 2019-01-07 Tom de Vries <tdevries@suse.de>
3896
3897 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3898
3899 2019-01-07 Tom de Vries <tdevries@suse.de>
3900
3901 * omp-offload.c (oacc_get_min_dim): New function.
3902 * omp-offload.h (oacc_get_min_dim): Declare.
3903
3904 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
3905
3906 PR target/88521
3907 * config/i386/i386.c (function_value_ms_64): Return small sturct in
3908 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
3909
3910 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3911
3912 PR tree-opt/86020
3913 Revert:
3914 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
3915
3916 * ipa-inline.c (edge_badness): Use inlined_time instead of
3917 inline_summaries->get.
3918
3919 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3920
3921 * opts.c (enable_fdo_optimizations): Enable
3922 version-loops-for-strides, loop-interchange, unrol-and-jam
3923 and tree-loop-distribution.
3924 * invoke.texi: Document newly enabled options.
3925
3926 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3927
3928 * doc/invoke.texi (max-inline-insns-small): New parameters.
3929 * ipa-inline.c (want_early_inline_function_p): simplify.
3930 (want_inline_small_function_p): Fix pasto from previous patch;
3931 use max-inline-insns-small bound.
3932 * params.def (max-inline-insns-small): New param.
3933 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
3934 variables correctly.
3935
3936 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3937
3938 * doc/invoke.texi: Document max-inline-insns-size,
3939 uninlined-function-insns, uninlined-function-time,
3940 uninlined-thunk-insns and uninlined-thunk-time.
3941 * params.def: Add max-inline-insns-size,
3942 uninlined-function-insns, uninlined-function-time,
3943 uninlined-thunk-insns and uninlined-thunk-time.
3944 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
3945 new parameters.
3946 * ipa-inline.c (can_inline_edge_by_limits_p,
3947 want_inline_small_function_p): Use new parameters.
3948
3949 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
3950
3951 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3952
3953 2019-01-05 Jakub Jelinek <jakub@redhat.com>
3954
3955 PR middle-end/82564
3956 PR target/88620
3957 * expr.c (expand_assignment): For calls returning VLA structures
3958 if to_rtx is not a MEM, force it into a stack temporary.
3959
3960 PR debug/88635
3961 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3962 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3963 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3964 subexpressions of both operands.
3965 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3966 subrtxes are CONSTANT_P.
3967 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
3968 2018-11-09 changes.
3969
3970 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
3971
3972 * params.def (hot-bb-count-ws-permille): Set to 990.
3973
3974 2019-01-04 Martin Sebor <msebor@redhat.com>
3975
3976 PR c/88546
3977 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3978 leaf.
3979
3980 2019-01-04 Martin Sebor <msebor@redhat.com>
3981
3982 PR c/88363
3983 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3984
3985 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3986
3987 * gdbinit.in: Turn off pagination for the skip commands, restore
3988 it to previous state afterwards.
3989
3990 2019-01-04 Jakub Jelinek <jakub@redhat.com>
3991
3992 PR target/88594
3993 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3994 of GET_MODE (opN) as modes of the libcall arguments.
3995
3996 2019-01-04 Jan Beulich <jbeulich@suse.com>
3997
3998 * config/i386/sse.md
3999 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
4000 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
4001 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
4002 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
4003 avx512f_vmcmp<mode>3<round_saeonly_name>,
4004 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
4005 avx512f_maskcmp<mode>3,
4006 <avx512>_cvt<ssemodesuffix>2mask<mode>,
4007 <avx512>_cvt<ssemodesuffix>2mask<mode>,
4008 *<avx512>_cvtmask2<ssemodesuffix><mode>,
4009 *<avx512>_cvtmask2<ssemodesuffix><mode>,
4010 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
4011 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
4012 <avx512>_gt<mode>3<mask_scalar_merge_name>,
4013 <avx512>_gt<mode>3<mask_scalar_merge_name>,
4014 <avx512>_testm<mode>3<mask_scalar_merge_name>,
4015 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
4016 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
4017 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
4018 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
4019 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
4020 avx512cd_maskb_vec_dup<mode>,
4021 avx512cd_maskw_vec_dup<mode>,
4022 avx512dq_fpclass<mode><mask_scalar_merge_name>,
4023 avx512dq_vmfpclass<mode>,
4024 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
4025 instead of =Yk.
4026
4027 2019-01-03 Martin Sebor <msebor@redhat.com>
4028
4029 PR tree-optimization/88659
4030 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
4031
4032 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
4033
4034 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
4035 unaligned vsx and avoid lxvd2x/stxvd2x.
4036 (gen_lvx_v4si_move): New function.
4037
4038 2019-01-03 Tom de Vries <tdevries@suse.de>
4039
4040 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
4041 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
4042 function.
4043 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
4044
4045 2019-01-03 Tom de Vries <tdevries@suse.de>
4046
4047 * config/nvptx/nvptx.c (struct offload_attrs): New.
4048 (populate_offload_attrs): New function. Factor mask extraction out of
4049 nvptx_reorg. Add extraction of dimensions.
4050 (nvptx_reorg): Use populate_offload_attrs.
4051
4052 2019-01-03 Tom de Vries <tdevries@suse.de>
4053
4054 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
4055 cases for oacc_min_dims_p and routine_p. Add asserts for
4056 oacc_default_dims_p and offload_region_p.
4057
4058 2019-01-03 Tom de Vries <tdevries@suse.de>
4059
4060 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
4061 factored out of ...
4062 (nvptx_goacc_validate_dims): ... here.
4063
4064 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
4065
4066 PR tree-optimization/85574
4067 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
4068 structure.
4069 (struct ssa_equip_hash_traits): Declare.
4070 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
4071
4072 2019-01-03 Jakub Jelinek <jakub@redhat.com>
4073
4074 PR debug/88644
4075 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
4076 change it to qualified_type.
4077
4078 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
4079
4080 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
4081 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
4082
4083 2019-01-02 Martin Sebor <msebor@redhat.com>
4084 Jeff Law <law@redhat.com>
4085
4086 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
4087 (get_range_strlen_tree): Update appropriately.
4088 (get_range_strlen)
4089 * gimple-fold.h (get_range_strlen): Drop unused last argument.
4090
4091 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
4092 rather than set_range_info.
4093 * tree-ssa-strlen.c (set_strlen_range): Extracted from
4094 maybe_set_strlen_range. Handle potentially boundary crossing
4095 cases more conservatively.
4096 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
4097 Call set_strlen_range.
4098 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
4099
4100 PR middle-end/88663
4101 * gimple-fold.c (get_range_strlen): Update prototype to no longer
4102 need the flexp argument.
4103 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
4104 from calls to get_range_strlen. Update comments. Just update
4105 VAL for an unterminated const char array and let the reset of the
4106 code handle it normally. No longer try to set *flexp. Adjust
4107 return value.
4108 (get_range_strlen): Update for the new get_range_strlen API.
4109 (get_maxval_strlen): Similarly.
4110 (gimple_fold_builtin_strlen): Handle update meaning of return value
4111 from get_range_strlen.
4112 * gimple-ssa-sprintf.c (get_string_length): Update for the new
4113 get_range_strlen API.
4114
4115 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
4116
4117 PR lto/88130
4118 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
4119 false at WPA time when body was removed.
4120
4121 2019-01-02 Martin Liska <mliska@suse.cz>
4122
4123 PR tree-optimization/88650
4124 * predict.c (set_even_probabilities): Calculate probability
4125 remainer only when really used.
4126
4127 2019-01-02 Richard Biener <rguenther@suse.de>
4128
4129 PR middle-end/88651
4130 * tree-data-ref.c (analyze_subscript_affine_affine): Use
4131 widest_ints when mangling max_stmt_execution results.
4132
4133 2019-01-02 Richard Biener <rguenther@suse.de>
4134
4135 PR tree-optimization/88621
4136 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
4137 bitfields when canoncalizing.
4138
4139 2019-01-02 Richard Biener <rguenther@suse.de>
4140
4141 PR target/87545
4142 * config/i386/x86-tune-costs.h (intel_cost): Adjust
4143 cost of cheap SSE instruction.
4144
4145 2019-01-02 Richard Biener <rguenther@suse.de>
4146
4147 PR ipa/85574
4148 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
4149 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
4150 function.
4151 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
4152 set after UIDs before splitting them.
4153
4154 2019-01-01 Martin Sebor <msebor@redhat.com>
4155 Jeff Law <law@redhat.com>
4156
4157 * gimple-fold.c (get_range_strlen_tree): Record if the computed
4158 length is optimistic. If it is, then arrange to compute the
4159 conservative length as well.
4160
4161 * gimple-fold.h (get_range_strlen): Update prototype.
4162 * builtins.c (check_access): Update call to get_range_strlen to use
4163 c_strlen_data pointer. Change various variable accesses to instead
4164 pull data from the c_strlen_data structure.
4165 (check_strncat_sizes, expand_builtin_strncat): Likewise.
4166 * calls.c (maybe_warn_nonstring_arg): Likewise.
4167 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
4168 minimum length if maximum lengh is unknown.
4169 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
4170 that used c_strlen, it's no longer needed. Restructure slightly.
4171 (format_string): Set unlikely range appropriately.
4172 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
4173 formatting issues.
4174 (get_range_strlen): Accept c_strlen_data pointer for external
4175 call sites as well. Pass through to call to internal get_range_strlen.
4176 Adjust minlen, maxlen and maxbound as needed.
4177 (get_maxval_strlen): Update comments.
4178 (gimple_fold_builtin_strlen): Update call to get_range_strlen
4179 to use c_strlen_data pointer. Change variable accesses to instead
4180 use c_strlen_data data members.
4181
4182 * gimple-fold.c (get_range_strlen): Update prototype.
4183 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
4184 local variables. Use pdata to return information to caller.
4185 Update calls to get_range_strlen. Update pdata->maxbound.
4186 (get_range_strlen -- static version): Similarly.
4187 (get_range_strlen -- extern version): Update for internal
4188 get_range_strlen API change. Convert to external data format.
4189 (get_maxval_strlen): Similarly.
4190
4191 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
4192
4193 * coverage.c (get_coverage_counts): Use current_function_decl.
4194 * profile.c (read_thunk_profile): New function.
4195 (branch_prob): Add THUNK parameter.
4196 * tree-profile.c (tree_profiling): Handle thunks.
4197 * value-prof.c (init_node_map): Handle thunks.
4198 * value-prof.h (branch_prob): Upate prototype.
4199 (read_thunk_profile): Declare.
4200
4201 2019-01-01 Jakub Jelinek <jakub@redhat.com>
4202
4203 Update copyright years.
4204
4205 * gcc.c (process_command): Update copyright notice dates.
4206 * gcov-dump.c (print_version): Ditto.
4207 * gcov.c (print_version): Ditto.
4208 * gcov-tool.c (print_version): Ditto.
4209 * gengtype.c (create_file): Ditto.
4210 * doc/cpp.texi: Bump @copying's copyright year.
4211 * doc/cppinternals.texi: Ditto.
4212 * doc/gcc.texi: Ditto.
4213 * doc/gccint.texi: Ditto.
4214 * doc/gcov.texi: Ditto.
4215 * doc/install.texi: Ditto.
4216 * doc/invoke.texi: Ditto.
4217 \f
4218 Copyright (C) 2019 Free Software Foundation, Inc.
4219
4220 Copying and distribution of this file, with or without modification,
4221 are permitted in any medium without royalty provided the copyright
4222 notice and this notice are preserved.