231bfe710358500f3dbcb20ccb7aa342f3e1aa6b
[gcc.git] / gcc / ChangeLog
1 2019-06-25 Martin Liska <mliska@suse.cz>
2
3 PR tree-optimization/90978
4 * df-scan.c (df_update_entry_block_defs): Remove dead else
5 branch.
6 (df_update_exit_block_uses): Likewise.
7
8 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
9 Andrew Stubbs <ams@codesourcery.com>
10
11 * config.gcc (thread_file): Set to gcn for AMD GCN.
12 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
13 (TARGET_EMUTLS_VAR_INIT): New hook.
14
15 2019-06-25 Martin Jambor <mjambor@suse.cz>
16
17 PR ipa/90939
18 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
19
20 2019-06-25 Richard Biener <rguenther@suse.de>
21
22 PR tree-optimization/90930
23 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
24 into parallel form in the last pass instance.
25
26 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
27
28 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
29 (arc_legitimize_pic_address): Simplify and cleanup the function.
30 (SYMBOLIC_CONST): Remove.
31 (prepare_pic_move): Likewise.
32 (prepare_move_operands): Handle complex mov cases here.
33 (arc_legitimize_address_0): Remove call to
34 arc_legitimize_pic_address.
35 (arc_legitimize_address): Remove call to
36 arc_legitimize_tls_address.
37 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
38 (movhi_insn): Likewise.
39
40 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
41
42 * gcc/c-family/c-common.c (c_common_nodes_and_builtins): Define
43 alternate "__intN__" name for "__intN" types.
44 * gcc/c/c-parser.c (c_parse_init): Create keyword for "__intN__" type.
45 * gcc/cp/lex.c (init_reswords): Likewise.
46 * gcc/config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
47 PTRDIFF_TYPE.
48 * gcc/cp/cp-tree.h (cp_decl_specifier_seq): New bitfield "int_n_alt".
49 * gcc/c/c-decl.c (declspecs_add_type): Don't pedwarn about "__intN" ISO
50 C incompatibility if alternate "__intN__" form is used.
51 * gcc/cp/decl.c (grokdeclarator): Likewise.
52 * gcc/cp/parser.c (cp_parser_simple_type_specifier): Set
53 decl_specs->int_n_alt if "__intN__" form is used.
54 * gcc/gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
55 format of "__intN" types for UINTMAX_TYPE.
56 * gcc/brig/brig-lang.c (brig_build_c_type_nodes): Accept "__intN__"
57 format of "__intN" types for SIZE_TYPE.
58 * gcc/lto/lto-lang.c (lto_build_c_type_nodes): Likewise.
59 * gcc/stor-layout.c (initialize_sizetypes): Accept "__intN__"
60 format of "__intN" types for SIZETYPE.
61 * gcc/tree.c (build_common_tree_nodes): Accept "__intN__"
62 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
63 * gcc/doc/invoke.texi: Document that __intN__ disables pedantic
64 warnings.
65
66 2019-06-25 Jan Hubicka <jh@suse.cz>
67
68 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
69 base2_alias_set is non-zero before doing TBAA based disambiguation.
70
71 2019-06-25 Martin Liska <mliska@suse.cz>
72
73 PR tree-optimization/90973
74 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
75 of prologue and epilogue.
76
77 2019-06-24 Jan Hubicka <jh@suse.cz>
78
79 * ipa-utils.h (type_with_linkage_p): Verify that type is
80 CXX_ODR_P.
81 (odr_type_p): Remove extra return.
82 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
83 hash STRING_FLAG only for arrays and integers.
84 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
85 Update analogously.
86 * tree-streamer-out.c (pack_ts_type_common_value_fields):
87 Likewise.
88 * print-tree.c (print_node): Print cxx-odr-p
89 and string-flag.
90 * tree.c (need_assembler_name_p): Also check that type
91 is CXX_ODR_TYPE_P
92 (verify_type_variant): Update verification of SRING_FLAG;
93 also check CXX_ODR_P.
94 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
95 (TYPE_STRING_FLAG): Use it.
96 (TYPE_CXX_ODR_P): New macro.
97 * dwarf2out.c (gen_array_type_die): First check that type
98 is an array and then test string flag.
99
100 2019-06-24 Richard Biener <rguenther@suse.de>
101
102 PR tree-optimization/90972
103 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
104 in common code, dealing with STRING_CST properly.
105
106 2019-06-24 Richard Biener <rguenther@suse.de>
107
108 PR tree-optimization/90930
109 PR tree-optimization/90316
110 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
111 decrement of limit.
112
113 2019-06-24 Martin Sebor <msebor@redhat.com>
114
115 * tree-pretty-print.h: Remove unnecessary punctuation characters
116 from a diagnostic.
117 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
118
119 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
120
121 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
122 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
123 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
124
125 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
126
127 * config/rs6000/darwin.h: Handle GCC target pragma.
128
129 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
130
131 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
132
133 2019-06-22 Jeff Law <law@redhat.com>
134
135 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
136
137 2019-06-22 Jan Hubicka <jh@suse.cz>
138
139 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
140 give up on bitfields; continue searching for different refs
141 appearing later.
142
143 2019-06-21 Jakub Jelinek <jakub@redhat.com>
144
145 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
146 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
147 containing the offset as possible simd lane access. Look through
148 widening conversion. Move the
149 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
150
151 2019-06-21 Richard Biener <rguenther@suse.de>
152
153 PR tree-optimization/90930
154 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
155 flag on new stmts to avoid re-processing them.
156
157 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
158
159 PR c++/90875 - added -Wswitch-outside-range option
160 * doc/invoke.texi (Wswitch-outside-range): Document.
161
162 2019-06-21 Jeff Law <law@redhat.com>
163
164 PR tree-optimization/90949
165 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
166 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
167
168 2019-06-21 Richard Biener <rguenther@suse.de>
169
170 PR debug/90914
171 * dwarf2out.c (prune_unused_types_walk): Always consider
172 function-local extern declarations as used.
173
174 2019-06-21 Richard Biener <rguenther@suse.de>
175
176 PR tree-optimization/90913
177 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
178 the scalar variant of if-conversion versioning.
179
180 2019-06-21 Jakub Jelinek <jakub@redhat.com>
181
182 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
183 create another "omp scan inscan exclusive" array if
184 !ctx->scan_inclusive.
185 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
186 (lower_omp_scan): Likewise.
187 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
188 2-bit bitfield for simd_lane_access_p member.
189 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
190 aux == (void *)-4 as simd lane access.
191 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
192 comment with permutations to show the canonical permutation order.
193 (vectorizable_scan_store): Handle exclusive scan.
194 (vectorizable_store): Call vectorizable_scan_store even for
195 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
196
197 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
198 "omp simd array" arrays with one byte elements.
199
200 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
201
202 * config/alpha/alpha.md (@unaligned_store<mode>):
203 Rename from unaligned_store<mode>.
204 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
205 * config/alpha/sync.md (@load_locked_<mode>): Rename
206 from load_locked_<mode>.
207 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
208 (@atomic_compare_and_swap<mode>_1): Rename
209 from atomic_compare_and_swap<mode>_1.
210 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
211 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
212 Use gen_reload_in_aligned and gen_unaligned_store.
213 (emit_load_locked): Remove.
214 (emit_store_conditional): Ditto.
215 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
216 (alpha_split_compare_and_swap): Ditto.
217 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
218 (alpha_split_compare_and_swap_12): Use gen_load_locked
219 and gen_store_conditional.
220 (alpha_split_atomic_exchange): Ditto.
221 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
222 (alpha_split_atomic_exchange_12): Use gen_load_locked
223 and gen_store_conditional.
224
225 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
226
227 * config/aarch64/aarch64-errata.h: New file.
228 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
229 (CA53_ERR_843419_SPEC): Delete.
230 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
231 * config/aarch64/aarch64-linux.h: Likewise.
232 * config/aarch64/aarch64-netbsd.h: Likewise.
233 * config/aarch64/aarch64-freebsd.h: Likewise.
234
235 2019-06-20 Marek Polacek <polacek@redhat.com>
236
237 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
238
239 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
240
241 * config/rs6000/rs6000.md (isa attribute): Add support for
242 for a future processor.
243
244 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
245
246 PR target/54855
247 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
248 standard scalar operation pattern for V2DF.
249 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
250 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
251 (*ieee_<ieee_maxmin><mode>3): Likewise.
252 (vec_setv2df_0): Likewise.
253
254 2019-06-20 Jan Hubicka <jh@suse.cz>
255
256 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
257 parameter; it has no use in gimple memory model.
258 (indirect_ref_may_alias_decl_p): Update.
259
260 2019-06-20 Martin Liska <mliska@suse.cz>
261
262 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
263 to 10.
264
265 2019-06-20 Jakub Jelinek <jakub@redhat.com>
266
267 * tree-vect-stmts.c (enum scan_store_kind): New type.
268 (scan_store_can_perm_p): Change last argument from int * to
269 vec<enum scan_store_kind> *, record precisely which permutations
270 need whole vector left shift or that plus VEC_COND_EXPR.
271 (vectorizable_scan_store): Adjust caller, use whole vector left shift
272 and additional VEC_COND_EXPR only for those iterations that need it.
273
274 2019-06-20 Alexandre Oliva <oliva@adacore.com>
275
276 * config.gcc: Fix ARM --with-fpu checking and error message.
277
278 2019-06-19 Marek Polacek <polacek@redhat.com>
279
280 PR c++/60364 - noreturn after first decl not diagnosed.
281 * attribs.c (get_attribute_namespace): No longer static.
282 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
283 attributes.
284 (attr_noreturn_exclusions): Make it extern.
285 * attribs.h (get_attribute_namespace): Declare.
286 * tree-inline.c (function_attribute_inlinable_p): Use
287 get_attribute_name.
288
289 2019-06-19 Martin Sebor <msebor@redhat.com>
290
291 PR tree-optimization/90626
292 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
293
294 PR tree-optimization/90626
295 * tree-ssa-strlen.c (strxcmp_unequal): New function.
296 (handle_builtin_string_cmp): Call it.
297
298 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
299
300 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
301 and DARWIN_NOPIE_SPEC.
302 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
303 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
304 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
305 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
306 (DARWIN_EXPORT_DYNAMIC): Delete.
307 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
308 and pie options processing to darwin.h.
309 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
310
311 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
312
313 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
314 in computing the number of options to be moved.
315
316 2019-06-19 Maya Rashish <coypu@sdf.org>
317
318 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
319 (CLEAR_INSN_CACHE) Use it.
320
321 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
322
323 * config/i386/i386.md (cmpstrnsi): Remove dead code.
324
325 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
326
327 PR middle-end/84521
328 * builtins.c (expand_builtin_setjmp_setup): Save
329 hard_frame_pointer_rtx.
330 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
331 restore fp.
332 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
333 non-local goto.
334 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
335 elimination code.
336 (remove_reg_equal_offset_note): Remove unused function.
337 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
338 code.
339 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
340 (arc_builtin_setjmp_frame_value): Remove function.
341 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
342 (avr_builtin_setjmp_frame_value): Remove function.
343 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
344 (ix86_builtin_setjmp_frame_value): Remove function.
345 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
346 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
347 (sparc_builtin_setjmp_frame_value): Remove function.
348 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
349 (vax_builtin_setjmp_frame_value): Remove function.
350 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
351 pointer if has_nonlocal_label.
352
353 2019-06-19 Jakub Jelinek <jakub@redhat.com>
354
355 * doc/md.texi: Document vec_shl_<mode> pattern.
356 * optabs.def (vec_shl_optab): New optab.
357 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
358 argument, if == vec_shl_optab, check for left whole vector shift
359 pattern rather than right shift.
360 (expand_vec_perm_const): Add vec_shl_optab support.
361 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
362 in the comment.
363 * tree-vect-generic.c (lower_vec_perm): Support permutations which
364 can be handled by vec_shl_optab.
365 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
366 (check_scan_store): Use it.
367 (vectorizable_scan_store): If target can't do normal permutations,
368 try to use whole vector left shifts and if needed a VEC_COND_EXPR
369 after it.
370 * config/i386/sse.md (vec_shl_<mode>): New expander.
371
372 * omp-low.c (lower_rec_input_clauses): Handle references properly
373 in inscan clauses.
374 (lower_omp_scan): Likewise.
375
376 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
377
378 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
379 mem_mode is BLKmode.
380
381 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
382
383 PR target/90922
384 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
385 pointer adjustment for the case of no callee-saved registers and
386 stack frame bigger than 128 bytes.
387
388 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
389
390 PR middle-end/90862
391 * omp-low.c (check_omp_nesting_restrictions): Handle
392 GF_OMP_TARGET_KIND_OACC_DECLARE.
393
394 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
395
396 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
397 (@add<mode>3_carry): Rename from add<mode>3_carry.
398 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
399 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
400 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
401 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
402 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
403 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
404 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
405 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
406 (cmpstrnsi): Use gen_cmp_1.
407 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
408 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
409 (@umonitor_<mode>): Rename from umonitor_<mode>.
410 * config/i386/i386-expand.c (ix86_expand_copysign):
411 Use gen_copysign3_const and gen_copysign3_var.
412 (ix86_expand_xorsign): Use gen_xorsign3_1.
413 (ix86_expand_branch): Use gen_sub3_carry_ccc,
414 gen_sub3_carry_ccgz and gen_cmp1.
415 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
416 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
417 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
418 (ix86_split_lshr): Ditto.
419 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
420
421 2019-06-18 Jason Merrill <jason@redhat.com>
422
423 * tree.c (build_constructor): Add MEM_STAT_DECL.
424
425 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
426
427 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
428 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
429 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
430 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
431 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
432 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
433 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
434 Use CC_NZC instead of CC.
435 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
436 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
437 (aarch64_print_operand): Handle E_CC_NZCmode.
438 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
439 of gen_set_clobber_cc.
440
441 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
442
443 * config/aarch64/aarch64-sve.md: Tabify file.
444
445 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
446
447 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
448 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
449 * config/aarch64/aarch64-sve.md: Use it.
450
451 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
452
453 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
454 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
455 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
456 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
457 (aarch64_expand_sve_vec_cmp_int): Use it.
458 (aarch64_expand_sve_vec_cmp_float): Likewise.
459 * config/aarch64/aarch64-sve.md: Likewise throughout.
460
461 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
462 Kugan Vivekanandarajah <kuganv@linaro.org>
463
464 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
465 (*cond_<optab><mode>_z): Fold into...
466 (*cond_<optab><mode>_any): ...here. Also handle cases in which
467 operand 4 can be tied to operand 0 (either inherently or via RA).
468
469 2019-06-18 Richard Biener <rguenther@suse.de>
470
471 PR debug/90900
472 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
473 as if optimized away.
474
475 2019-06-18 Tom de Vries <tdevries@suse.de>
476
477 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
478 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
479 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
480 Rename to ...
481 (define_insn "@set_softstack_<mode>"): ... this.
482 (define_insn "omp_simt_enter_<mode>"): Rename to ...
483 (define_insn "@omp_simt_enter_<mode>"): ... this.
484 (define_insn "omp_simt_exit_<mode>"): Rename to ...
485 (define_insn "@omp_simt_exit_<mode>"): ... this.
486
487 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
488
489 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
490 vf parameter. Restore the previous iv step of nscalars_step,
491 but give it iv_type rather than compare_type. Tweak code order
492 to match the comments.
493 (vect_set_loop_condition_masked): Update accordingly.
494 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
495 for iv_precision. Tweak comment formatting.
496
497 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
498
499 * config/darwin.c: Strip trailing whitespace.
500
501 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
502
503 * config/darwin.c (darwin_emit_unwind_label): New default to false.
504 (darwin_override_options): Set darwin_emit_unwind_label as needed.
505
506 2019-06-18 Martin Jambor <mjambor@suse.cz>
507
508 PR ipa/90889
509 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
510 caller does not have flag_ipa_cp set.
511
512 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
513
514 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
515 from "*fold_left_plus_<mode>", updated operands order.
516 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
517 * internal-fn.c (mask_fold_left_direct): New define.
518 (expand_mask_fold_left_optab_fn): Likewise.
519 (direct_mask_fold_left_optab_supported_p): Likewise.
520 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
521 * optabs.def (mask_fold_left_plus_optab): New optab.
522 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
523 masked internal_fn for a reduction ifn.
524 (vectorize_fold_left_reduction): Add support for masking reductions.
525
526 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
527
528 PR middle-end/80791
529 * target.def (predict_doloop_p): New hook.
530 * targhooks.h (default_predict_doloop_p): New declaration.
531 * targhooks.c (default_predict_doloop_p): New function.
532 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
533 * doc/tm.texi: Regenerate.
534 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
535 (TARGET_PREDICT_DOLOOP_P): New macro.
536 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
537
538 2019-06-17 Jakub Jelinek <jakub@redhat.com>
539
540 * omp-low.c (struct omp_context): Add scan_inclusive field.
541 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
542 if inclusive scan.
543 (struct omplow_simd_context): Add lastlane member.
544 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
545 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
546 1 or 2 argument.
547 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
548 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
549 (lower_omp_scan): New function.
550 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
551 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
552 check 3rd argument if present rather than 2nd.
553 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
554 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
555 2-bit bitfield.
556 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
557 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
558 than 2nd.
559 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
560 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
561 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
562 init.
563 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
564 IFN_GOMP_SIMD_LANE argument.
565 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
566 encoded ->aux value.
567 * tree-vect-stmts.c: Include attribs.h.
568 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
569 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
570 functions.
571 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
572 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
573
574 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
575
576 PR target/62055
577 * config/i386/i386.md (*nabstf2_1): New insn pattern.
578 (*nabs<mode>2_1): Ditto.
579 (nabs sse-reg splitter): New splitter.
580 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
581
582 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
583
584 PR bootstrap/90873.
585 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
586 TMR index check.
587
588 2019-06-17 Tom de Vries <tdevries@suse.de>
589
590 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
591 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
592 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
593 ...
594 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
595 match_operand 0.
596 (define_insn "omp_simt_enter_insn"): Rename to ...
597 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
598 match_operand 0, 1 and 2, as well as the unspec_volatile result.
599 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
600 gen_omp_simt_enter_si.
601 (define_expand "omp_simt_exit"): New.
602 (define_insn "omp_simt_exit"): Rename to ...
603 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
604 match_operand 0.
605
606 2019-06-17 Matthew Green <mrg@eterna.com.au>
607 Maya Rashish <coypu@sdf.org>
608
609 * config.gcc (aarch64*-*-netbsd*): New target.
610 * config/aarch64/aarch64-netbsd.h: New file.
611 * config/aarch64/t-aarch64-netbsd: Likewise.
612
613 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
614
615 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
616 the access path from base to first VIEW_CONVERT_EXPR or
617 BIT_FIELD_REF.
618
619 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
620
621 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
622 access path on BIT_FIELD_REFs.
623
624 2019-06-17 Martin Liska <mliska@suse.cz>
625
626 PR ipa/90874
627 * ipa-utils.h (odr_type_p): Remove dead code.
628
629 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
630
631 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
632 alternative Solaris 11.4 format.
633 * configure: Regenerate.
634
635 2019-06-17 Tom de Vries <tdevries@suse.de>
636
637 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
638 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
639 match_operand 0.
640 (define_insn "call_value_insn"): Rename to ...
641 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
642 match_operand 0.
643 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
644 DI.
645
646 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
647
648 PR middle-end/64242
649 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
650 frame clobbers and schedule block.
651 (builtin_longjmp): Likewise.
652
653 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
654
655 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
656 describe how to perform MSPABI compliant 64-bit shift.
657 * config/msp430/msp430.md (ashldi3): New define_expand.
658 (ashrdi3): New define_expand.
659 (lshrdi3): New define_expand.
660
661 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
662
663 * doc/sourcebuild.texi: Document new effective target keyword
664 longlong64.
665
666 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
667
668 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
669 indirect_refs_may_alias_p): Revert accidental commits.
670
671 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
672 at the end of structures.
673
674 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
675
676 * config/darwin.c (machopic_indirect_call_target): Use renamed
677 darwin_picsymbol_stubs to decide on output.
678 (darwin_override_options): Handle darwin_picsymbol_stubs.
679 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
680 (LD64_VERSION): Revise default.
681 * config/darwin.opt: (mpic-symbol-stubs): New option.
682 (darwin_picsymbol_stubs): New variable.
683 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
684 rename to TARGET_MACHO_PICSYM_STUBS.
685 * config/i386/i386.c (output_pic_addr_const): Likewise.
686 * config/i386/i386.h Likewise.
687 * config/rs6000/darwin.h: Likewise.
688 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
689 darwin_picsymbol_stubs.
690
691 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
692
693 * config/darwin.opt (prebind, noprebind, seglinkedit,
694 noseglinkedit): Add RejectNegative.
695
696 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
697
698 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
699 in my previous patch.
700
701 2019-06-16 Tom de Vries <tdevries@suse.de>
702
703 PR tree-optimization/89376
704 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
705
706 2019-06-15 Maya Rashish <coypu@sdf.org>
707
708 * doc/invoke.texi (Spec Files): Update location of the
709 Fortran spec file.
710
711 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
712
713 * doc/extend.texi (Common Function Attributes): Clarify
714 no_sanitize. Fix grammar.
715
716 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
717
718 * tree-ssa-alias.c (alias_stats): Add
719 nonoverlapping_component_refs_p_may_alias,
720 nonoverlapping_component_refs_p_no_alias,
721 nonoverlapping_component_refs_of_decl_p_may_alias,
722 nonoverlapping_component_refs_of_decl_p_no_alias.
723 (dump_alias_stats): Dump them.
724 (nonoverlapping_component_refs_of_decl_p): Add stats.
725 (nonoverlapping_component_refs_p): Add stats; do not stop on first
726 ARRAY_REF.
727
728 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
729
730 * config/i386/i386.md (and<mode>3): Generate zero-extends for
731 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
732 only.
733 (*anddi3_doubleword): Split before reload. Merge with
734 anddi->zext pre-reload splitter.
735 (*andndi3_doubleword): Split before reload.
736 (*<code>di3_doubleword): Ditto.
737 (*one_cmpldi2_doubleword): Ditto.
738
739 2019-06-15 Jakub Jelinek <jakub@redhat.com>
740
741 PR middle-end/90779
742 * gimplify.c: Include omp-offload.h and context.h.
743 (gimplify_bind_expr): Add "omp declare target" attributes
744 to static block scope variables inside of target region or target
745 functions.
746
747 2019-06-15 Tom de Vries <tdevries@suse.de>
748
749 PR tree-optimization/90009
750 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
751 Return NULL if bb contains IFN_UNIQUE.
752
753 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
754
755 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
756 (un): New define_mode_attr.
757 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
758 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
759 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
760 merge into ...
761 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
762
763 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
764
765 * config/darwin.opt: Add RejectNegative where needed, reorder
766 and add minimal functional descriptions.
767
768 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
769
770 PR rtl-optimization/90765
771 * calls.c (update_stack_alignment_for_call): New function.
772 (expand_call): Call update_stack_alignment_for_call when
773 outgoing parameter is passed in the stack.
774 (emit_library_call_value_1): Likewise.
775 * function.c (locate_and_pad_parm): Don't update
776 stack_alignment_needed and preferred_stack_boundary.
777
778 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
779
780 PR target/90877
781 * config/i386/i386-features.c
782 (dimode_scalar_chain::compute_convert_gain): Replace
783 mmxsse_to_integer with sse_to_integer.
784 * config/i386/i386.c (ix86_register_move_cost): Verify that
785 moves between MMX and non-MMX units require secondary memory.
786 Correct costs of moves between SSE and integer units.
787 * config/i386/i386.h (processor_costs): Rename cost of moving
788 SSE register to integer to sse_to_integer. Rename cost of
789
790 2019-06-14 Matt Thomas <matt@3am-software.com>
791 Matthew Green <mrg@eterna.com.au>
792 Nick Hudson <skrll@netbsd.org>
793 Maya Rashish <coypu@sdf.org>
794 Richard Earnshaw <rearnsha@arm.com>
795
796 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
797 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
798 * config/arm/netbsd-eabi.h: New file.
799 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
800 redefining.
801 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
802 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
803 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
804 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
805
806 2019-06-14 Richard Biener <rguenther@suse.de>
807
808 * tree-loop-distribution.c (classify_partition): Return
809 whether a reduction appeared in all partitions and do not
810 stop builtin detection because of this.
811 (distribute_loop): Sort a non-builtin partition last if
812 there's a reduction in all partitions and make sure the
813 partition prevailing as last is not a builtin.
814
815 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
816
817 PR ipa/90401
818 * ipa-prop.c (add_to_agg_contents_list): New function.
819 (clobber_by_agg_contents_list_p): Likewise.
820 (extract_mem_content): Likewise.
821 (get_place_in_agg_contents_list): Delete.
822 (determine_known_aggregate_parts): Renamed from
823 determine_locally_known_aggregate_parts. New parameter
824 aa_walk_budget_p.
825
826 2019-06-13 Martin Sebor <msebor@redhat.com>
827
828 PR tree-optimization/90662
829 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
830 to the same type.
831
832 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
833
834 PR bootstrap/90873
835 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
836 dbase is not TARGET_MEM_REF.
837
838 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
839
840 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
841 Update all uses.
842 (and<mode>3): Use gen_extend_insn instead of indirect functions.
843 Do not generate DImode extends for 32bit targets.
844 (and->zext post-reload splitter): Use gen_extend_insn
845 instead of indirect functions.
846 (anddi->zext pre-reload splitter): New.
847 (*zext<mode>_doubleword_and): Remove.
848 (*zext<mode>_doubleword): Ditto.
849 (*zextsi_doubleword): Dittto.
850
851 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
852
853 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
854 Use gen_sub3_insn instead of indirect function.
855 (ix86_expand_ashl_const): Use gen_add2_insn instead of
856 indirect function.
857 (ix86_adjust_counter): Ditto.
858
859 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
860 Lijia He <helijia@linux.ibm.com>
861
862 PR tree-optimization/77820
863 * tree-ssa-threadedge.c
864 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
865 function.
866 (thread_across_edge): Add call to
867 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
868
869 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
870
871 * config/darwin-driver.c (validate_macosx_version_min): New.
872 (darwin_default_min_version): Cleanup and validate supplied version.
873 (darwin_driver_init): Likewise and push cleaned version into opts.
874
875 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
876
877 PR tree-optimization/90869
878 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
879 converts in MEM_REF referencing decl rather than view converts
880 from decl type to MEM_REF type.
881
882 2019-06-13 Richard Biener <rguenther@suse.de>
883
884 PR tree-optimization/90856
885 * tree-sra.c (build_ref_for_model): Only use
886 build_reconstructed_reference when address-spaces are the same.
887
888 2019-06-13 Jakub Jelinek <jakub@redhat.com>
889
890 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
891 wrap ei variable name in the declaration in ()s.
892 (nvptx_single): Actually use mode_label variable. Formatting fix.
893
894 2019-06-13 Richard Biener <rguenther@suse.de>
895
896 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
897 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
898 also return the condition stmt.
899 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
900 loop we can version and version that, reusing the loop version
901 created by if-conversion instead of versioning again.
902
903 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
904
905 * gimple-loop-versioning.cc (prune_loop_conditions): Use
906 may_contain_p.
907 * tree-vrp (value_range_base::may_contain_p): Call into
908 value_inside_range.
909 (value_inside_range): Make private inside value_range_base class.
910 Take min/max from *this.
911 (range_includes_p): Remove.
912 * tree-vrp.h (value_range_base): Add value_inside_range.
913 (range_includes_p): Remove.
914 (range_includes_zero_p): Call may_contain_p.
915 * vr-values.c (compare_range_with_value): Same.
916
917 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
918
919 * doc/extend.texi (ARC Function Attributes): Update info.
920
921 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
922
923 PR tree-optimization/89713
924 * doc/invoke.texi (-ffinite-loops): Document new option.
925 * common.opt (-ffinite-loops): New option.
926 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
927 IFN_GOACC_LOOP calls as necessary.
928 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
929 is finite.
930 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
931 IFN_GOACC_LOOP call is not used.
932 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
933
934 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
935
936 PR target/88838
937 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
938 compare_type is not with Pmode size, we will create an IV with
939 Pmode size with truncated use (i.e. converted to the correct type).
940 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
941 (vect_iv_limit_for_full_masking): New. Factored out of
942 vect_set_loop_condition_masked.
943 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
944 (vect_iv_limit_for_full_masking): Declare.
945
946 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
947
948 PR target/88834
949 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
950 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
951 (get_alias_ptr_type_for_ptr_address): Likewise.
952 (add_iv_candidate_for_use): Add scaled index candidate if useful.
953 * tree-ssa-address.c (preferred_mem_scale_factor): New.
954 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
955 allow_reg_index_p.
956
957 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
958
959 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
960
961 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
962
963 * common/config/pru/pru-common.c: New file.
964 * config.gcc: Add PRU target.
965 * config/pru/alu-zext.md: New file.
966 * config/pru/constraints.md: New file.
967 * config/pru/predicates.md: New file.
968 * config/pru/pru-opts.h: New file.
969 * config/pru/pru-passes.c: New file.
970 * config/pru/pru-pragma.c: New file.
971 * config/pru/pru-protos.h: New file.
972 * config/pru/pru.c: New file.
973 * config/pru/pru.h: New file.
974 * config/pru/pru.md: New file.
975 * config/pru/pru.opt: New file.
976 * config/pru/t-pru: New file.
977 * doc/extend.texi: Document PRU pragmas.
978 * doc/invoke.texi: Document PRU-specific options.
979 * doc/md.texi: Document PRU asm constraints.
980
981 2019-06-12 Martin Sebor <msebor@redhat.com>
982
983 PR middle-end/90676
984 * tree-pretty-print.c (dump_mem_ref): New function. Include
985 MEM_REF type in output when different size than operand.
986 (dump_generic_node): Move code to dump_mem_ref and call it.
987
988 2019-06-12 Martin Sebor <msebor@redhat.com>
989
990 PR tree-optimization/90662
991 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
992 to arrays.
993
994 2019-06-12 Tom de Vries <tdevries@suse.de>
995
996 PR tree-optimization/90009
997 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
998
999 2019-06-12 Martin Liska <mliska@suse.cz>
1000
1001 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
1002 the created map.
1003 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
1004 * mem-stats.h (mem_alloc_description::mem_alloc_description):
1005 Do not sanitize created maps.
1006
1007 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
1008
1009 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
1010 value_range::singleton_p.
1011 * tree-vrp.c (value_range_constant_singleton): Remove.
1012 * tree-vrp.h (value_range_constant_singleton): Remove.
1013 * vr-values.c (vr_values::singleton): Use
1014 value_range::singleton_p.
1015
1016 2019-06-12 Jakub Jelinek <jakub@redhat.com>
1017
1018 PR target/90811
1019 * cfgexpand.c (align_local_variable): Add really_expand argument,
1020 don't SET_DECL_ALIGN if it is false.
1021 (add_stack_var): Add really_expand argument, pass it through to
1022 align_local_variable.
1023 (expand_one_stack_var_1): Pass true as really_expand to
1024 align_local_variable.
1025 (expand_one_ssa_partition): Pass true as really_expand to
1026 add_stack_var.
1027 (expand_one_var): Pass really_expand through to add_stack_var.
1028
1029 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
1030
1031 * config/arm/iterators.md (VABAL): New int iterator.
1032 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
1033 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U
1034 values.
1035
1036 2019-06-12 Martin Liska <mliska@suse.cz>
1037
1038 * value-prof.c (stream_out_histogram_value): Only first value
1039 can't be negative.
1040
1041 2019-06-12 Jakub Jelinek <jakub@redhat.com>
1042
1043 PR c/90760
1044 * symtab.c (symtab_node::set_section): Allow being called on aliases
1045 as long as they aren't analyzed yet.
1046
1047 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
1048
1049 * config/mips/mips.c (mips_final_postscan_insn): Modify call
1050 to `mips_set_text_contents_type' to indicate whether a
1051 non-debug insn follows.
1052
1053 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
1054
1055 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
1056 enabling -mpcrel by default.
1057 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
1058 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
1059 that the test against -mcpu=future is done first. Then test if
1060 -mprefixed-addr is on for -mpcrel.
1061 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
1062
1063 2019-06-11 Jakub Jelinek <jakub@redhat.com>
1064
1065 PR target/90811
1066 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
1067 instead of and.u%d.
1068
1069 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
1070
1071 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
1072
1073 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
1074
1075 PR c++/90449 - add -Winaccessible-base option.
1076 * doc/invoke.texi (Winaccessible-base): Document.
1077
1078 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
1079
1080 PR tree-optimization/62041
1081 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
1082
1083 2019-06-11 Jason Merrill <jason@redhat.com>
1084
1085 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
1086 * tree.c (get_tree_code_name): Likewise.
1087 * print-tree.c (print_node): Only briefly print a node with an
1088 invalid code.
1089
1090 2019-06-11 Jakub Jelinek <jakub@redhat.com>
1091
1092 PR bootstrap/90819
1093 * trans-mem.c (tm_memopt_compute_available): Add assertion
1094 that blocks is not empty. Formatting fix.
1095
1096 2019-06-11 Martin Liska <mliska@suse.cz>
1097
1098 PR c++/87847
1099 * hash-table.h: Extend create_gcc, add one parameter
1100 that is passed into hash_table::hash_table.
1101
1102 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
1103
1104 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
1105 New prototype.
1106 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
1107 Emit clobber also for non-sse operations.
1108 (ix86_split_fp_absneg_operator): New function.
1109 * config/i386/i386.md (SSEMODEF): New mode iterator.
1110 (ssevecmodef): New mode attribute.
1111 (<code>tf2): Use absneg code iterator.
1112 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
1113 Add three-operand AVX alternatives.
1114 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
1115 Use absneg code iterator and X87MODEF mode iterator.
1116 (absneg fp_reg non-sse splitter): Call absneg code iterator
1117 and X87MODEF mode iterator.
1118 (absneg general_reg non-sse splitter): Use absneg code iterator
1119 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
1120 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
1121 code iterator. Add three-operand AVX alternative.
1122 (absneg sse_reg splitter): Use absneg code iterator
1123 and SSEMODEF mode iterator. Handle AVX operands.
1124 (absneg fp_reg splitter): Use absneg code iterator
1125 and MODEF mode iterator.
1126 (absneg general_reg splitter): Merge splitters using MODEF mode
1127 iterator. Use absneg code iterator. Call
1128 ix86_split_fp_absneg_operator.
1129 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
1130 Do not enable for non-sse modes before reload.
1131 (CSGNMODE): Remove.
1132 (CSGNVMODE): Ditto.
1133 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
1134 ssevecmodef mode attribute instaed of CSGNVMODE.
1135 (copysign<mode>3_const): Ditto.
1136 (copysign<mode>3_var): Ditto.
1137 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
1138 Use absneg code iterator. Simplify code using std::swap.
1139 * config/i386/predicates.md (absneg_operator): Remove.
1140
1141 2019-06-10 Martin Sebor <msebor@redhat.com>
1142
1143 * gimple-fold.c (get_range_strlen): Update comment that didn't
1144 make it into r267503 or related commits.
1145
1146 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
1147
1148 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
1149 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
1150
1151 2019-06-10 Jakub Jelinek <jakub@redhat.com>
1152
1153 * tree.def (OMP_SCAN): New tree code.
1154 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
1155 OMP_CLAUSE_EXCLUSIVE.
1156 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
1157 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
1158 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
1159 OMP_CLAUSE_{IN,EX}CLUSIVE.
1160 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
1161 * tree-nested.c (convert_nonlocal_reference_stmt,
1162 convert_local_reference_stmt, convert_gimple_call): Handle
1163 GIMPLE_OMP_SCAN.
1164 * tree-pretty-print.c (dump_omp_clause): Handle
1165 OMP_CLAUSE_{IN,EX}CLUSIVE.
1166 (dump_generic_node): Handle OMP_SCAN.
1167 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
1168 * gimple.h (gomp_scan): New type.
1169 (is_a_helper <gomp_scan *>::test,
1170 is_a_helper <const gomp_scan *>::test): New templates.
1171 (gimple_build_omp_scan): Declare.
1172 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
1173 gimple_omp_scan_set_clauses): New inline functions.
1174 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
1175 * gimple.c (gimple_build_omp_scan): New function.
1176 (gimple_copy): Handle GIMPLE_OMP_SCAN.
1177 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
1178 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
1179 GIMPLE_OMP_TASKGROUP.
1180 (dump_gimple_omp_scan): New function.
1181 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
1182 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
1183 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
1184 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
1185 (is_gimple_stmt): Handle OMP_SCAN.
1186 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
1187 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
1188 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
1189 mentioned in nested #pragma omp scan. Handle
1190 OMP_CLAUSE_{IN,EX}CLUSIVE.
1191 (gimplify_expr): Handle OMP_SCAN.
1192 * omp-low.c (check_omp_nesting_restrictions): For parent context,
1193 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
1194 simd constructs.
1195 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
1196 GIMPLE_OMP_SCAN.
1197
1198 2019-06-10 Martin Liska <mliska@suse.cz>
1199
1200 * ipa-cp.c (ignore_edge_p): New function.
1201 (build_toporder_info): Use it.
1202 * ipa-inline.c (ignore_edge_p): New function.
1203 (inline_small_functions): Use it.
1204 * ipa-pure-const.c (ignore_edge_for_nothrow):
1205 Verify opt_for_fn for caller and callee.
1206 (ignore_edge_for_pure_const): Likewise.
1207 * ipa-reference.c (ignore_edge_p): Extend to check
1208 for opt_for_fn.
1209 * ipa-utils.c (searchc): Refactor.
1210 * ipa-utils.h: Fix coding style.
1211
1212 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
1213
1214 * config/arc/arc.c (arc_rtx_costs): Update costs.
1215
1216 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
1217
1218 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
1219 (arc_split_ior): Likewise.
1220 (arc_check_mov_const): Likewise.
1221 (arc_split_mov_const): Likewise.
1222 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
1223 (arc_rtx_costs): Replace check Crr with Cax constraint.
1224 (prepare_move_operands): Cleanup, remove unused code.
1225 (arc_split_ior): New function.
1226 (arc_check_ior_const): Likewise.
1227 (arc_split_mov_const): Likewise.
1228 (arc_check_mov_const): Likewise.
1229 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
1230 in define_insn_and_split pattern.
1231 (iorsi3): Likewise.
1232 (mulsi3_v2): Add new matching variant.
1233 (andsi3_i): Cleanup pattern.
1234 (rotrsi3_cnt1): Update pattern.
1235 (rotrsi3_cnt8): New pattern.
1236 (ashlsi2_cnt8): Likewise.
1237 (ashlsi2_cnt16): Likewise.
1238 * config/arc/constraints.md (C0p): Update constraint.
1239 (Crr): Remove it.
1240 (C0x): New pattern.
1241 (Cax): New pattern.
1242
1243 2019-06-10 Martin Liska <mliska@suse.cz>
1244
1245 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
1246 Update coding style.
1247 (sem_item_optimizer::dump_cong_classes):
1248 Print how many items are in a non-singular class. Improve
1249 coding style.
1250
1251 2019-06-10 Martin Liska <mliska@suse.cz>
1252
1253 * value-prof.c (dump_histogram_value): Change dump format.
1254 (gimple_mod_subtract_transform): Remove legacy comment.
1255
1256 2019-06-10 Martin Liska <mliska@suse.cz>
1257
1258 * value-prof.c (dump_histogram_value): Print histogram values
1259 only if present.
1260
1261 2019-06-10 Martin Liska <mliska@suse.cz>
1262
1263 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
1264 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
1265 * ipa-profile.c (ipa_profile_generate_summary):
1266 Use get_most_common_single_value.
1267 * tree-profile.c (gimple_init_gcov_profiler):
1268 Instrument with __gcov_one_value_profiler_v2
1269 and __gcov_indirect_call_profiler_v4.
1270 * value-prof.c (dump_histogram_value):
1271 Print all values for HIST_TYPE_SINGLE_VALUE.
1272 (stream_out_histogram_value): Update assert for
1273 N values.
1274 (stream_in_histogram_value): Set number of
1275 counters for HIST_TYPE_SINGLE_VALUE.
1276 (get_most_common_single_value): New.
1277 (gimple_divmod_fixed_value_transform):
1278 Use get_most_common_single_value.
1279 (gimple_ic_transform): Likewise.
1280 (gimple_stringops_transform): Likewise.
1281 (gimple_find_values_to_profile): Set number
1282 of counters for HIST_TYPE_SINGLE_VALUE.
1283 * value-prof.h (get_most_common_single_value):
1284 New.
1285
1286 2019-06-10 Martin Liska <mliska@suse.cz>
1287
1288 * hash-map.h: Pass default value to hash_table ctor.
1289 * hash-table.h: Add default value to call of a ctor.
1290
1291 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
1292
1293 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
1294 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
1295
1296 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
1297
1298 PR target/90751
1299 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
1300 Call pa_output_function_label.
1301 (TARGET_ASM_FUNCTION_PROLOGUE): define.
1302 * config/pa/pa-protos.h (pa_output_function_label): Declare.
1303 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
1304 to declaration.
1305 (pa_linux_output_function_prologue): Declare.
1306 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
1307 (pa_output_function_label): New.
1308 (pa_output_function_prologue): Revise to use pa_output_function_label.
1309 (pa_linux_output_function_prologue): New.
1310 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
1311
1312 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
1313
1314 * tree-vrp.h (value_range_base::intersect): New.
1315 (value_range::intersect_helper): Move from here...
1316 (value_range_base::intersect_helper): ...to here.
1317 * tree-vrp.c (value_range::intersect_helper): Rename to...
1318 (value_range_base::intersect_helper): ...this, and rewrite to
1319 return a value instead of modifying THIS in place.
1320 Also, move equivalence handling...
1321 (value_range::intersect): ...here, while calling intersect_helper.
1322 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
1323 calling intersect.
1324 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
1325 Same.
1326 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
1327
1328 2019-06-07 Jakub Jelinek <jakub@redhat.com>
1329
1330 * Makefile.in (genprogerr): Add condmd.
1331 (genprog): Remove it here.
1332
1333 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
1334
1335 * doc/invoke.texi (AMD GCN Options): Add gfx906.
1336
1337 2019-06-07 Richard Biener <rguenther@suse.de>
1338
1339 PR debug/90574
1340 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
1341 that appear after user labels.
1342
1343 2019-06-07 Martin Liska <mliska@suse.cz>
1344
1345 * cselib.c (cselib_init): Disable hash table
1346 sanitization.
1347 * hash-set.h: Pass new default argument to m_table.
1348 * hash-table.c: Add global variable with hash table
1349 sanitization limit.
1350 * hash-table.h (Allocator>::hash_table): Add new argument
1351 to ctor.
1352 (hashtab_chk_error): New.
1353 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
1354 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
1355 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
1356
1357 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
1358
1359 * common.opt (flto-odr-type-merging): Ignore.
1360 * invoke.texi (-flto-odr-type-merging): Remove.
1361 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
1362 (can_be_vtable_hashed_p): Remove.
1363 (hash_odr_vtable): Remove.
1364 (odr_vtable_hasher::hash): Remove.
1365 (types_same_for_odr): Remove.
1366 (types_odr_comparable): Remove.
1367 (odr_vtable_hasher::equal): Remove.
1368 (odr_vtable_hash_type, odr_vtable_hash): Remove.
1369 (add_type_duplicate): Do not synchronize vtable and name hashtables.
1370 (get_odr_type): Do not use vtable hash.
1371 (dump_odr_type): Remove commented out code.
1372 (build_type_inheritance_graph): Do not allocate vtable hash.
1373 (rebuild_type_inheritance_graph): Do not delete vtable hash.
1374 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
1375 (odr_type_p): Likewise.
1376 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
1377 test.
1378
1379 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
1380
1381 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
1382 immediately after same_types_for_tbaa_p returns -1 and continue
1383 looking for possible exact match; if matching types are arrays
1384 watch for partial overlaps.
1385 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
1386 (indirect_refs_may_alias_p): Do type based disambiguation first;
1387 update comment.
1388
1389 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
1390
1391 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
1392
1393 2019-06-07 Martin Liska <mliska@suse.cz>
1394
1395 * doc/invoke.texi: Remove param.
1396 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
1397 Remove.
1398 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
1399 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
1400 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
1401 * profile.c (instrument_values): Remove
1402 HIST_TYPE_INDIR_CALL_TOPN.
1403 * tree-profile.c (init_ic_make_global_vars):
1404 Always build __gcov_indirect_call only.
1405 (gimple_init_gcov_profiler): Remove usage
1406 of PARAM_INDIR_CALL_TOPN_PROFILE.
1407 (gimple_gen_ic_profiler): Likewise.
1408 * value-prof.c (dump_histogram_value): Likewise.
1409 (stream_in_histogram_value): Likewise.
1410 (gimple_indirect_call_to_profile): Likewise.
1411 (gimple_find_values_to_profile): Likewise.
1412 * value-prof.h (enum hist_type): Likewise.
1413
1414 2019-06-07 Martin Liska <mliska@suse.cz>
1415
1416 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
1417 function.
1418
1419 2019-06-07 Martin Liska <mliska@suse.cz>
1420
1421 PR tree-optimization/78902
1422 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
1423 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
1424 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
1425 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
1426 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
1427 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
1428 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
1429 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
1430 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
1431 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
1432 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
1433 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
1434 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
1435 New.
1436 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
1437 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
1438 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
1439 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
1440 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
1441 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
1442 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
1443 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
1444 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
1445 warn_unused_result attribute.
1446 (BUILT_IN_STRDUP): Likewise.
1447 (BUILT_IN_STRNDUP): Likewise.
1448 (BUILT_IN_ALLOCA): Likewise.
1449 (BUILT_IN_CALLOC): Likewise.
1450 (BUILT_IN_MALLOC): Likewise.
1451 (BUILT_IN_REALLOC): Likewise.
1452
1453 2019-06-06 Jim Wilson <jimw@sifive.com>
1454
1455 PR target/89955
1456 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
1457 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
1458 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
1459
1460 2019-06-06 Martin Sebor <msebor@redhat.com>
1461
1462 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
1463 (handle_builtin_malloc): Remove trailing spaces.
1464 (handle_builtin_memset): Same.
1465 (handle_builtin_memcmp): Same.
1466 (compute_string_length): Same.
1467 (determine_min_objsize): Same.
1468 (handle_builtin_string_cmp): Same.
1469 (handle_char_store): Same. Break up excessively long line.
1470
1471 2019-06-06 Martin Jambor <mjambor@suse.cz>
1472
1473 * tree-sra.c (build_reconstructed_reference): Drop the alignment
1474 check.
1475
1476 2019-06-06 Martin Jambor <mjambor@suse.cz>
1477
1478 * tree-sra.c (struct access): New field grp_same_access_path.
1479 (dump_access): Dump it.
1480 (build_reconstructed_reference): New function.
1481 (build_ref_for_model): Use it if possible.
1482 (path_comparable_for_same_access): New function.
1483 (same_access_path_p): Likewise.
1484 (sort_and_splice_var_accesses): Set the new flag.
1485 (analyze_access_subtree): Likewise.
1486 (propagate_subaccesses_across_link): Propagate zero value of the new
1487 flag down the access tree.
1488
1489 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
1490
1491 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
1492 * config/gcn/gcn.opt (gpu_type): Add gfx906.
1493 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
1494 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
1495 Add gfx906.
1496
1497 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1498
1499 PR tree-optimization/90332
1500 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
1501 Handle VALS containing two vectors.
1502 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
1503 to...
1504 (@aarch64_combinez<mode>): ... This.
1505 (*aarch64_combinez_be<mode>): Rename to...
1506 (@aarch64_combinez_be<mode>): ... This.
1507 (vec_init<mode><Vhalf>): New define_expand.
1508 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
1509
1510 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1511
1512 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
1513 library functions only when not optimizing for size.
1514 (ashlsi3): Likewise.
1515 (ashrhi3): Likewise.
1516 (ashrsi3): Likewise.
1517 (lshrhi3): Likewise.
1518 (lshrsi3): Likewise.
1519
1520 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
1521
1522 PR rtl-optimization/88751
1523 * ira.c (ira): Use the number of the actually referenced registers
1524 when calculating the threshold.
1525
1526 2019-06-06 Jakub Jelinek <jakub@redhat.com>
1527
1528 * configure: Regenerate.
1529
1530 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1531
1532 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
1533 register if it is in memory, so the shift can be emulated with a rotate
1534 instruction.
1535 (ashrhi3): Likewise.
1536 (lshrhi3): Likewise.
1537
1538 2019-06-06 Martin Liska <mliska@suse.cz>
1539
1540 PR tree-optimization/87954
1541 * match.pd: Simplify mult where both arguments are 0 or 1.
1542
1543 2019-06-06 Richard Biener <rguenther@suse.de>
1544
1545 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
1546 put equivalences on UNDEFINED ranges.
1547 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
1548 Make sure to drop defs of stmts added during simplification
1549 to VARYING.
1550
1551 2019-06-06 Richard Biener <rguenther@suse.de>
1552
1553 * tree-ssa-structalias.c: Include tree-cfg.h.
1554 (make_heapvar): Do not make heap vars artificial.
1555 (find_func_aliases_for_builtin_call): Handle stack allocation
1556 functions.
1557 (find_func_aliases): Delay processing of simple enough returns
1558 in non-IPA mode.
1559 (set_uids_in_ptset): Adjust.
1560 (find_what_var_points_to): Likewise.
1561 (solve_constraints): Do not dump points-to sets here.
1562 (compute_points_to_sets): Post-process return statements,
1563 amending the escaped solution. Dump points-to sets afterwards.
1564 (ipa_pta_execute): Dump points-to sets.
1565
1566 2019-06-06 Martin Liska <mliska@suse.cz>
1567
1568 PR web/87933
1569 * doc/install.texi: Fix HTML headers and
1570 titles for 'Installing GCC' pages.
1571
1572 2019-06-06 Martin Liska <mliska@suse.cz>
1573
1574 * ipa-icf-gimple.h (dump_message_1): Remove.
1575 (dump_message): Likewise.
1576 (return_false_with_message_1): Print also file.
1577 (return_false_with_msg): Likewise.
1578 (return_with_result): Likewise.
1579 (return_with_debug): Likewise.
1580 * ipa-icf.c (sem_function::equals_private): Remove call
1581 to dump_message.
1582
1583 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
1584
1585 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
1586 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
1587 memory operand for it.
1588 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
1589
1590 2019-06-05 Martin Sebor <msebor@redhat.com>
1591
1592 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
1593 Adjust quoting and hyphenation.
1594 * convert.c (convert_to_real_1): Same.
1595 * gcc.c (driver_wrong_lang_callback): Same.
1596 (driver::handle_unrecognized_options): Same.
1597 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
1598 * opts-common.c (cmdline_handle_error): Same.
1599 (read_cmdline_option): Same.
1600 * opts-global.c (complain_wrong_lang): Same.
1601 (print_ignored_options): Same.
1602 (handle_common_deferred_options): Same.
1603 * pretty-print.h: Same.
1604 * print-rtl.c (debug_bb_n_slim): Same.
1605 * sched-rgn.c (make_pass_sched_fusion): Same.
1606 * tree-cfg.c (verify_gimple_assign_unary): Same.
1607 (verify_gimple_label): Same.
1608 * tree-ssa-operands.c (verify_ssa_operands): Same.
1609 * varasm.c (do_assemble_alias): Same.
1610 (assemble_alias): Same.
1611
1612 2019-06-05 Richard Henderson <rth@twiddle.net>
1613
1614 * config/alpha/alpha.c (direct_return): Move down after
1615 struct machine_function definition; use saved frame_size;
1616 return bool.
1617 (struct machine_function): Add sa_mask, sa_size, frame_size.
1618 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
1619 (alpha_compute_frame_layout): ... new function.
1620 (TARGET_COMPUTE_FRAME_LAYOUT): New.
1621 (alpha_initial_elimination_offset): Use saved sa_size.
1622 (alpha_vms_initial_elimination_offset): Likewise.
1623 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
1624 (alpha_expand_prologue): Use saved frame data. Merge integer
1625 and fp register save loops.
1626 (alpha_expand_epilogue): Likewise.
1627 (alpha_start_function): Use saved frame data.
1628 * config/alpha/alpha-protos.h (direct_return): Update.
1629 (alpha_sa_size): Remove.
1630
1631 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
1632
1633 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
1634 multiplication by a power-of-two value.
1635 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
1636 and turn the modulo operation into a masking operation.
1637
1638 2019-06-05 Jakub Jelinek <jakub@redhat.com>
1639
1640 PR debug/90733
1641 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
1642 with VOIDmode inner operands.
1643
1644 2019-06-05 Richard Biener <rguenther@suse.de>
1645
1646 PR middle-end/90726
1647 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
1648 turn an expression graph into a tree.
1649
1650 2019-06-05 Jakub Jelinek <jakub@redhat.com>
1651
1652 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
1653 member.
1654 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
1655 treat it like explicit monotonic schedule modifier.
1656 (expand_omp_for): Initialize has_lastprivate_conditional.
1657 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
1658 schedule modifier.
1659
1660 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
1661 references, lookup in in hash map MEM_REF operand instead of the
1662 MEM_REF itself.
1663 (lower_omp_1): When looking for lastprivate conditional assignments,
1664 handle MEM_REFs with REFERENCE_TYPE operands.
1665
1666 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
1667 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
1668 and references a VLA. Handle references to non-VLAs if is_simd
1669 all privatization clauses like reductions.
1670 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
1671 If omp_is_reference, use always omp simd arrays and set
1672 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
1673 fails, emit reference initialization.
1674
1675 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
1676
1677 PR target/89803
1678 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
1679 _mm_mask_fpclass_sd_mask): New intrinsics.
1680 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
1681 * config/i386/i386-builtin.def
1682 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
1683 New builtins.
1684 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
1685 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
1686 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
1687 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
1688 case QI_FTYPE_V2SF_INT): Ditto.
1689 * config/i386/sse.md
1690 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
1691 Extended to insnstructions with mask operands.
1692
1693 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1694
1695 * config/rs6000/constraints.md (define_register_constraint "wp"):
1696 Delete.
1697 (define_register_constraint "wq"): Delete.
1698 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1699 (rs6000_init_hard_regno_mode_ok): Adjust.
1700 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1701 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
1702 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
1703 (define_mode_attr VSa): Delete.
1704 (define_mode_attr VSisa): New.
1705 (rest of file): Adjust.
1706 * doc/md.texi (Machine Constraints): Adjust.
1707
1708 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1709
1710 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
1711 (define_attr "enabled"): Handle those new isa values.
1712
1713 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1714
1715 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
1716 (define_mode_attr VSr5): Delete.
1717 (define_mode_attr VStype_sqrt): Delete.
1718 (define_mode_iterator VSX_SPDP): Delete.
1719 (define_mode_attr VS_spdp_res): Delete.
1720 (define_mode_attr VS_spdp_insn): Delete.
1721 (define_mode_attr VS_spdp_type): Delete.
1722 (*vsx_sqrt<mode>2): Adjust.
1723 (vsx_<VS_spdp_insn>): Delete, split to...
1724 (vsx_xscvdpsp): ... this. New. And...
1725 (vsx_xvcvspdp): ... this. New. And...
1726 (vsx_xvcvdpsp): ... this. New.
1727
1728 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1729
1730 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
1731 and V2DF.
1732 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
1733 (rest of file): Adjust.
1734
1735 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1736
1737 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
1738 (vsx_extract_<mode>_var): Ditto.
1739
1740 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1741
1742 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
1743 with just "wa".
1744
1745 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1746
1747 * config/rs6000/constraints.md (define_register_constraint "ww"):
1748 Delete.
1749 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1750 (rs6000_init_hard_regno_mode_ok): Adjust.
1751 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1752 RS6000_CONSTRAINT_ww.
1753 * config/rs6000/rs6000.md: Adjust.
1754 * config/rs6000/vsx.md: Adjust.
1755 * doc/md.texi (Machine Constraints): Adjust.
1756
1757 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1758
1759 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
1760 (define_mode_attr sd): New.
1761 (define_mode_attr s): New.
1762 (define_mode_attr Ftrad): Delete.
1763 (define_mode_attr Fvsx): Delete.
1764 (define_mode_attr Fs): Delete.
1765 (rest of file): Use the new mode attributes.
1766 * config.rs6000/vsx.md: Use the new mode attributes.
1767
1768 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1769
1770 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
1771 with just "wa".
1772
1773 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1774
1775 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
1776 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
1777 used with VSX_B, VSX_D, or VSX_F, with just "wa".
1778
1779 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
1780
1781 PR target/78263
1782 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
1783 C++ with strict ANSI requirements.
1784
1785 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
1786
1787 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
1788 computations when step is 1.
1789
1790 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1791
1792 * config/rs6000/constraints.md (define_register_constraint "wf"):
1793 Delete.
1794 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1795 (rs6000_init_hard_regno_mode_ok): Adjust.
1796 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1797 RS6000_CONSTRAINT_wf.
1798 * config/rs6000/rs6000.md: Adjust.
1799 * config/rs6000/vsx.md: Adjust.
1800 * doc/md.texi (Machine Constraints): Adjust.
1801
1802 2019-06-04 Andrew Pinski <apinski@marvell.com>
1803
1804 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
1805 Fix ILP32 value.
1806
1807 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1808
1809 * config/rs6000/constraints.md (define_register_constraint "wd"):
1810 Delete.
1811 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1812 (rs6000_init_hard_regno_mode_ok): Adjust.
1813 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1814 RS6000_CONSTRAINT_wd.
1815 * config/rs6000/rs6000.md: Adjust.
1816 * config/rs6000/vsx.md: Adjust.
1817 * doc/md.texi (Machine Constraints): Adjust.
1818
1819 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1820
1821 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
1822 (rest of file): Adjust.
1823
1824 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1825
1826 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
1827 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
1828 (vsx_splat_<mode>_reg): Adjust.
1829
1830 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1831
1832 * config/rs6000/constraints.md (define_register_constraint "ws"):
1833 Delete.
1834 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1835 (rs6000_init_hard_regno_mode_ok): Adjust.
1836 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1837 RS6000_CONSTRAINT_ws.
1838 * config/rs6000/rs6000.md: Adjust.
1839 * config/rs6000/vsx.md: Adjust.
1840 * doc/md.texi (Machine Constraints): Adjust.
1841
1842 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1843
1844 * config/rs6000/constraints.md (define_register_constraint "wv"):
1845 Delete.
1846 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1847 (rs6000_init_hard_regno_mode_ok): Adjust.
1848 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1849 RS6000_CONSTRAINT_wv.
1850 * config/rs6000/rs6000.md: Adjust.
1851 * config/rs6000/vsx.md: Adjust.
1852 * doc/md.texi (Machine Constraints): Adjust.
1853
1854 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1855
1856 * config/rs6000/constraints.md (define_register_constraint "wi"):
1857 Delete.
1858 (define_register_constraint "wt"): Delete.
1859 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1860 (rs6000_init_hard_regno_mode_ok): Adjust.
1861 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1862 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
1863 * config/rs6000/rs6000.md: Adjust.
1864 * config/rs6000/vsx.md: Adjust.
1865 * doc/md.texi (Machine Constraints): Adjust.
1866
1867 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
1868
1869 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
1870 const.
1871 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
1872 default_elf_asm_output_external.
1873
1874 2019-06-04 Martin Liska <mliska@suse.cz>
1875
1876 * ipa-icf.c (INCLUDE_LIST): Remove.
1877 (sem_item_optimizer::execute): Remove call to init_wpa.
1878 * ipa-icf.h (init_wpa): Remove.
1879
1880 2019-06-04 Jakub Jelinek <jakub@redhat.com>
1881
1882 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
1883 conditional on combined for simd.
1884 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
1885 member.
1886 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
1887 constructs, don't remove lastprivate_conditional_map, but instead set
1888 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
1889 to parent construct temporaries.
1890 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
1891 like !ctx->lastprivate_conditional_map.
1892 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
1893 use up->outer context instead of up.
1894 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
1895 gimple_omp_for_combined_p.
1896 (expand_omp_for_static_nochunk): Likewise.
1897 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
1898 probably moved over into expand_omp_for_generic rather than being copied
1899 there.
1900
1901 2019-06-04 Martin Liska <mliska@suse.cz>
1902
1903 * value-prof.c (dump_histogram_value): Fix typo.
1904 (gimple_mod_subtract_transform): Likewise.
1905
1906 2019-06-04 Richard Biener <rguenther@suse.de>
1907
1908 PR middle-end/90726
1909 * tree-chrec.c (chrec_contains_symbols): Add to visited.
1910 (tree_contains_chrecs): Likewise.
1911 (chrec_contains_symbols_defined_in_loop): Move here and avoid
1912 exponential behaivor from ...
1913 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
1914 ... here.
1915 (expression_expensive_p): Avoid exponential behavior and compute
1916 expanded size, rejecting any expansion.
1917 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
1918 (idx_contains_abnormal_ssa_name_p): Likewise.
1919 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
1920 (contains_abnormal_ssa_name_p): Simplify and use
1921 walk_tree_without_duplicates.
1922
1923 2019-06-04 Richard Biener <rguenther@suse.de>
1924
1925 PR tree-optimization/90738
1926 Revert
1927 2019-06-03 Richard Biener <rguenther@suse.de>
1928
1929 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
1930 full reference tree and record in ref->ref.
1931 (vn_reference_lookup_3): Pass in original ref to
1932 ao_ref_init_from_vn_reference.
1933 (vn_reference_lookup): Likewise.
1934 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
1935 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1936 Handle non-decl bases in the original reference.
1937
1938 2019-06-04 Martin Liska <mliska@suse.cz>
1939
1940 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
1941 number of references.
1942 (sem_item_optimizer::do_congruence_step):
1943 (sem_item_optimizer::worklist_push): Dump how references
1944 a class has.
1945 (sem_item_optimizer::worklist_pop): Use heap.
1946 (sem_item_optimizer::process_cong_reduction): Likewise.
1947 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
1948
1949 2019-06-04 Martin Liska <mliska@suse.cz>
1950
1951 * ipa-icf.h (struct sem_usage_pair_hash): New.
1952 (sem_usage_pair_hash::hash): Likewise.
1953 (sem_usage_pair_hash::equal): Likewise.
1954 (struct sem_usage_hash): Likewise.
1955 * ipa-icf.c (sem_item::sem_item): Initialize
1956 referenced_by_count.
1957 (sem_item::add_reference): Register a reference
1958 in ref_map and not in target->usages.
1959 (sem_item::setup): Remove initialization of
1960 dead vectors.
1961 (sem_item::~sem_item): Remove usage of dead vectors.
1962 (sem_item::dump): Remove dump of references.
1963 (sem_item_optimizer::sem_item_optimizer): Initialize
1964 m_references.
1965 (sem_item_optimizer::read_section): Remove useless
1966 dump.
1967 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
1968 (sem_item_optimizer::build_graph): Pass m_references
1969 to ::add_reference.
1970 (sem_item_optimizer::verify_classes): Remove usage of dead
1971 vectors.
1972 (sem_item_optimizer::traverse_congruence_split): Return true
1973 when a class is split.
1974 (sem_item_optimizer::do_congruence_step_for_index): Use
1975 hash_map for look up of (sem_item *, index). That brings
1976 significant speed up.
1977 (sem_item_optimizer::do_congruence_step): Return true
1978 when a split is done.
1979 (congruence_class::is_class_used): Use referenced_by_count.
1980
1981 2019-06-04 Alan Modra <amodra@gmail.com>
1982
1983 PR target/90689
1984 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
1985 error.
1986
1987 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
1988
1989 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
1990 * config/rs6000/rs6000.c (direct_move_p): Adjust.
1991 (rs6000_secondary_reload_simple_move): Adjust.
1992 (rs6000_opt_masks): Neuter the "mfpgpr" option.
1993 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
1994 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
1995 comment.
1996 (power6x): Adjust.
1997 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
1998 (floatunssi<mode>2_lfiwzx): Adjust.
1999 (fix_trunc<mode>si2_stfiwx): Adjust.
2000 (fixuns_trunc<mode>si2_stfiwx): Adjust.
2001 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
2002 (mfpgpr): Mark as deprecated.
2003 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
2004 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
2005 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
2006
2007 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
2008
2009 * config/rs6000/constraints.md (define_register_constraint "wg"):
2010 Delete.
2011 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2012 RS6000_CONSTRAINT_wg.
2013 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2014 (rs6000_init_hard_regno_mode_ok): Adjust.
2015 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
2016 Delete "wg" alternatives.
2017 * doc/md.texi (Machine Constraints): Adjust.
2018
2019 2019-06-03 Alan Modra <amodra@gmail.com>
2020
2021 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
2022 (get_uncond_jump_length): Assert length less than INT_MAX and
2023 non-negative.
2024
2025 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
2026
2027 PR middle-end/64242
2028 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
2029 block.
2030 (expand_builtin_nonlocal_goto): Likewise.
2031
2032 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
2033
2034 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
2035 (aarch64_asm_output_external): Declare.
2036 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
2037 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
2038 (aarch64_asm_output_alias): New.
2039 (aarch64_asm_output_external): New.
2040 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
2041 (ASM_OUTPUT_EXTERNAL): Define.
2042
2043 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
2044 * tree-vrp.h (value_range_base::nonzero_p): New.
2045 (value_range_base::set_nonnull): Rename to...
2046 (value_range_base::set_nonzero): ...this.
2047 (value_range_base::set_null): Rename to...
2048 (value_range_base::set_zero): ...this.
2049 (value_range::set_nonnull): Remove.
2050 (value_range::set_null): Remove.
2051 * tree-vrp.c (range_is_null): Remove.
2052 (range_is_nonnull): Remove.
2053 (extract_range_from_binary_expr): Use value_range_base::*zero_p
2054 instead of range_is_*null.
2055 (extract_range_from_unary_expr): Same.
2056 (value_range_base::set_nonnull): Rename to...
2057 (value_range_base::set_nonzero): ...this.
2058 (value_range::set_nonnull): Remove.
2059 (value_range_base::set_null): Rename to...
2060 (value_range_base::set_zero): ...this.
2061 (value_range::set_null): Remove.
2062 (extract_range_from_binary_expr): Rename set_*null uses to
2063 set_*zero.
2064 (extract_range_from_unary_expr): Same.
2065 (union_helper): Same.
2066 * vr-values.c (get_value_range): Use set_*zero instead of
2067 set_*null.
2068 (vr_values::extract_range_from_binary_expr): Same.
2069 (vr_values::extract_range_basic): Same.
2070
2071 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
2072
2073 PR driver/90684
2074 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
2075
2076 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2077
2078 * config/aarch64/iterators.md (MAX_OPP): New code attr.
2079 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to...
2080 (aarch64_<su>abd<mode>_3): ... This.
2081 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
2082
2083 2019-06-03 Richard Biener <rguenther@suse.de>
2084
2085 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
2086 full reference tree and record in ref->ref.
2087 (vn_reference_lookup_3): Pass in original ref to
2088 ao_ref_init_from_vn_reference.
2089 (vn_reference_lookup): Likewise.
2090 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
2091 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
2092 Handle non-decl bases in the original reference.
2093
2094 2019-06-03 Martin Liska <mliska@suse.cz>
2095
2096 * doc/generic.texi: Remove Java Trees.
2097
2098 2019-06-03 Martin Liska <mliska@suse.cz>
2099
2100 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
2101 returns 0 when operands are equal.
2102
2103 2019-06-03 Richard Biener <rguenther@suse.de>
2104
2105 PR tree-optimization/90716
2106 * tree-loop-distribution.c (destroy_loop): Process blocks in
2107 correct order.
2108
2109 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2110
2111 PR target/88837
2112 * vector-builder.h (vector_builder::count_dups): New method.
2113 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
2114 Declare prototype.
2115 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
2116 (vec_init<mode><Vel>): New pattern.
2117 * config/aarch64/aarch64.c (emit_insr): New function.
2118 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
2119 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
2120 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
2121 (aarch64_sve_expand_vector_init): Define two overloaded functions.
2122
2123 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2124
2125 PR tree-optimization/90681
2126 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
2127 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
2128 special case for SLP, but fail on non-groupped loads.
2129
2130 2019-06-03 Martin Liska <mliska@suse.cz>
2131
2132 * cfg.c (debug): Use TDF_DETAILS for debug and
2133 print edge info only once.
2134
2135 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
2136
2137 PR fortran/90539
2138 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
2139
2140 2019-06-01 Martin Sebor <msebor@redhat.com>
2141
2142 PR middle-end/90694
2143 * tree-pretty-print.c (dump_generic_node): Add parentheses.
2144
2145 2019-05-31 Jan Hubicka <jh@suse.cz>
2146
2147 * alias.c: Include ipa-utils.h.
2148 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
2149 * ipa-devirt.c (prevailing_odr_type): New.
2150 * ipa-utils.h (previaling_odr_type): Declare.
2151
2152 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
2153 Hongtao Liu <hongtao.liu@intel.com>
2154
2155 PR target/89355
2156 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
2157 NOTE_INSN_DELETED_LABEL check.
2158
2159 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
2160 Robert Suchanek <robert.suchanek@mips.com>
2161
2162 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
2163 and 3rd operands of the fmadd/fmsub/maddv builtin.
2164
2165 2019-05-31 Jakub Jelinek <jakub@redhat.com>
2166
2167 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
2168 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
2169 on OMP_SIMD if not nested inside of worksharing loop that also has
2170 lastprivate conditional clause for the same decl.
2171 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
2172 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
2173 on simd.
2174 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
2175 on simd construct.
2176 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
2177 on simd construct.
2178 (lower_lastprivate_clauses): Likewise.
2179 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
2180 calling lower_rec_input_clauses.
2181 (lower_omp_for): Likewise.
2182 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
2183 clause on simd construct.
2184 * omp-expand.c (expand_omp_simd): Initialize cond_var if
2185 OMP_CLAUSE__CONDTEMP_ clause is present.
2186
2187 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
2188 ivar and lvar.
2189
2190 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
2191
2192 PR c/43673
2193 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
2194 TEX_D32, TEX_D64 or TEX_D128.
2195
2196 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
2197
2198 * match.pd (~(vec?cst1:cst2)): New transformation.
2199
2200 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
2201
2202 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
2203 ((size_t)(A /[ex] B) CMP C): New transformation.
2204
2205 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
2206
2207 * doc/md.texi: Document define_insn_and_rewrite.
2208 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
2209 * gensupport.c (queue_elem): Update comment.
2210 (replace_operands_with_dups): New function.
2211 (gen_rewrite_sequence): Likewise.
2212 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
2213 * read-rtl.c (apply_subst_iterator): Likewise.
2214 (add_condition_to_rtx, named_rtx_p): Likewise.
2215 (rtx_reader::read_rtx_operand): Likewise.
2216 * config/aarch64/aarch64-sve.md
2217 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
2218 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
2219 define_insn_and_rewrite.
2220 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
2221 Remove separate define_split.
2222
2223 2019-05-31 Jan Hubicka <jh@suse.cz>
2224
2225 * tree-ssa-alias.c (type_has_components_p): New function.
2226 (aliasing_component_refs_p): Use it.
2227
2228 2019-05-31 Martin Liska <mliska@suse.cz>
2229
2230 * gdbhooks.py: Add const_tree to TreePrinter.
2231
2232 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
2233
2234 PR debug/86964
2235 * common.opt (feliminate-unused-debug-symbols): Enable by default.
2236 * doc/invoke.texi (Debugging Options): Document new default of
2237 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
2238
2239 2019-05-31 Jakub Jelinek <jakub@redhat.com>
2240
2241 PR tree-optimization/90671
2242 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
2243 template_block used to be empty on the first call, don't use
2244 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
2245 seq with bb_seq and set it with set_bb_seq.
2246
2247 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
2248
2249 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
2250
2251 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
2252 Michael Meissner <meissner@linux.ibm.com>
2253
2254 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
2255 (prefixed_mem_operand): Likewise.
2256 (non_prefixed_mem_operand): Likewise.
2257 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
2258 prototype.
2259 * config/rs6000/rs6000.c (print_operand_address): Handle
2260 PC-relative addresses.
2261 (mode_supports_prefixed_address_p): New function.
2262 (rs6000_prefixed_address): New function.
2263 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
2264 (SYMBOL_REF_PCREL_P): Likewise.
2265
2266 2019-05-30 Jakub Jelinek <jakub@redhat.com>
2267
2268 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
2269 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
2270 (gimplify_omp_for): If worksharing loop with lastprivate conditional
2271 is nested inside of parallel region, add _condtemp_ clause to both.
2272 * tree-nested.c (convert_nonlocal_omp_clauses,
2273 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
2274 assertion failure.
2275 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
2276 member.
2277 * omp-general.c (omp_extract_for_data): Compute it.
2278 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
2279 (lower_rec_input_clauses): Likewise.
2280 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
2281 clause is already present, just add one further one after it.
2282 (lower_lastprivate_clauses): Handle cond_ptr with array type.
2283 (lower_send_shared_vars): Clear _condtemp_ vars.
2284 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
2285 or section or taskgroup.
2286 * omp-expand.c (determine_parallel_type): Disallow combining only if
2287 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
2288 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
2289 (expand_omp_for_generic, expand_omp_for_static_nochunk,
2290 expand_omp_for_static_chunk, expand_omp_for): Use
2291 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
2292 determine if a special set of API routines are needed and if condtemp
2293 needs to be initialized, while always initialize cond_var if
2294 fd->lastprivate_conditional is non-zero.
2295
2296 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
2297 Michael Meissner <meissner@linux.ibm.com>
2298
2299 * config/rs6000/constraints.md (eI): New constraint.
2300 * config/rs6000/predicates.md (cint34_operand): New predicate.
2301 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
2302 (SIGNED_34BIT_OFFSET_P): Likewise.
2303 * doc/md.texi (eI): Document constraint.
2304
2305 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
2306
2307 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
2308
2309 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
2310 Michael Meissner <meissner@linux.ibm.com>
2311
2312 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
2313 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
2314 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
2315 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
2316 (OTHER_FUTURE_MASKS): Likewise.
2317 (POWERPC_MASKS): Likewise.
2318 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
2319 specified without -mprefixed-addr or -mcpu=future. Error if
2320 -mprefixed-addr is specified without -mcpu=future.
2321 (rs6000_opt_masks): Add entry for prefixed-addr.
2322 * rs6000.opt (mprefixed-addr): New option.
2323
2324 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
2325
2326 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
2327 cfun->is_thunk check.
2328
2329 2019-05-30 Jakub Jelinek <jakub@redhat.com>
2330
2331 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
2332 to length.
2333
2334 2019-05-30 Martin Liska <mliska@suse.cz>
2335
2336 * gdbinit.in: Fix 'ptc' command. Add trt
2337 that prints TREE_TYPE($).
2338
2339 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
2340 Alan Modra <amodra@gmail.com>
2341
2342 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
2343 calls here...
2344 (rs6000_indirect_call_template_1): ...and here.
2345 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
2346 plt16_ha, plt16_lo, mtctr indirect calls. Use
2347 rs6000_pltseq_enum.
2348 (rs6000_decl_ok_for_sibcall): New function.
2349 (rs6000_function_ok_for_sibcall): Refactor.
2350 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
2351 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
2352 when pcrel. Reorganize.
2353 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
2354 * rs6000.h (rs6000_pltseq_enum): New enum.
2355 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
2356 (*pltseq_tocsave): Use rs6000_pltseq_enum.
2357 (*pltseq_plt16_ha): Likewise.
2358 (*pltseq_plt16_lo): Likewise.
2359 (*pltseq_mtctr): Likewise.
2360 (*pltseq_plt_pcrel): New insn.
2361 (*call_local_aix): Handle @notoc calls.
2362 (*call_value_local_aix): Likewise.
2363 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
2364 (*call_value_nonlocal_aix): Likewise.
2365 (*call_indirect_pcrel): New insn.
2366 (*call_value_indirect_pcrel): Likewise.
2367
2368
2369 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
2370
2371 * config/i386/sse.md (*save_multiple<mode>): Rename from
2372 save_multiple<mode>.
2373 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
2374 (*restore_multiple_and_return<mode>): Rename from
2375 restore_multiple_and_return<mode>.
2376 (*restore_multiple_leave_return<mode>): Rename from
2377 restore_multiple_leave_return<mode>.
2378
2379 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
2380
2381 * config.gcc (rx-*-linux*): New target.
2382 * config/rx/elf.opt: New file.
2383 * config/rx/linux.h: Likewise.
2384 * config/rx/t-linux: Likewise.
2385 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
2386 make it zero.
2387 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
2388 (ASM_APP_OFF): Likewise.
2389 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
2390 moved elsewhere.
2391
2392 2019-05-29 Jan Hubicka <jh@suse.cz>
2393
2394 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
2395 variants are pointer equivalent.
2396
2397 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2398
2399 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
2400 * config/aarch64/aarch64-sve2.md: New file.
2401 (<u>avg<mode>3_floor): New pattern.
2402 (<u>avg<mode>3_ceil): Likewise.
2403 (*<sur>h<addsub><mode>): Likewise.
2404 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
2405 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
2406
2407 2019-05-29 Jakub Jelinek <jakub@redhat.com>
2408
2409 PR bootstrap/90543
2410 * optc-save-gen.awk: In cl_optimization_print, use correct condition
2411 for var_opt_string printing. In cl_optimization_print_diff, print
2412 (null) instead of invoking undefined behavior if one of the
2413 var_opt_string pointers is NULL and use && instead of first || in the
2414 guarding condition. For var_target_other options, handle const char *
2415 target variables similarly to const char * optimize node variables.
2416
2417 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
2418
2419 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
2420 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
2421 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
2422 Add autib1716 and pacib1716 initialisation.
2423 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
2424 for autib1716 and pacib1716.
2425 * config/aarch64/aarch64-protos.h (aarch64_key_type,
2426 aarch64_post_cfi_startproc): Define.
2427 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
2428 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
2429 aarch64_handle_pac_ret_protection): Set default sign key to A.
2430 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
2431 aarch64_expand_prologue): Add check for b-key.
2432 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
2433 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
2434 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
2435 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
2436 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
2437 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
2438 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
2439 * config/aarch64/aarch64.md (do_return): Add check for b-key.
2440 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
2441 pauth_hint_num_a with pauth_hint_num.
2442 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
2443 pauth_hint_num_a with pauth_hint_num.
2444 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
2445 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
2446 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
2447 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
2448 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
2449 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
2450 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
2451 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
2452 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
2453 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
2454 UNSPEC_AUTIA1716 respectively.
2455 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
2456 and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
2457 * doc/invoke.texi (-mbranch-protection): Add b-key type.
2458 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
2459 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
2460
2461 2019-05-29 Jakub Jelinek <jakub@redhat.com>
2462
2463 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
2464 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
2465 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
2466 explicit clause on combined parallel into implicit shared clause.
2467 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
2468 and firstprivate if the decl has one too from combined parallel to
2469 the worksharing construct.
2470
2471 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
2472 Michael Meissner <meissner@linux.ibm.com>
2473
2474 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
2475
2476 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
2477
2478 * rtl.h (LABEL_REF_P): New #define.
2479
2480 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
2481
2482 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
2483
2484 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2485
2486 * internal-fn.c: Marked mask_load_direct as vectorizable.
2487 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
2488 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
2489 combined even if masks different with allow_slp_p param.
2490 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
2491 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
2492 dissolve SLP-only vectorizable groups when SLP has been discarded.
2493 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
2494 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
2495 masks.
2496 (vect_build_slp_tree_1): Fixed comment typo.
2497 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
2498 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
2499 loads for SLP only.
2500 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
2501 vectorizable.
2502 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
2503
2504 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2505
2506 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
2507 Remove obsolete use_thunk reference.
2508 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
2509 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2510 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
2511 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
2512 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2513 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2514 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2515 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
2516 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
2517
2518 2019-05-28 Nathan Sidwell <nathan@acm.org>
2519
2520 * tree.h (IDENTIFIER_ANON_P): New.
2521 (anon_aggrname_format, anon_aggname_p): Don't declare.
2522 (make_anon_name): Declare.
2523 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
2524 (hash_tree): Likewise.
2525 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
2526 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
2527 (anon_cnt, make_anon_name): New.
2528
2529 2019-05-28 Martin Liska <mliska@suse.cz>
2530
2531 PR other/90315
2532 * opts-global.c (decode_options): Print help for all
2533 help_option_arguments.
2534 * opts.c (print_help): Add new argument.
2535 (common_handle_option): Remember all values into
2536 help_option_arguments.
2537 * opts.h (print_help): Add new argument.
2538
2539 2019-05-28 Martin Liska <mliska@suse.cz>
2540
2541 PR ipa/90555
2542 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
2543 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
2544 (func_checker::compare_bb): Call compare_loops.
2545
2546 2019-05-27 Jakub Jelinek <jakub@redhat.com>
2547
2548 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
2549 on sections construct.
2550 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
2551 construct.
2552 (lower_omp_sections): Handle lastprivate conditional.
2553 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
2554 lastprivate_conditional_map.
2555 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
2556
2557 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
2558 critical, taskgroup and section regions when looking for a region
2559 with non-NULL lastprivate_conditional_map.
2560
2561 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
2562
2563 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
2564 (*ix86_gen_sub3): Ditto.
2565 (*ix86_gen_sub3_carry): Ditto.
2566 (*ix86_gen_one_cmpl2): Ditto.
2567 (*ix86_gen_andsp): Ditto.
2568 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
2569 (gen_and2_insn): New static function.
2570 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
2571 Use gen_add3_insn instead of ix86_gen_add3.
2572 (ix86_expand_split_stack_prologue): Use gen_add2_insn
2573 instead of ix86_gen_add3.
2574 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
2575 Use gen_sub3_insn instead of ix86_gen_sub3.
2576 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
2577 instead of ix86_gen_add3.
2578 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
2579 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
2580 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
2581 * config/i386/i386-options.c (ix86_option_override_internal):
2582 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2583 ix86_gen_one_cmpl2 and ix86_gen_andsp.
2584
2585 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2586
2587 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
2588 and DW_OP_GNU_const_index opcodes.
2589
2590 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
2591
2592 * config/i386/i386.h (STACK_SIZE_MODE): Define.
2593
2594 2019-05-27 Richard Biener <rguenther@suse.de>
2595
2596 PR tree-optimization/90637
2597 * tree-ssa-sink.c (statement_sink_location): Honor the
2598 computed sink location for single-uses.
2599
2600 2019-05-27 Richard Biener <rguenther@suse.de>
2601
2602 PR middle-end/90610
2603 * match.pd (vec_perm): Avoid clobbering op0 when not generating
2604 a bit-insert.
2605
2606 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2607
2608 * config/i386/i386.md (@sub<mode>3_carry): Rename
2609 from sub<mode>3_carry.
2610 (@leave_<mode>): New expander.
2611 (*leave): Rename from leave.
2612 (*leave_rex64): Rename from leave_rex64.
2613 (@monitorx_<mode>): Rename from monitorx_<mode>.
2614 (@clzero_<mode>): Rename from clzero_<mode>.
2615 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
2616 from sse3_monitor_<mode>.
2617 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
2618 (*ix86_gen_leave): Ditto.
2619 (*ix86_gen_monitor): Ditto.
2620 (*ix86_gen_monitorx): Ditto.
2621 (*ix86_gen_clzero): Ditto.
2622 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
2623 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
2624 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
2625 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
2626 Use gen_sse3_monitor instead of ix86_gen_monitor.
2627 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
2628 instead of ix86_gen_monitorx.
2629 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
2630 instead of ix86_gen_clzero.
2631 * config/i386/i386-options.c (ix86_option_override_internal):
2632 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
2633 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
2634
2635 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2636
2637 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
2638 Rename from tls_global_dynamic_64_<mode>.
2639 (@tls_local_dynamic_base_64_<mode>): Rename from
2640 tls_local_dynamic_base_64_<mode>.
2641 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
2642 Remove indirect function.
2643 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
2644 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
2645 instead of ix86_gen_tls_global_dynamic_64.
2646 Use gen_tls_local_dynamic_base_64 instead of
2647 ix86_gen_tls_local_dynamic_base_64.
2648 * config/i386/i386-options.c (ix86_option_override_internal):
2649 Do not initialize ix86_gen_tls_global_dynamic_64 and
2650 ix86_gen_tls_local_dynamic_base_64.
2651
2652 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2653
2654 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
2655 Rename from pro_epilogue_adjust_stack_<mode>_add.
2656 (@pro_epilogue_adjust_stack_sub_<mode>)
2657 Rename from pro_epilogue_adjust_stack_<mode>_sub.
2658 (@allocate_stack_worker_probe_<mode>):
2659 Rename from allocate_stack_worker_probe_<mode>.
2660 (allocate_stack): Use gen_allocate_stack_worker_probe.
2661 (probe_stack): Use gen_probe_stack_1.
2662 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
2663 (@adjust_stack_and_probe_<mode>): Rename from
2664 adjust_stack_and_probe<mode>.
2665 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
2666 (stack_protect_set): Use gen_stack_protect_set_1.
2667 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
2668 (stack_protect_test): Use gen_stack_protect_test_1.
2669 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
2670 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
2671 Remove indirect function.
2672 (*ix86_gen_adjust_stack_and_probe): Ditto.
2673 (*ix86_gen_probe_stack_range): Ditto.
2674 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
2675 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
2676 (ix86_adjust_stack_and_probe_stack_clash): Use
2677 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
2678 (ix86_adjust_stack_and_probe): Ditto.
2679 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
2680 of ix86_gen_probe_stack_range.
2681 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
2682 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
2683 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
2684 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
2685 CODE_FOR_stack_protect_test_{si,di}.
2686 * config/i386/i386-options.c (ix86_option_override_internal):
2687 Do not initialize ix86_gen_allocate_stack_worker,
2688 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
2689
2690 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
2691
2692 * doc/invoke.texi (Link Options): Many editorial changes around
2693 -flinker-output.
2694
2695 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2696
2697 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
2698 pre-Solaris 11 referene and most Studio compiler details.
2699
2700 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
2701
2702 PR target/90530
2703 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
2704 DImode to SImode in floating-point registers on 64-bit target.
2705 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
2706 register_operand in xmpyu patterns.
2707
2708 2019-05-24 Jakub Jelinek <jakub@redhat.com>
2709
2710 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
2711 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
2712 OMP_CLAUSE__REDUCTEMP_.
2713 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
2714 OMP_CLAUSE__CONDTEMP_.
2715 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
2716 * tree-pretty-print.c (dump_omp_clause): Likewise.
2717 * tree-nested.c (convert_nonlocal_omp_clauses,
2718 convert_local_omp_clauses): Likewise.
2719 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
2720 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
2721 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
2722 on OMP_FOR.
2723 (gimplify_omp_for): Warn and disable conditional modifier from
2724 lastprivate on loop iterators.
2725 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
2726 member.
2727 * omp-general.c (omp_extract_for_data): Initialize it.
2728 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
2729 member.
2730 (delete_omp_context): Delete it.
2731 (lower_lastprivate_conditional_clauses): New function.
2732 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
2733 handle lastprivate conditional clauses.
2734 (lower_reduction_clauses): Add CLIST argument, emit it into
2735 the critical section if any.
2736 (lower_omp_sections): Adjust lower_lastprivate_clauses and
2737 lower_reduction_clauses callers.
2738 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
2739 to lower_lastprivate_clauses.
2740 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
2741 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
2742 clist into a critical section if not emitted there already by
2743 lower_reduction_clauses.
2744 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
2745 callers.
2746 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
2747 conditional variables.
2748 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
2749 clause is present.
2750 (expand_omp_for_generic, expand_omp_for_static_nochunk,
2751 expand_omp_for_static_chunk): Handle lastprivate conditional.
2752 (expand_omp_for): Handle fd.lastprivate_conditional like
2753 fd.have_reductemp.
2754
2755 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
2756
2757 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
2758 kernel does not exit cleanly.
2759 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
2760
2761 2019-05-24 Jason Merrill <jason@redhat.com>
2762
2763 Revert:
2764 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2765
2766 2019-05-24 Richard Biener <rguenther@suse.de>
2767
2768 PR testsuite/90607
2769 * tree-loop-distribution.c (struct partition): Add location
2770 member.
2771 (partition_alloc): Initialize all fields.
2772 (generate_memset_builtin): Use the location recorded in the
2773 partition for the generated call.
2774 (generate_memcpy_builtin): Likewise.
2775 (classify_partition): Record the location of a single store
2776 as location for the partition.
2777
2778 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
2779
2780 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
2781 for lo-part.
2782
2783 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
2784
2785 PR target/90588
2786 * common/config/aarch64/aarch64-common.c
2787 (aarch64_rewrite_selected_cpu): Change local temporary variable
2788 type from unsigned long to uint64_t.
2789 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
2790 aarch64_get_extension_string_for_isa_flags): Change declaration to
2791 match new definition by replacing unsigned long with uint64_t.
2792
2793 2019-05-24 Jakub Jelinek <jakub@redhat.com>
2794
2795 PR target/90568
2796 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
2797 gen_attr_type just once instead of 4-7 times. Formatting fixes.
2798 Handle stack_protect_test_<mode> codegen similarly to corresponding
2799 sub instruction.
2800
2801 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
2802
2803 * config/i386/darwin.h: Reject -mfentry*.
2804 * doc/sourcebuild.texi: Document mfentry target support.
2805
2806 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2807
2808 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
2809 Rename to rs6000_global_entry_point_prologue_needed_p. Return
2810 false for PC-relative functions.
2811 (rs6000_output_function_prologue): Change called function name to
2812 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
2813 name,1" for PC-relative functions.
2814 (rs6000_elf_declare_function_name): Change called function name to
2815 rs6000_global_entry_point_prologue_needed_p.
2816
2817 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
2818
2819 PR target/90552
2820 * config/i386/i386.c (gen_rtx_cost):
2821 Use ix86_tune_cost instead of ix86_cost.
2822
2823 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2824 Michael Meissner <meissner@linux.ibm.com>
2825 Segher Boessenkool <segher@kernel.crashing.org>
2826
2827 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
2828 OPTION_MASK_PCREL.
2829 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
2830 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
2831 (rs6000_fndecl_pcrel_p): Likewise.
2832 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
2833 error if -mpcrel is requested without -mcpu=future.
2834 (rs6000_opt_masks): Add entry for pcrel.
2835 (rs6000_fndecl_pcrel_p): New function.
2836 (rs6000_pcrel_p): Likewise.
2837 * config/rs6000/rs6000.opt (mpcrel): New option.
2838 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
2839
2840 2019-05-23 Jan Hubicka <jh@suse.cz>
2841 Martin Liska <mliska@suse.cz>
2842
2843 PR tree-optimization/90576
2844 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
2845 poly_int_tree_p.
2846 (aliasing_component_refs_p): Fix three way size compare conditional;
2847 give up earlier in case we can not decide on equivalence.
2848
2849 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2850 Michael Meissner <meissner@linux.ibm.com>
2851 Segher Boessenkool <segher@kernel.crashing.org>
2852
2853 * config.gcc: Add future cpu.
2854 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
2855 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
2856 #define.
2857 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
2858 (RS6000_CPU): New instantiation for future cpu.
2859 * config/rs6000/rs6000-opts.h (enum processor_type): Add
2860 PROCESSOR_FUTURE.
2861 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
2862 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
2863 * config/rs6000/rs6000-tables.opt: Regenerate.
2864 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
2865 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
2866 (rs6000_machine_from_flags): Handle future cpu.
2867 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
2868 PROCESSOR_POWER9 for now.
2869 (rs6000_adjust_cost): Likewise.
2870 (rs6000_issue_rate): Likewise.
2871 (rs6000_register_move_cost): Likewise.
2872 (rs6000_opt_masks): Add entry for future.
2873 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
2874 (MASK_FUTURE): New #define.
2875 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
2876 * config/rs6000/rs6000.opt (mfuture): New target option.
2877 * doc/invoke.texi (mcpu): Add future cpu.
2878
2879 2019-05-23 Martin Liska <mliska@suse.cz>
2880
2881 PR c++/90587
2882 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
2883 operation points to a temporary (pointed via tree_to_wide_ref)
2884 that is out of scope after the &.
2885
2886 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
2887
2888 PR c++/90592
2889 * doc/extend.texi (Function Names): Add missing word.
2890
2891 2019-05-23 Richard Biener <rguenther@suse.de>
2892
2893 PR tree-optimization/88440
2894 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
2895 at -O[2s]+.
2896 * tree-loop-distribution.c (generate_memset_builtin): Fold the
2897 generated call.
2898 (generate_memcpy_builtin): Likewise.
2899 (distribute_loop): Pass in whether to only distribute patterns.
2900 (prepare_perfect_loop_nest): Also allow size optimization.
2901 (pass_loop_distribution::execute): When optimizing a loop
2902 nest for size allow pattern replacement.
2903
2904 2019-05-23 Jakub Jelinek <jakub@redhat.com>
2905
2906 PR target/90568
2907 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
2908 of xor.
2909
2910 2019-05-23 Martin Liska <mliska@suse.cz>
2911
2912 PR sanitizer/90570
2913 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
2914 expression similarly to gimplify_decl_expr.
2915
2916 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2917
2918 * cse.c (cse_dump_path): s/dump_file/f.
2919
2920 2019-05-22 David Malcolm <dmalcolm@redhat.com>
2921
2922 PR c++/90462
2923 * diagnostic-format-json.cc: Include "selftest.h".
2924 (json_from_expanded_location): Only add "file" key for non-NULL
2925 file strings.
2926 (json_from_location_range): Don't add "start" and "finish"
2927 children if they are UNKNOWN_LOCATION.
2928 (selftest::test_unknown_location): New selftest.
2929 (selftest::test_bad_endpoints): New selftest.
2930 (selftest::diagnostic_format_json_cc_tests): New function.
2931 * json.cc (json::object::get): New function.
2932 (selftest::test_object_get): New selftest.
2933 (selftest::json_cc_tests): Call it.
2934 * json.h (json::object::get): New decl.
2935 * selftest-run-tests.c (selftest::run_tests): Call
2936 selftest::diagnostic_format_json_cc_tests.
2937 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
2938 decl.
2939
2940 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
2941 Andrew Stubbs <amd@codesourcery.com>
2942
2943 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
2944 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
2945 (kernel): Rename to...
2946 (main_kernel): ... this.
2947 (load_image): Load _init_array and _fini_array kernels.
2948 (run): Add argument for kernel to run.
2949 (main): Run init_array_kernel before main_kernel, and
2950 fini_array_kernel after.
2951 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
2952 amdgpu_hsa_kernel attribute on functions.
2953 (gcn_disable_constructors): Delete.
2954 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
2955 * config/gcn/crt0.c (size_t): Define.
2956 (_init_array, _fini_array): New.
2957 (__preinit_array_start, __preinit_array_end,
2958 __init_array_start, __init_array_end,
2959 __fini_array_start, __fini_array_end): Declare weak references.
2960
2961 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
2962
2963 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
2964
2965 2019-05-22 Jason Merrill <jason@redhat.com>
2966
2967 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2968
2969 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
2970
2971 PR target/88483
2972 * config/i386/i386-options.c (ix86_init_machine_status): Set
2973 stack_frame_required to true.
2974 * config/i386/i386.c (ix86_get_frame_size): New function.
2975 (ix86_frame_pointer_required): Replace get_frame_size with
2976 ix86_get_frame_size.
2977 (ix86_compute_frame_layout): Likewise.
2978 (ix86_find_max_used_stack_alignment): Changed to void. Set
2979 stack_frame_required.
2980 (ix86_finalize_stack_frame_flags): Always call
2981 ix86_find_max_used_stack_alignment. Replace get_frame_size with
2982 ix86_get_frame_size.
2983 * config/i386/i386.h (machine_function): Add stack_frame_required.
2984
2985 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
2986
2987 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
2988
2989 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
2990
2991 * common/config/aarch64/aarch64-common.c
2992 (struct aarch64_option_extension, struct processor_name_to_arch,
2993 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
2994 aarch64_contains_opt,
2995 aarch64_get_extension_string_for_isa_flags): Change type of
2996 variables storing flags to uint64_t.
2997 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
2998 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
2999 * config/aarch64/aarch64.c (struct processor,
3000 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
3001 aarch64_validate_march, aarch64_override_options,
3002 aarch64_option_print, aarch64_handle_attr_isa_flags,
3003 aarch64_declare_function_name, aarch64_start_file): Make flag
3004 variables uint64_t.
3005 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
3006 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
3007 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
3008 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
3009 * config/aarch64/driver-aarch64.c
3010 (struct aarch64_arch_extension, struct aarch64_core_data,
3011 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
3012 flag variables uint64_t.
3013 * doc/invoke.texi: Add documentation for new arguments.
3014
3015 2019-05-22 Richard Biener <rguenther@suse.de>
3016
3017 * alias.c (ao_ref_from_mem): Move stack-slot sharing
3018 rewrite ...
3019 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
3020
3021 2019-05-22 Martin Liska <mliska@suse.cz>
3022
3023 PR lto/90500
3024 * doc/extend.texi: Document the change.
3025
3026 2019-05-22 Richard Biener <rguenther@suse.de>
3027
3028 PR tree-optimization/90450
3029 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
3030 (mem_ref_hasher::equal): Check it.
3031 (mem_ref_alloc): Initialize it.
3032 (gather_mem_refs_stmt): Set it.
3033
3034 2019-05-22 Richard Biener <rguenther@suse.de>
3035
3036 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
3037 Add ABS_EXPR.
3038 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
3039 as ABSU_EXPR.
3040
3041 2019-05-22 Alan Modra <amodra@gmail.com>
3042
3043 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
3044 (ASM_CPU_SPEC): Conditionally add -many.
3045 * config/rs6000/rs6000.c (rs6000_machine): New static var.
3046 (rs6000_machine_from_flags, emit_asm_machine): New functions..
3047 (rs6000_file_start): ..extracted from here, and modified to
3048 test all ISA bits.
3049 (rs6000_output_function_prologue): Emit .machine as necessary.
3050 * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
3051 power mnemonics.
3052 * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
3053 added by check_vect_support_and_set_flags.
3054 * testsuite/gcc.dg/vect/pr48765.c: Likewise.
3055 * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
3056
3057 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
3058
3059 PR middle-end/90553
3060 * ira-lives.c (process_bb_node_lives): Consider defs
3061 for a call insn to be die before the call, not after.
3062
3063 * function.c (assign_parm_setup_block): Raise alignment of
3064 stacked parameter only for STRICT_ALIGNMENT targets.
3065
3066 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3067
3068 * config/rs6000/constraints.md (define_register_constraint "wz"):
3069 Delete.
3070 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3071 RS6000_CONSTRAINT_wz.
3072 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3073 (rs6000_init_hard_regno_mode_ok): Adjust.
3074 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
3075 * doc/md.texi (Machine Constraints): Adjust.
3076
3077 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3078
3079 * config/rs6000/constraints.md (define_register_constraint "wl"):
3080 Delete.
3081 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3082 RS6000_CONSTRAINT_wl.
3083 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3084 (rs6000_init_hard_regno_mode_ok): Adjust.
3085 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
3086 * doc/md.texi (Machine Constraints): Adjust.
3087
3088 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3089
3090 * config/rs6000/constraints.md (define_register_constraint "wm"):
3091 Delete.
3092 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3093 RS6000_CONSTRAINT_wm.
3094 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3095 (rs6000_init_hard_regno_mode_ok): Adjust.
3096 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
3097 * doc/md.texi (Machine Constraints): Adjust.
3098
3099 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3100
3101 * config/rs6000/constraints.md (define_register_constraint "wk"):
3102 Delete.
3103 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3104 RS6000_CONSTRAINT_wk.
3105 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3106 (rs6000_init_hard_regno_mode_ok): Adjust.
3107 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
3108 * doc/md.texi (Machine Constraints): Adjust.
3109
3110 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3111
3112 * config/rs6000/constraints.md (define_register_constraint "wj"):
3113 Delete.
3114 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3115 RS6000_CONSTRAINT_wj.
3116 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3117 (rs6000_init_hard_regno_mode_ok): Adjust.
3118 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
3119 (VS_64dm): Delete.
3120 * config/rs6000/vsx.md: Ditto.
3121 * doc/md.texi (Machine Constraints): Adjust.
3122
3123 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
3124
3125 * config/rs6000/constraints.md (define_register_constraint "wh"):
3126 Delete.
3127 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3128 RS6000_CONSTRAINT_wh.
3129 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3130 (rs6000_init_hard_regno_mode_ok): Adjust.
3131 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
3132 * doc/md.texi (Machine Constraints): Adjust.
3133
3134 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
3135
3136 PR target/90547
3137 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
3138 Avoid calling gen_lowpart with CONST operand.
3139
3140 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
3141
3142 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
3143 field template_last_to_copy.
3144 (ssa_create_duplicates): Set it, and use it. Attempt to
3145 preserve more debug stmts.
3146
3147 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
3148
3149 * config/i386/sse.md (VF1_AVX2): New mode iterator.
3150 (signbit<mode>2): New expander
3151
3152 2019-05-21 James Clarke <jrtc27@jrtc27.com>
3153
3154 PR bootstrap/87338
3155 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
3156 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
3157
3158 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
3159
3160 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
3161 %ebx and %ecx bafore calling cpuid with leaf 1 or
3162 non-constant leaf argument.
3163
3164 2019-05-21 Alan Modra <amodra@gmail.com>
3165
3166 PR target/90545
3167 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
3168 power9 direct move cost.
3169 * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
3170 Correct comments and rename functions to suit parameters.
3171
3172 2019-05-21 Richard Biener <rguenther@suse.de>
3173
3174 PR middle-end/90510
3175 * fold-const.c (fold_read_from_vector): New function.
3176 * fold-const.h (fold_read_from_vector): Declare.
3177 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
3178 single-element insert permutations. Canonicalize selector
3179 further and fix issue with last commit.
3180
3181 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
3182
3183 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
3184 parameter with default value false to declaration.
3185 (split_edges_for_insertion): New inline function. Wrapper for
3186 split_critical_edges with for_edge_insertion_p = true.
3187 * tree-cfg.c (split_critical_edges): Don't split non-critical
3188 edges if for_edge_insertion_p is false. Fix whitespace.
3189 * tree-ssa-pre.c (pass_pre::execute): Call
3190 split_edges_for_insertion instead of split_critical_edges.
3191 * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
3192 * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
3193 (pass_data_sink_code): Update function name in the comment.
3194
3195 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
3196
3197 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
3198 around is_value_included_in that knows how to handle BIT_AND_EXPR.
3199 (is_pred_expr_subset_of): Use the new function. Handle more cases where
3200 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
3201 positives.
3202
3203 2019-05-21 Martin Liska <mliska@suse.cz>
3204
3205 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
3206 an extra newline.
3207 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
3208 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
3209 vec_lvsr.
3210 * config/rs6000/rs6000.c (rs6000_option_override_internal):
3211 Quote a C type.
3212 (rs6000_function_arg): Likewise.
3213 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
3214 (rs6000_expand_ternop_builtin): Use interval syntax.
3215 (get_element_number): Likewise.
3216 (altivec_expand_builtin): Likewise.
3217 (rs6000_get_function_versions_dispatcher): Quote target_clones.
3218
3219 Fix test-suite.
3220
3221 2019-05-20 Jakub Jelinek <jakub@redhat.com>
3222
3223 PR c++/59813
3224 PR target/90418
3225 * function.h (struct function): Add calls_eh_return member.
3226 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
3227 gimplifying __builtin_eh_return call.
3228 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
3229 to cfun.
3230 (expand_call_inline): Or in src_cfun->calls_eh_return into
3231 dst_cfun->calls_eh_return.
3232 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
3233 cfun->calls_eh_return.
3234 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
3235 * lto-streamer-out.c (output_struct_function_base): Write
3236 calls_eh_return.
3237
3238 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
3239
3240 PR rtl-optimization/43147
3241 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
3242 IX86_BUILTIN_SHUFPD.
3243
3244 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
3245
3246 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
3247 (refs_may_alias_p_1): ... here; update stats.
3248 (refs_may_alias_p): Do not update stats here.
3249
3250 2019-05-20 Richard Biener <rguenther@suse.de>
3251
3252 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
3253 doesn't produce pointers.
3254 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
3255 the first operand points to.
3256
3257 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
3258
3259 * tree-ssa-alias.c (compare_sizes): New function.
3260 (sompare_type_sizes): New function
3261 (aliasing_component_refs_p): Use it.
3262 (indirect_ref_may_alias_decl_p): Likewise.
3263
3264 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3265
3266 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
3267
3268 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3269
3270 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
3271 (LIBLSAN_EARLY_SPEC): Likewise.
3272 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
3273
3274 2019-05-20 Martin Liska <mliska@suse.cz>
3275
3276 * config/i386/i386.c (ix86_libc_has_fast_function):
3277 Add ATTRIBUTE_UNUSED for the argument.
3278
3279 2019-05-20 Richard Biener <rguenther@suse.de>
3280
3281 * gimple-match-head.c: Include vec-perm-indices.h.
3282 * generic-match-head.c: Likewise.
3283 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
3284 is included.
3285 * fold-const.c (fold_vec_perm): Export.
3286 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
3287 (match.pd): ...here.
3288
3289 2019-05-20 Jakub Jelinek <jakub@redhat.com>
3290
3291 * cfgloop.h (struct loop): Add simdlen member.
3292 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
3293 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
3294 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
3295 as new argument to autovectorize_vector_sizes target hook. If
3296 loop->simdlen, pick up vector size where the vectorization factor
3297 is equal to loop->simd, and if there is none, fall back to the first
3298 successful one.
3299 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
3300 caller.
3301 * omp-low.c (omp_clause_aligned_alignment): Likewise.
3302 * omp-general.c (omp_max_vf): Likewise.
3303 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
3304 * tree-vect-slp.c (vect_slp_bb): Likewise.
3305 * target.def (autovectorize_vector_sizes): Add ALL argument and
3306 document it.
3307 * doc/tm.texi: Adjust documentation.
3308 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
3309 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
3310 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
3311 bool argument.
3312 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
3313 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
3314 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
3315 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
3316 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
3317 preferred vector size is not 512-bit or 256-bit, just put those
3318 unpreferred ones last.
3319
3320 2019-05-20 Martin Liska <mliska@suse.cz>
3321
3322 * targhooks.c (default_libc_has_fast_function): New function.
3323 * targhooks.h (default_libc_has_fast_function): Likewise.
3324
3325 2019-05-20 Martin Liska <mliska@suse.cz>
3326
3327 PR middle-end/90263
3328 * builtins.c (expand_builtin_memory_copy_args): When having a
3329 target with fast mempcpy implementation do now use memcpy.
3330 * config/i386/i386.c (ix86_libc_has_fast_function): New.
3331 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
3332 * doc/tm.texi: Likewise.
3333 * doc/tm.texi.in: Likewise.
3334 * target.def:
3335 * expr.c (emit_block_move_hints): Add 2 new arguments.
3336 * expr.h (emit_block_move_hints): Bail out when libcall
3337 to memcpy would be used.
3338
3339 2019-05-20 Martin Liska <mliska@suse.cz>
3340
3341 * profile-count.c: Add vertical spacing in order
3342 to separate functions.
3343 * profile-count.h: Likewise.
3344
3345 2019-05-20 Martin Liska <mliska@suse.cz>
3346
3347 * profile-count.h: Do not use full qualified
3348 names if possible.
3349 * profile-count.c (profile_count::to_frequency): Likewise.
3350
3351 2019-05-20 Martin Liska <mliska@suse.cz>
3352
3353 * profile-count.h (enum profile_quality): Use capital letters
3354 for enum value names. Use the adjusted names.
3355 * profile-count.c: Use the adjusted names.
3356
3357 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3358
3359 * config/rs6000/constraints.md (define_register_constraint "wH"):
3360 Delete.
3361 (define_register_constraint "wI"): Delete.
3362 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3363 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
3364 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3365 (rs6000_init_hard_regno_mode_ok): Adjust.
3366 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
3367 resp. "d", or with "wa" as appropriate, all with "p8v".
3368 * config/rs6000/vsx.md: Ditto.
3369 * doc/md.texi (Machine Constraints): Adjust.
3370
3371 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3372
3373 * config/rs6000/constraints.md (define_register_constraint "wy"):
3374 Delete.
3375 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3376 RS6000_CONSTRAINT_wy.
3377 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3378 (rs6000_init_hard_regno_mode_ok): Adjust.
3379 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
3380 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
3381 (define_mode_attr Fisa): New.
3382 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
3383 * doc/md.texi (Machine Constraints): Adjust.
3384
3385 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3386
3387 * config/rs6000/constraints.md (define_register_constraint "wu"):
3388 Delete.
3389 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3390 RS6000_CONSTRAINT_wu.
3391 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3392 (rs6000_init_hard_regno_mode_ok): Adjust.
3393 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
3394 both with "p8v".
3395 (define_mode_attr Fa): Delete.
3396 * config/rs6000/vsx.md: Ditto.
3397 * doc/md.texi (Machine Constraints): Adjust.
3398
3399 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3400
3401 * config/rs6000/constraints.md (define_register_constraint "wJ"):
3402 Delete.
3403 (define_register_constraint "wK"): Delete.
3404 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3405 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
3406 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3407 (rs6000_init_hard_regno_mode_ok): Adjust.
3408 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
3409 Replace "wK" constraint by "wH" with "p9v".
3410 * config/rs6000/vsx.md: Ditto.
3411 * doc/md.texi (Machine Constraints): Adjust.
3412
3413 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3414
3415 * config/rs6000/constraints.md (define_register_constraint "wb"):
3416 Delete.
3417 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3418 RS6000_CONSTRAINT_wb.
3419 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3420 (rs6000_init_hard_regno_mode_ok): Adjust.
3421 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
3422 * config/rs6000/vsx.md: Ditto.
3423 * doc/md.texi (Machine Constraints): Adjust.
3424
3425 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3426
3427 * config/rs6000/constraints.md (define_register_constraint "wo"):
3428 Delete.
3429 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3430 RS6000_CONSTRAINT_wo.
3431 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3432 (rs6000_init_hard_regno_mode_ok): Adjust.
3433 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
3434 * config/rs6000/altivec.md: Ditto.
3435 * doc/md.texi (Machine Constraints): Adjust.
3436
3437 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
3438
3439 * config/darwin-c.c (darwin_register_objc_includes): Do not
3440 prepend the sysroot when building gnu-runtime header search
3441 paths.
3442
3443 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
3444
3445 * config/darwin.c (darwin_file_end): Use switch_to_section ()
3446 instead of direct output of the asm.
3447
3448 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
3449
3450 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
3451 argument to be type bool (was int before).
3452 (rs6000_emit_epilogue): Simplify some code. Declare some variables
3453 at first use. Use type bool for some variables. Fix a theoretical
3454 eh_return bug for svr4.
3455
3456 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
3457
3458 * config/rs6000/rs6000.md (isa): New attribute.
3459 (enabled): New attribute.
3460
3461 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
3462
3463 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
3464 assemble_start_function and assemble_end_function.
3465
3466 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
3467
3468 PR middle-end/89433
3469 * omp-general.c (oacc_verify_routine_clauses): Change formal
3470 parameters. Add checking if already marked with an OpenACC
3471 'routine' directive. Adjust all users.
3472
3473 PR middle-end/89433
3474 * omp-general.c (oacc_build_routine_dims): Move some of its
3475 processing into...
3476 (oacc_verify_routine_clauses): ... this new function.
3477 * omp-general.h (oacc_verify_routine_clauses): New prototype.
3478
3479 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
3480
3481 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
3482 formating of picbase labels to match other ports.
3483
3484 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
3485
3486 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
3487 in the generated code.
3488
3489 2019-05-16 Martin Sebor <msebor@redhat.com>
3490
3491 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
3492 identifiers, keywords, operators, and types in diagnostics. Correct
3493 quoting, spelling, and sentence capitalization issues.
3494 (expand_builtin_atomic_is_lock_free): Same.
3495 (fold_builtin_next_arg): Same.
3496 * cfgexpand.c (expand_one_var): Same.
3497 (tree_conflicts_with_clobbers_p): Same.
3498 (expand_asm_stmt): Same.
3499 (verify_loop_structure): Same.
3500 * cgraphunit.c (process_function_and_variable_attributes): Same.
3501 * collect-utils.c (collect_execute): Same.
3502 * collect2.c (maybe_run_lto_and_relink): Same.
3503 (is_lto_object_file): Same.
3504 (scan_prog_file): Same.
3505 * convert.c (convert_to_real_1): Same.
3506 * dwarf2out.c (dwarf2out_begin_prologue): Same.
3507 * except.c (verify_eh_tree): Same.
3508 * gcc.c (execute): Same.
3509 (eval_spec_function): Same.
3510 (run_attempt): Same.
3511 (driver::set_up_specs): Same.
3512 (compare_debug_auxbase_opt_spec_function): Same.
3513 * gcov-tool.c (unlink_gcda_file): Same.
3514 (do_merge): Same.
3515 (do_rewrite): Same.
3516 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
3517 * gimplify.c (gimplify_asm_expr): Same.
3518 (gimplify_adjust_omp_clauses): Same.
3519 * hsa-gen.c (gen_hsa_addr_insns): Same.
3520 (gen_hsa_insns_for_load): Same.
3521 (gen_hsa_cmp_insn_from_gimple): Same.
3522 (gen_hsa_insns_for_operation_assignment): Same.
3523 (gen_get_level): Same.
3524 (gen_hsa_alloca): Same.
3525 (omp_simple_builtin::generate): Same.
3526 (gen_hsa_atomic_for_builtin): Same.
3527 (gen_hsa_insns_for_call): Same.
3528 * input.c (dump_location_info): Same.
3529 * ipa-devirt.c (compare_virtual_tables): Same.
3530 * ira.c (ira_setup_eliminable_regset): Same.
3531 * lra-assigns.c (lra_assign): Same.
3532 * lra-constraints.c (lra_constraints): Same.
3533 * lto-streamer-in.c (lto_input_mode_table): Same.
3534 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
3535 (merge_and_complain): Same.
3536 (compile_offload_image): Same.
3537 (compile_images_for_offload_targets): Same.
3538 (debug_objcopy): Same.
3539 (run_gcc): Same.
3540 (main): Same.
3541 * opts.c (print_specific_help): Same.
3542 (parse_no_sanitize_attribute): Same.
3543 (print_help): Same.
3544 (handle_param): Same.
3545 * plugin.c (add_new_plugin): Same.
3546 (parse_plugin_arg_opt): Same.
3547 (try_init_one_plugin): Same.
3548 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
3549 operators, and types in diagnostics. Correct quoting and spelling
3550 issues.
3551 * read-rtl-function.c (parse_edge_flag_token): Same.
3552 (function_reader::parse_enum_value): Same.
3553 * reg-stack.c (check_asm_stack_operands): Same.
3554 * regcprop.c (validate_value_data): Same.
3555 * sched-rgn.c (make_pass_sched_fusion): Same.
3556 * stmt.c (check_unique_operand_names): Same.
3557 * targhooks.c (default_target_option_pragma_parse): Same.
3558 * tlink.c (recompile_files): Same.
3559 * toplev.c (process_options): Same.
3560 (do_compile): Same.
3561 * trans-mem.c (diagnose_tm_1): Same.
3562 (ipa_tm_scan_irr_block): Same.
3563 (ipa_tm_diagnose_transaction): Same.
3564 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
3565 format a tree code name in a diagnostic.
3566 (verify_types_in_gimple_min_lval): Same.
3567 (verify_types_in_gimple_reference): Same.
3568 (verify_gimple_call): Same.
3569 (verify_gimple_assign_unary): Same.
3570 (verify_gimple_assign_binary): Same.
3571 (verify_gimple_assign_ternary): Same.
3572 (verify_gimple_assign_single): Same.
3573 (verify_gimple_switch): Same.
3574 (verify_gimple_label): Same.
3575 (verify_gimple_phi): Same.
3576 (verify_gimple_in_seq): Same.
3577 (verify_eh_throw_stmt_node): Same.
3578 (collect_subblocks): Same.
3579 (gimple_verify_flow_info): Same.
3580 (do_warn_unused_result): Same.
3581 * tree-inline.c (expand_call_inline): Same.
3582 * tree-into-ssa.c (update_ssa): Same.
3583 * tree.c (tree_int_cst_elt_check_failed): Same.
3584 (tree_vec_elt_check_failed): Same.
3585 (omp_clause_operand_check_failed): Same.
3586 (verify_type_variant): Same.
3587 (verify_type): Same.
3588 * value-prof.c (verify_histograms): Same.
3589 * varasm.c (assemble_start_function): Same.
3590
3591 2019-05-16 Martin Sebor <msebor@redhat.com>
3592
3593 * config/i386/i386-expand.c (get_element_number): Quote keywords
3594 and other internal names in diagnostics. Adjust other diagnostic
3595 formatting issues noted by -Wformat-diag.
3596 * config/i386/i386-features.c
3597 (ix86_mangle_function_version_assembler_name): Same.
3598 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
3599 * config/i386/i386.c (ix86_function_type_abi): Same.
3600 (ix86_function_ms_hook_prologue): Same.
3601 (classify_argument): Same.
3602 (ix86_expand_prologue): Same.
3603 (ix86_md_asm_adjust): Same.
3604 (ix86_memmodel_check): Same.
3605
3606 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
3607
3608 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
3609 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
3610 and fpxx modes.
3611
3612 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
3613
3614 PR target/90497
3615 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
3616 intrinsics without SSE/SSE2/SSSE3.
3617 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
3618 check.
3619 (*mmx_uavgv8qi3): Likewise.
3620
3621 2019-05-17 Richard Biener <rguenther@suse.de>
3622
3623 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
3624 VEC_PERM_EXPR as __VEC_PERM with -gimple.
3625
3626 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
3627
3628 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
3629 vec_sldw insn pattern.
3630
3631 2019-05-17 Richard Biener <rguenther@suse.de>
3632
3633 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
3634
3635 2019-05-17 Martin Liska <mliska@suse.cz>
3636
3637 PR driver/90496
3638 * toplev.c (output_stack_usage): With LTO and sanitizer it
3639 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
3640 has no file location.
3641
3642 2019-05-16 Jakub Jelinek <jakub@redhat.com>
3643
3644 PR c++/90484
3645 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
3646 sz0 is equal to sz1, instead return false in that case.
3647
3648 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
3649 has non-constant expression, force sctx.lane and use two
3650 argument IFN_GOMP_SIMD_LANE instead of single argument.
3651 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
3652 two argument IFN_GOMP_SIMD_LANE without lhs.
3653 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
3654 member.
3655 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
3656 Define.
3657 (LOOP_REQUIRES_VERSIONING): Or in
3658 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
3659 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
3660 simd_if_cond.
3661 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
3662 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
3663 from simd if clause if needed.
3664
3665 2019-05-16 Richard Biener <rguenther@suse.de>
3666
3667 * tree-affine.c (expr_to_aff_combination): New function split
3668 out from...
3669 (tree_to_aff_combination): ... here.
3670 (aff_combination_expand): Avoid building a GENERIC tree.
3671
3672 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
3673
3674 * cgraphunit.c (cgraph_node::expand_thunk): Remove
3675 assemble_start_function and assemble_end_function calls.
3676 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
3677 assemble_start_function and assemble_end_function.
3678 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
3679 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
3680 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
3681 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
3682 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
3683 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
3684 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
3685 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
3686 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
3687 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3688 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3689 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
3690 Likewise.
3691 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
3692 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
3693 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
3694 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
3695 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
3696 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
3697 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
3698 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
3699 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
3700 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3701 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3702 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3703 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
3704 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
3705 Likewise.
3706 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
3707 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
3708 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
3709
3710 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
3711
3712 * tree-ssa-alias.c (alias_stats): Add
3713 aliasing_component_refs_p_may_alias and
3714 aliasing_component_refs_p_no_alias.
3715 (dump_alias_stats): Print aliasing_component_refs_p stats.
3716 (aliasing_component_refs_p): Update stats.
3717
3718 2019-05-16 Martin Liska <mliska@suse.cz>
3719
3720 PR lto/90500
3721 * multiple_target.c (expand_target_clones): Do not allow
3722 target_clones being used with a symbol that is an alias.
3723
3724 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
3725
3726 PR tree-optimization/90394
3727 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
3728 positives rather than ICE for cases where (code2 == NE_EXPR
3729 && code1 == BIT_AND_EXPR).
3730
3731 2019-05-16 Jakub Jelinek <jakub@redhat.com>
3732
3733 PR fortran/90329
3734 * tree-core.h (struct tree_decl_common): Document
3735 decl_nonshareable_flag for PARM_DECLs.
3736 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
3737 * calls.c (expand_call): Don't try tail call if caller
3738 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
3739 passed on the stack and callee needs to pass any arguments on the
3740 stack.
3741 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
3742 else if instead of series of mutually exclusive ifs. Handle
3743 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
3744 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3745
3746 * lto-streamer.h (LTO_major_version): Bump to 9.
3747
3748 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
3749
3750 PR tree-optimization/90106
3751 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
3752 new parameter as new internal function call, also move it to new
3753 basic block.
3754 (use_internal_fn): Pass internal function call to
3755 shrink_wrap_one_built_in_call_with_conds.
3756
3757 2019-05-15 Jakub Jelinek <jakub@redhat.com>
3758
3759 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
3760 max_vf to 1.
3761 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
3762 safelen_int and set loop->dont_vectorize.
3763
3764 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3765
3766 PR target/89021
3767 * config/i386/i386-builtin.def: Enable MMX intrinsics with
3768 SSE/SSE2/SSSE3.
3769 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
3770 Likewise.
3771 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
3772 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
3773 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
3774 is defined.
3775
3776 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3777
3778 PR target/89021
3779 * config/i386/mmx.md (*vec_dupv2sf): Changed to
3780 define_insn_and_split to support SSE emulation.
3781 (*vec_extractv2sf_0): Likewise.
3782 (*vec_extractv2sf_1): Likewise.
3783 (*vec_extractv2si_0): Likewise.
3784 (*vec_extractv2si_1): Likewise.
3785 (*vec_extractv2si_zext_mem): Likewise.
3786 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
3787 (vec_extractv2sf_1 splitter): Likewise.
3788 (vec_extractv2sfsf): Likewise.
3789 (vec_setv2si): Likewise.
3790 (vec_extractv2si_1 splitter): Likewise.
3791 (vec_extractv2sisi): Likewise.
3792 (vec_setv4hi): Likewise.
3793 (vec_extractv4hihi): Likewise.
3794 (vec_setv8qi): Likewise.
3795 (vec_extractv8qiqi): Likewise.
3796 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
3797 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
3798 (vec_extractv2sisi): Likewise.
3799 (vec_extractv4hihi): Likewise.
3800 (vec_extractv8qiqi): Likewise.
3801 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
3802 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
3803 (vec_initv2sisi): Likewise.
3804 (vec_initv4hihi): Likewise.
3805 (vec_initv8qiqi): Likewise.
3806 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
3807 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
3808 (vec_setv4hi): Likewise.
3809 (vec_setv8qi): Likewise.
3810
3811 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3812
3813 PR target/89021
3814 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
3815 TARGET_MMX_WITH_SSE.
3816 (MMXMODE:*mov<mode>_internal): Likewise.
3817 (MMXMODE:movmisalign<mode>): Likewise.
3818
3819 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
3820
3821 PR target/89021
3822 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
3823 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
3824 (sse2_cvtpd2pi): Ditto.
3825 (sse2_cvttpd2pi): Ditto.
3826 (*vec_concatv2sf_sse4_1): Ditto.
3827 (*vec_concatv2sf_sse): Ditto.
3828 (*vec_concatv2si_sse4_1): Ditto.
3829 (*vec_concatv2si): Ditto.
3830 (*vec_concatv4si_0): Ditto.
3831 (*vec_concatv2di_0): Ditto.
3832
3833 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3834
3835 PR target/89021
3836 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
3837
3838 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3839
3840 PR target/89021
3841 * config/i386/sse.md (ssse3_palignrdi): Changed to
3842 define_insn_and_split to support SSE emulation.
3843
3844 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3845
3846 PR target/89021
3847 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
3848
3849 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3850
3851 PR target/89021
3852 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
3853 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3854 SSE emulation.
3855
3856 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3857
3858 PR target/89021
3859 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
3860 or TARGET_MMX_WITH_SSE.
3861 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
3862
3863 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3864
3865 PR target/89021
3866 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
3867
3868 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3869
3870 PR target/89021
3871 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
3872 Changed to define_insn_and_split to support SSE emulation.
3873
3874 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3875
3876 PR target/89021
3877 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
3878 Changed to define_insn_and_split to support SSE emulation.
3879
3880 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3881
3882 PR target/89021
3883 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
3884 (*mmx_<emms>): This.
3885 (mmx_<emms>): New expander.
3886
3887 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3888
3889 PR target/89021
3890 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
3891 support.
3892 (*sse2_umulv1siv1di3): Add SSE2 emulation.
3893
3894 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3895
3896 PR target/89021
3897 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
3898
3899 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3900
3901 PR target/89021
3902 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
3903
3904 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3905
3906 PR target/89021
3907 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
3908 TARGET_MMX_WITH_SSE.
3909 (*mmx_uavgv4hi3): Add SSE emulation.
3910
3911 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3912
3913 PR target/89021
3914 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
3915 and TARGET_MMX_WITH_SSE.
3916 (*mmx_uavgv8qi3): Add SSE emulation.
3917
3918 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3919
3920 PR target/89021
3921 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
3922 maskmovdqu for __MMX_WITH_SSE__.
3923
3924 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3925
3926 PR target/89021
3927 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
3928 TARGET_MMX and TARGET_MMX_WITH_SSE.
3929 (*mmx_umulv4hi3_highpart): Add SSE emulation.
3930
3931 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3932
3933 PR target/89021
3934 * config/i386/mmx.md (mmx_pmovmskb): Changed to
3935 define_insn_and_split to support SSE emulation.
3936
3937 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3938
3939 PR target/89021
3940 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
3941 and TARGET_MMX_WITH_SSE.
3942 (mmx_<code>v8qi3): Likewise.
3943 (smaxmin:<code>v4hi3): New.
3944 (umaxmin:<code>v8qi3): Likewise.
3945 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
3946 (umaxmin:*mmx_<code>v8qi3): Likewise.
3947
3948 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3949
3950 PR target/89021
3951 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
3952 TARGET_MMX_WITH_SSE.
3953 (*mmx_pinsrw): Add SSE emulation.
3954
3955 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3956
3957 PR target/89021
3958 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
3959
3960 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3961
3962 PR target/89021
3963 * config/i386/sse.md (sse_cvtpi2ps): Changed to
3964 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3965 SSE emulation.
3966
3967 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3968
3969 PR target/89021
3970 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
3971 (sse_cvttps2pi): Likewise.
3972
3973 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3974
3975 PR target/89021
3976 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
3977 TARGET_MMX_WITH_SSE.
3978 (mmx_pshufw_1): Add SSE emulation.
3979 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
3980 TARGET_MMX_WITH_SSE to support SSE emulation.
3981
3982 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3983
3984 PR target/89021
3985 * config/i386/constraints.md (Yw): New constraint.
3986 * config/i386/mmx.md (*vec_dupv2si): Changed to
3987 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
3988 support SSE emulation.
3989
3990 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3991
3992 PR target/89021
3993 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
3994 TARGET_MMX_WITH_SSE.
3995 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
3996 support.
3997 (mmx_gt<mode>3): Likewise.
3998
3999 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4000
4001 PR target/89021
4002 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
4003 TARGET_MMX_WITH_SSE. Add SSE support.
4004
4005 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4006
4007 PR target/89021
4008 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
4009 TARGET_MMX_WITH_SSE.
4010 (any_logic:<code><mode>3): New.
4011 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
4012 Add SSE support.
4013
4014 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4015
4016 PR target/89021
4017 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
4018 TARGET_MMX_WITH_SSE. Add SSE emulation.
4019 (mmx_<shift_insn><mode>3): Likewise.
4020 (ashr<mode>3): New.
4021 (<shift_insn><mode>3): Likewise.
4022
4023 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4024
4025 PR target/89021
4026 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
4027 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
4028
4029 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4030
4031 PR target/89021
4032 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
4033 TARGET_MMX_WITH_SSE.
4034 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
4035 SSE support.
4036
4037 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4038
4039 PR target/89021
4040 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
4041 TARGET_MMX_WITH_SSE.
4042 (mulv4hi3): New.
4043 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
4044 support.
4045
4046 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4047
4048 PR target/89021
4049 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
4050 (plusminus:mmx_<plusminus_insn><mode>3): Check
4051 TARGET_MMX_WITH_SSE.
4052 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
4053 (<plusminus_insn><mode>3): New.
4054 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
4055 (*mmx_<plusminus_insn><mode>3): Likewise.
4056
4057 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4058
4059 PR target/89021
4060 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
4061 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
4062 prototype.
4063 * config/i386/mmx.m (mmx_punpckhbw): Changed to
4064 define_insn_and_split to support SSE emulation.
4065 (mmx_punpcklbw): Likewise.
4066 (mmx_punpckhwd): Likewise.
4067 (mmx_punpcklwd): Likewise.
4068 (mmx_punpckhdq): Likewise.
4069 (mmx_punpckldq): Likewise.
4070
4071 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4072 Uros Bizjak <ubizjak@gmail.com>
4073
4074 PR target/89021
4075 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
4076 New function.
4077 (ix86_split_mmx_pack): Likewise.
4078 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
4079 New prototype.
4080 (ix86_split_mmx_pack): Likewise.
4081 * config/i386/i386.md (mmx_isa): New.
4082 (enabled): Also check mmx_isa.
4083 * config/i386/mmx.md (any_s_truncate): New code iterator.
4084 (s_trunsuffix): New code attr.
4085 (mmx_packsswb): Removed.
4086 (mmx_packssdw): Likewise.
4087 (mmx_packuswb): Likewise.
4088 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
4089 MMX packsswb/packuswb with SSE2.
4090 (mmx_packssdw): Likewise.
4091 * config/i386/predicates.md (register_mmxmem_operand): New.
4092
4093 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
4094
4095 PR target/89021
4096 * config/i386/i386-c.c (ix86_target_macros_internal): Define
4097 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
4098 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
4099 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
4100 (ix86_vector_mode_supported_p): Likewise.
4101 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
4102
4103 2019-05-15 Martin Liska <mliska@suse.cz>
4104
4105 PR middle-end/90478
4106 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
4107 Check for overflow.
4108
4109 2019-05-15 Richard Biener <rguenther@suse.de>
4110
4111 * tree-into-ssa.c (pass_build_ssa::execute): Run
4112 update_address_taken before going into SSA.
4113
4114 2019-05-15 Richard Biener <rguenther@suse.de>
4115
4116 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
4117 as __BIT_FIELD_REF with type with -gimple.
4118
4119 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
4120
4121 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
4122 semantically equivalent branches (left over after prior refactorings).
4123
4124 2019-05-15 Richard Biener <rguenther@suse.de>
4125
4126 PR tree-optimization/88828
4127 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
4128 bogus check.
4129
4130 2019-05-14 Richard Biener <rguenther@suse.de>
4131
4132 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
4133 as __VIEW_CONVERT with -gimple.
4134
4135 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
4136
4137 PR target/82920
4138 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
4139 Darwin.
4140
4141 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
4142
4143 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
4144 define_split to become a define_insn_and_split.
4145
4146 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
4147
4148 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
4149 arguments.
4150 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
4151 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
4152 (sibcall_epilogue): Adjust.
4153 (epilogue): Adjust.
4154
4155 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4156
4157 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
4158 to unsupported ones.
4159 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
4160 * config.host: Likewise.
4161 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
4162 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
4163 __svr4__]: Remove "brand" fallback.
4164 [!KSTAT_DATA_STRING]: Remove.
4165 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
4166 to *-*-solaris2*.
4167 (comdat_group): Likewise.
4168 (set_have_as_tls): Likewise.
4169 (gcc_cv_target_dl_iterate_phdr): Likewise.
4170 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
4171 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
4172 * configure: Regenerate.
4173 * doc/install.texi: Simplify Solaris target triplets.
4174 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
4175 (Specific, *-*-solaris2*): Document Solaris 10 removal.
4176 Remove Solaris 10 references.
4177 Remove obsolete Solaris bug reference.
4178 (Specific, sparc-sun-solaris2.10): Remove.
4179
4180 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
4181
4182 * config/i386/i386.md (any_div): New code iterator.
4183 (paired_mod): New code attribute.
4184 (sgnprefix): Handle DIV and UDIV RTXes.
4185 (u): Ditto.
4186 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
4187 and udivmod<mode>4 patterns using any_div code iterator.
4188 (divmod splitters): Macroize splitters using any_div code iterator.
4189 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
4190 (*udivmodsi4_pow2_zext_2): Ditto.
4191 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
4192 and *udivmod<mode>4_noext patterns using any_div code iterator.
4193 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
4194 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
4195 patterns using any_div code iterator.
4196 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
4197 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
4198 patterns using any_div code iterator.
4199 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
4200 udivmodhiqi3 patterns using any_extend code iterator.
4201
4202 2019-05-14 Richard Biener <rguenther@suse.de>
4203 H.J. Lu <hongjiu.lu@intel.com>
4204
4205 PR tree-optimization/88828
4206 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
4207 permuting in a single non-constant element not extracted
4208 from a vector.
4209
4210 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
4211
4212 * internal-fn.def (SIGNBIT): New.
4213 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
4214 defined.
4215 (signbitv4sf2): Likewise.
4216
4217 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
4218
4219 PR target/90357
4220 * config/mips/mips.c (mips_split_move): Skip forward SRC into
4221 next insn when the SRC reg is dead.
4222
4223 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
4224
4225 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
4226 (alloc_cand_and_find_basis): Ditto.
4227 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
4228 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
4229 (create_add_imm_cand, slsr_process_cast): Ditto.
4230 (slsr_process_copy, replace_mult_candidate): Ditto.
4231 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
4232 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
4233 (pass_strength_reduction::execute): Init the first NULL element.
4234
4235 2019-05-13 Nathan Sidwell <nathan@acm.org>
4236
4237 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
4238 (run_attempt): Reformat line break.
4239
4240 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
4241
4242 PR target/90418
4243 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
4244 data registers in sibcall epilogues.
4245 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
4246
4247 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
4248
4249 PR target/89221
4250 * configure.ac (--enable-frame-pointer):
4251 Disable by default for cygwin and mingw.
4252 * configure: Regenerate.
4253
4254 2019-05-13 Nathan Sidwell <nathan@acm.org>
4255
4256 * dwarf2out.c (breakout_comdat_types): Move comment to correct
4257 piece of code.
4258 (const_ok_for_output_1): Balance parens around #if/#else/#endif
4259 (gen_member_die): Move abstract origin check earlier. Only VARs
4260 can be static_inline_p. Simplify splicing control flow.
4261
4262 2019-05-13 Richard Biener <rguenther@suse.de>
4263
4264 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
4265 VIEW_CONVERT_EXPR.
4266 (vect_build_slp_tree_1): Likewise.
4267
4268 2019-05-13 Richard Biener <rguenther@suse.de>
4269
4270 PR tree-optimization/90402
4271 * tree-if-conv.c (tree_if_conversion): Value number only
4272 the loop body by making the latch an exit of the region
4273 as well.
4274 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
4275 processing PHIs.
4276 (do_rpo_vn): Deal with multiple edges into the entry block
4277 that are not backedges inside the region by skipping PHIs
4278 of the entry block.
4279
4280 2019-05-13 Richard Biener <rguenther@suse.de>
4281
4282 PR tree-optimization/90316
4283 * tree-ssa-pre.c (insert_aux): Fold into ...
4284 (insert): ... this function. Use a RPO walk to reduce the
4285 number of required iterations.
4286
4287 2019-05-13 Martin Liska <mliska@suse.cz>
4288
4289 PR tree-optimization/90416
4290 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
4291 string instead of passing the second part as va_arg argument.
4292
4293 2019-05-13 Martin Liska <mliska@suse.cz>
4294
4295 PR gcov-profile/90380
4296 * gcov.c (handle_cycle): Do not support zero cycle count,
4297 it should not be possible.
4298 (path_contains_zero_cycle_arc): New function.
4299 (circuit): Ignore zero cycle arc counts.
4300
4301 2019-05-13 Martin Liska <mliska@suse.cz>
4302
4303 PR gcov-profile/90380
4304 * gcov.c (enum loop_type): Remove the enum and
4305 the operator.
4306 (handle_cycle): Assert that we should not reach
4307 a negative count.
4308 (circuit): Use loop_found instead of a tri-state loop_type.
4309 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
4310 happen.
4311
4312 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
4313
4314 PR target/82920
4315 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
4316 (ix86_output_indirect_branch_via_reg): Use output mechanism
4317 accounting for __USER_LABEL_PREFIX__.
4318 (ix86_output_indirect_branch_via_push): Likewise.
4319 (ix86_output_function_return): Likewise.
4320 (ix86_output_indirect_function_return): Likewise.
4321
4322 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
4323
4324 * doc/md.texi: Document use of code attributes in rtx patterns.
4325 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
4326 * read-rtl.c (find_code): Split out search loops into...
4327 (maybe_find_code): ...this new function.
4328 (check_code_iterator): Make the error message more informative.
4329 (check_code_attribute): New function.
4330 (rtx_reader::rtx_alloc_for_name): Likewise.
4331 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
4332 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
4333 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
4334 <max_opp> directly as an rtx code instead of via a match_operator.
4335 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
4336 (<su>abd<mode>_3): Update accordingly.
4337
4338 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
4339
4340 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
4341 is given, print the state of the EH "save world" computation for
4342 Darwin.
4343
4344 2019-05-11 Jakub Jelinek <jakub@redhat.com>
4345
4346 PR c++/59813
4347 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
4348 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
4349
4350 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
4351
4352 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
4353 Use pinsrd for TARGET_SSE4_1.
4354 * config/i386/sse.md (movdi_to_sse): Ditto.
4355
4356 2019-05-10 Richard Biener <rguenther@suse.de>
4357
4358 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
4359 (do_rpo_vn): Initialize next_value_id.
4360
4361 2019-05-10 Martin Liska <mliska@suse.cz>
4362
4363 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
4364 Fix plural form.
4365
4366 2019-05-10 Jakub Jelinek <jakub@redhat.com>
4367
4368 PR tree-optimization/90385
4369 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
4370 arguments of the exit phis.
4371
4372 PR c++/90383
4373 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
4374 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
4375 id->do_not_fold.
4376 (copy_tree_body_r): Likewise.
4377 (copy_fn): Set id.do_not_fold to true.
4378
4379 2019-05-10 Martin Liska <mliska@suse.cz>
4380
4381 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
4382 Reapply changes from r269790.
4383
4384 2019-05-10 Martin Liska <mliska@suse.cz>
4385
4386 PR middle-end/90340
4387 * doc/invoke.texi: New params.
4388 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
4389 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
4390 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
4391 Use it.
4392 * tree-switch-conversion.h (struct jump_table_cluster):
4393 Likewise.
4394
4395 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
4396
4397 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
4398
4399 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
4400
4401 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
4402
4403 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
4404
4405 PR rtl-optimization/88879
4406 * sel-sched.c (sel_target_adjust_priority): Remove assert.
4407
4408 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
4409
4410 PR target/90405
4411 * config/arm/arm.c (callee_saved_reg_p): Move before
4412 thumb_find_work_register.
4413 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
4414 thumb_find_work_register. Only call df_get_live_out once.
4415 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
4416 (thumb_find_work_register): Use
4417 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
4418 algorithms to locate a spare call clobbered reg.
4419
4420 2019-05-09 Martin Liska <mliska@suse.cz>
4421
4422 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
4423 and MAX_EXPR in GIMPLE FE format.
4424
4425 2019-05-09 Martin Liska <mliska@suse.cz>
4426
4427 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
4428 * gimple-pretty-print.c (dump_gimple_bb_header):
4429 Dump BB count.
4430 (pp_cfg_jump): Dump edge probability.
4431 * profile-count.c (profile_quality_as_string): Simplify
4432 with a static array.
4433 (parse_profile_quality): New function.
4434 (profile_count::dump): Simplify with a static array.
4435 (profile_count::from_gcov_type): Add new argument.
4436 * profile-count.h (parse_profile_quality): Likewise.
4437 * predict.h (set_hot_bb_threshold): New.
4438 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
4439 New param.
4440 * predict.c (get_hot_bb_threshold): Set from the new param.
4441 (set_hot_bb_threshold): New.
4442
4443 2019-05-09 Richard Biener <rguenther@suse.de>
4444
4445 PR tree-optimization/90395
4446 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
4447 rewrite vector stores that throw internally.
4448
4449 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
4450
4451 * cif-code.def (CHKP): Remove.
4452
4453 PR target/89221
4454 * configure.ac (--enable-frame-pointer): Disable by default for
4455 GNU systems.
4456 * configure: Regenerate.
4457
4458 2019-05-09 Alan Modra <amodra@gmail.com>
4459
4460 PR target/89271
4461 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
4462 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
4463 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
4464 cost for general <-> vsx when direct moves are available.
4465 Cost union classes at minimal cost for any reg in the class.
4466 Correct calculation for moves between vsx, float, and altivec.
4467 Don't return a low cost for moves between special regs. Don't
4468 use hard coded register numbers.
4469 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
4470 (rs6000_ira_change_pseudo_allocno_class): New function.
4471 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
4472 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
4473 alternatives.
4474 (movsi_internal1): Don't disparage vector alternatives.
4475 (mov<mode>_internal): Likewise, excepting alternative that
4476 will be split.
4477 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
4478 we <- b alternative.
4479
4480 2019-05-08 Jakub Jelinek <jakub@redhat.com>
4481
4482 PR c++/59813
4483 PR tree-optimization/89060
4484 * tree-ssa-live.h (live_vars_map): New typedef.
4485 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
4486 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
4487 (struct compute_live_vars_data): New type.
4488 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
4489 live_vars_at_stmt, destroy_live_vars): New functions.
4490 * tree-tailcall.c: Include tree-ssa-live.h.
4491 (live_vars, live_vars_vec): New global variables.
4492 (find_tail_calls): Perform variable life analysis before punting.
4493 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
4494 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
4495 member.
4496 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
4497 Perform variable life analysis to select variables that really need
4498 clobbers added.
4499 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
4500 instead set id->eh_landing_pad_dest and assert it is the same.
4501 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
4502
4503 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
4504 Richard Earnshaw <rearnsha@arm.com>
4505
4506 PR target/88167
4507 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
4508 function.
4509 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
4510 (thumb1_compute_save_core_reg_mask): Don't force a spare work
4511 register if both the epilogue and prologue can use call-clobbered
4512 regs.
4513 (thumb1_unexpanded_epilogue): Use
4514 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
4515 picking temporaries for restoring high regs to match that of the
4516 prologue where possible.
4517 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
4518 the list of work registers. Detect if the return address is still live
4519 at the end of the prologue and avoid using it for a work register if so.
4520 If the return address is not live, add LR to the list of pushable regs
4521 after the first pass.
4522
4523 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
4524
4525 PR tree-optimization/90078
4526 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
4527 (INFTY): Increase the value for infinite cost.
4528 (struct comp_cost): Promote type of members to int64_t.
4529 (infinite_cost): Don't set complexity in initialization.
4530 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
4531 overflows to infinite_cost.
4532 (adjust_setup_cost): Promote type of parameter and cost computation
4533 to int64_t.
4534 (struct ainc_cost_data, struct iv_ca): Promote type of member to
4535 int64_t.
4536 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
4537 cost computation to int64_t.
4538 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
4539 int64_t's format specifier in dump.
4540
4541 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
4542
4543 PR tree-optimization/90240
4544 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
4545 with respect to scaling factor pre-computed for each basic block.
4546 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
4547 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
4548 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
4549 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
4550 live range for array of loop's basic blocks. Cleanup aux field of
4551 loop's basic blocks.
4552
4553 2019-05-08 Jakub Jelinek <jakub@redhat.com>
4554
4555 PR tree-optimization/90356
4556 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
4557
4558 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
4559
4560 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
4561 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
4562 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
4563 (ix86_handle_option): Handle -mavx512bf16.
4564 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
4565 to extra_headers.
4566 * config/i386/avx512bf16vlintrin.h: New.
4567 * config/i386/avx512bf16intrin.h: New.
4568 * config/i386/cpuid.h (bit_AVX512BF16): New.
4569 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
4570 * config/i386/i386-builtin-types.def: Add new types.
4571 * config/i386/i386-builtin.def: Add new builtins.
4572 * config/i386/i386-c.c (ix86_target_macros_internal): Define
4573 __AVX512BF16__.
4574 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
4575 (ix86_option_override_internal): Handle BF16.
4576 (ix86_valid_target_attribute_inner_p): Ditto.
4577 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
4578 * config/i386/i386-builtin.c (enum processor_features): Add
4579 F_AVX512BF16.
4580 (static const _isa_names_table isa_names_table): Ditto.
4581 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
4582 (PTA_AVX512BF16): Ditto.
4583 * config/i386/i386.opt: Add -mavx512bf16.
4584 * config/i386/immintrin.h: Include avx512bf16intrin.h
4585 and avx512bf16vlintrin.h.
4586 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
4587 avx512f_cvtneps2bf16_<mode><mask_name>,
4588 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
4589 * config/i386/subst.md (mask_half): Add new subst.
4590 * doc/invoke.texi: Document -mavx512bf16.
4591
4592 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
4593
4594 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
4595 Delete declaration.
4596 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
4597 (rs6000_debug_legitimize_reload_address): Delete.
4598 (rs6000_legitimize_reload_address_ptr): Delete.
4599 (rs6000_option_override_internal): Adjust.
4600 (mem_operand_gpr): Adjust comment.
4601 (legitimate_lo_sum_address_p): Ditto.
4602 (rs6000_legitimize_reload_address): Delete.
4603 (rs6000_debug_legitimize_reload_address): Delete.
4604 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
4605
4606 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
4607
4608 PR target/89765
4609 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4610 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
4611 to compute vector element selector for both constant and variable
4612 operands.
4613
4614 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
4615
4616 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
4617 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
4618 ashrdi3_cvt using SWI48 mode iterator.
4619
4620 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
4621
4622 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
4623 (aarch64_<su>abd<mode>_3): Likewise.
4624 (*aarch64_<su>abd<mode>_3): New define_insn.
4625 (<sur>sad<vsi2qi>): New define_expand.
4626 * config/aarch64/iterators.md: Added MAX_OPP attribute.
4627 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
4628 (build_vect_cond_expr): Likewise.
4629
4630 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
4631
4632 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
4633 clobbers outside of accessible_reg_set.
4634 * config/i386/i386.c (ix86_conditional_register_usage):
4635 Disable register sets by clearing corresponding bits in
4636 accessible_reg_set. Do not set corresponding bits in fixed_regs,
4637 call_used_regs and don't clear corresponding reg_names array members.
4638
4639 2019-05-07 Richard Biener <rguenther@suse.de>
4640
4641 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
4642 not specified still compute a comp_vectype for invariant
4643 compares.
4644
4645 2019-05-07 Richard Biener <rguenther@suse.de>
4646
4647 PR tree-optimization/90316
4648 * tree-ssa-pre.c (translate_vuse_through_block): When
4649 same_valid is NULL do not bother to search for a virtual
4650 PHI continuation.
4651 (phi_translate_1): When operands changed we cannot keep
4652 the same value-number so do not bother to ask whether
4653 that's possible from translate_vuse_through_block.
4654
4655 2019-05-07 Martin Liska <mliska@suse.cz>
4656
4657 * bitmap.c (bitmap_register): Come up with
4658 alloc_descriptor_max_uid and assign it for
4659 a new bitmap.
4660 (register_overhead): Use get_descriptor as
4661 a descriptor.
4662 (release_overhead): New.
4663 (bitmap_elem_to_freelist): Call it.
4664 (bitmap_elt_clear_from): Likewise.
4665 (bitmap_obstack_free): Likewise.
4666 (bitmap_move): Sensitively release memory.
4667 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
4668 (bitmap_initialize): Initialize alloc_descriptor to zero.
4669 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
4670
4671 2019-05-07 Richard Biener <rguenther@suse.de>
4672
4673 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
4674 we build a SLP node. Remove max_size and limiting.
4675 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
4676
4677 2019-05-07 Richard Biener <rguenther@suse.de>
4678
4679 PR tree-optimization/90316
4680 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
4681 limit by reference.
4682 (walk_non_aliased_vuses): Take walking limit argument.
4683 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
4684 walking if it is reached instead of just counting.
4685 (get_continuation_for_phi): Likewise.
4686 (walk_non_aliased_vuses): Likewise, instead of leaving counter
4687 limiting to the callback.
4688 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
4689 (vn_reference_lookup_3): Likewise.
4690 (vn_reference_lookup_pieces): Likewise.
4691 (vn_reference_lookup): Likewise.
4692 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
4693 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
4694 (avail_exprs_stack::lookup_avail_expr): Likewise.
4695
4696 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
4697
4698 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
4699 for comparaible types in the second direction even if first one
4700 hits incomparable type.
4701
4702 2019-05-07 Richard Biener <rguenther@suse.de>
4703
4704 PR lto/90369
4705 * lto-wrapper.c (debug_objcopy): Use the original filename
4706 including archive offset for the filename used for -save-temps.
4707
4708 2019-05-07 Li Jia He <helijia@linux.ibm.com>
4709
4710 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
4711 detection.
4712
4713 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
4714 Hongtao Liu <hongtao.liu@intel.com>
4715
4716 PR target/89750
4717 PR target/86444
4718 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
4719 Modified, original implementation isn't correct.
4720
4721 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4722
4723 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
4724 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
4725 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
4726 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
4727 (FRAME_POINTER_REGNUM): Change numbering.
4728 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
4729 (alt_reg_names): Adjust.
4730 (rs6000_conditional_register_usage): Don't mark hard register 64 as
4731 fixed.
4732 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
4733 (DWARF_FRAME_REGISTERS): Delete.
4734 (DWARF2_FRAME_REG_OUT): Fix whitespace.
4735 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
4736 Adjust.
4737 (REG_ALLOC_ORDER): Adjust.
4738 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
4739 (REG_CLASS_CONTENTS): Adjust.
4740 (RETURN_ADDR_RTX): Change comment.
4741 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
4742 instead of 67.
4743 (REGISTER_NAMES): Adjust.
4744 (ADDITIONAL_REGISTER_NAMES): Adjust.
4745 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
4746
4747 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4748
4749 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
4750 Delete.
4751 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
4752 (DWARF_FRAME_REGISTERS): Adjust.
4753 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
4754 Adjust.
4755 (REG_ALLOC_ORDER): Adjust.
4756 (enum reg_class): Delete SPR_REGS.
4757 (REG_CLASS_NAMES): Delete SPR_REGS.
4758 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
4759 (REGISTER_NAMES): Adjust.
4760 (ADDITIONAL_REGISTER_NAMES): Adjust.
4761 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
4762 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
4763 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
4764 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
4765 (htm_spr_regno): Delete.
4766 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
4767 argument.
4768 (rs6000_dbx_register_number): Adjust.
4769
4770 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4771
4772 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
4773
4774 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4775
4776 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
4777 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
4778
4779 2019-05-06 Jakub Jelinek <jakub@redhat.com>
4780
4781 PR tree-optimization/88709
4782 PR tree-optimization/90271
4783 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
4784 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
4785 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
4786 variable.
4787 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
4788 of the store merging group is larger than
4789 PARAM_STORE_MERGING_MAX_SIZE parameter.
4790 (split_group): Add bzero_first argument. If set, always emit first
4791 the first store which must be = {} of the whole area and then for the
4792 rest of the stores consider all zero bytes as paddings.
4793 (imm_store_chain_info::output_merged_store): Check if first store
4794 is = {} of the whole area and if yes, determine which setting of
4795 bzero_first for split_group gives smaller number of stores. Adjust
4796 split_group callers.
4797 (lhs_valid_for_store_merging_p): Allow decls.
4798 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
4799 no elts.
4800 (pass_store_merging::process_store): Likewise.
4801
4802 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
4803
4804 PR target/89424
4805 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4806 handling of V1TImode.
4807
4808 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
4809
4810 PR target/89221
4811 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
4812 and enable_frame_pointer ...
4813 * configure.ac: ... here. Update help strings for
4814 --enable-frame-pointer.
4815 * configure: Regenerate.
4816 * config/i386/i386-options.c (ix86_option_override_internal): Remove
4817 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
4818 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
4819 (USE_X86_64_FRAME_POINTER): Ditto.
4820
4821 2019-05-06 Martin Liska <mliska@suse.cz>
4822
4823 * config.gcc: Append to target_gtfiles and fix indentation.
4824
4825 2019-05-06 Richard Biener <rguenther@suse.de>
4826
4827 PR tree-optimization/90358
4828 * tree-vect-stmts.c (get_group_load_store_type): Properly
4829 detect unused upper half of load.
4830 (vectorizable_load): Likewise.
4831
4832 2019-05-06 Richard Biener <rguenther@suse.de>
4833
4834 PR tree-optimization/88828
4835 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
4836 (simplify_vector_constructor): ...here. Handle constants in
4837 the constructor.
4838
4839 2019-05-06 Richard Biener <rguenther@suse.de>
4840
4841 PR tree-optimization/90328
4842 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
4843 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
4844 is valid in the loop nest before using it.
4845 (initialize_data_dependence_relation): Adjust.
4846 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
4847 loop as loop-nest to dr_may_alias_p.
4848
4849 2019-05-06 Richard Biener <rguenther@suse.de>
4850
4851 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
4852
4853 2019-05-06 Richard Biener <rguenther@suse.de>
4854
4855 PR tree-optimization/90316
4856 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
4857 compute target on demand.
4858 (get_continuation_for_phi): Remove code walking stmts to
4859 get to a target virtual operand which could end up being
4860 quadratic.
4861
4862 2019-05-06 Martin Liska <mliska@suse.cz>
4863
4864 PR sanitizer/90312
4865 * config/i386/i386-options.c (ix86_option_override_internal): Error only
4866 when -mabi is selected to a non-default version.
4867
4868 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
4869 Martin Liska <mliska@suse.cz>
4870
4871 * Makefile.in: Add lto-dump.texi.
4872 * cgraph.h: Add new functions get_visibility_string and
4873 get_symtab_type_string.
4874 * doc/gcc.texi: Include lto-dump section.
4875 * doc/lto-dump.texi: New file.
4876 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
4877 (parse_dump_option): Factor out this function.
4878 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
4879 (parse_dump_option): Export the function.
4880 * symtab.c (symtab_node::get_visibility_string): New function.
4881 (symtab_node::get_symtab_type_string): Likewise.
4882
4883 2019-05-06 Martin Liska <mliska@suse.cz>
4884
4885 * config/i386/i386-builtins.c: New file.
4886 * config/i386/i386-builtins.h: New file.
4887 * config/i386/i386-expand.c: New file.
4888 * config/i386/i386-expand.h: New file.
4889 * config/i386/i386-features.c: New file.
4890 * config/i386/i386-features.h: New file.
4891 * config/i386/i386-options.c: New file.
4892 * config/i386/i386-options.h: New file.
4893 * config.gcc: Add new files into extra_objs and
4894 target_gtfiles.
4895 * config/i386/i386.c: Split content of the file
4896 into newly introduced files.
4897 * config/i386/i386.h: Declare common variables
4898 and macros.
4899 * config/i386/t-i386: Define dependencies for new files.
4900
4901 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
4902
4903 PR target/89400
4904 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
4905 Restrict 'all' variant to 32-bit configurations.
4906 (unaligned_loadhiu): Likewise.
4907 (unaligned_storehi): Likewise.
4908 (unaligned_storesi): Likewise.
4909 (unaligned_loadhis): Disable when compiling for thumb1.
4910
4911 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
4912
4913 PR tree-optimization/90269
4914 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
4915 Ignore clobbers.
4916
4917 2019-05-03 Martin Liska <mliska@suse.cz>
4918
4919 * hash-map.h: Add is_empty function.
4920 * hash-set.h: Likewise.
4921 * hash-table.h: Likewise.
4922 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
4923 elements () == 0 (and similar usages).
4924 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
4925 * gimplify.c (gimplify_bind_expr): Likewise.
4926 (gimplify_switch_expr): Likewise.
4927 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
4928 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
4929 * postreload-gcse.c (dump_hash_table): Likewise.
4930 (gcse_after_reload_main): Likewise.
4931 * predict.c (combine_predictions_for_bb): Likewise.
4932 * tree-parloops.c (reduction_phi): Likewise.
4933 (separate_decls_in_region): Likewise.
4934 (transform_to_exit_first_loop): Likewise.
4935 (gen_parallel_loop): Likewise.
4936 (gather_scalar_reductions): Likewise.
4937 (try_create_reduction_list): Likewise.
4938 * var-tracking.c (dump_vars): Likewise.
4939 (emit_notes_for_changes): Likewise.
4940 (vt_emit_notes): Likewise.
4941
4942 2019-05-03 Richard Biener <rguenther@suse.de>
4943
4944 PR tree-optimization/90316
4945 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
4946 before running VN.
4947
4948 2019-05-03 Richard Biener <rguenther@suse.de>
4949
4950 * tree-vect-stmts.c (get_group_load_store_type): Avoid
4951 peeling for gaps by loading only lower halves of vectors
4952 if possible.
4953 (vectorizable_load): Likewise.
4954
4955 2019-05-03 Richard Biener <rguenther@suse.de>
4956
4957 PR middle-end/89518
4958 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
4959
4960 2019-05-03 Richard Biener <rguenther@suse.de>
4961
4962 PR middle-end/87314
4963 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
4964 Handle STRING_CST vs DECL or STRING_CST.
4965
4966 2019-05-03 Richard Biener <rguenther@suse.de>
4967
4968 PR tree-optimization/88963
4969 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
4970 vector loads feeding only BIT_FIELD_REFs to component
4971 loads. Rewrite stores fed by CONSTRUCTORs to component
4972 stores.
4973
4974 2019-05-03 Jakub Jelinek <jakub@redhat.com>
4975
4976 * opts.h (finish_options): Remove lang_mask argument.
4977 (print_help, help_option_argument): Declare.
4978 * opts.c (print_help): Remove forward declaration, no longer static.
4979 (finish_options): Remove lang_mask argument, don't call print_help
4980 here.
4981 * opts-global.c (decode_options): Adjust finish_option caller, call
4982 print_help here.
4983
4984 PR tree-optimization/90303
4985 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
4986 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
4987
4988 2019-05-03 Richard Biener <rguenther@suse.de>
4989
4990 PR tree-optimization/89698
4991 * gimple-fold.c (canonicalize_constructor_val): Early out
4992 for constants, handle unfolded INTEGER_CSTs as they appear in
4993 C++ virtual table ctors.
4994
4995 2019-05-03 Richard Biener <rguenther@suse.de>
4996
4997 * passes.c (execute_function_todo): Remove dead code.
4998
4999 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
5000
5001 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
5002 the internal register number, for any "real" register.
5003
5004 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
5005
5006 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
5007 correct numbers for TFHAR, TFIAR, TEXASR.
5008
5009 2019-05-02 Richard Biener <rguenther@suse.de>
5010
5011 PR tree-optimization/89653
5012 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
5013 update-address-taken before the pass.
5014 * passes.def (pass_tree_loop_init): Put comment before it.
5015
5016 2019-05-02 Richard Biener <rguenther@suse.de>
5017
5018 PR tree-optimization/89509
5019 * tree-ssa-structalias.c (compute_dependence_clique): Look
5020 at the first subvar when determining whether it is restrict.
5021
5022 2019-05-02 Richard Biener <rguenther@suse.de>
5023
5024 PR tree-optimization/90273
5025 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
5026 useless debug stmts.
5027
5028 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
5029
5030 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
5031 ACLE branch.
5032 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
5033 SVE ACLE branch.
5034 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
5035 VEC_COND_EXPR be inserted to emulate a conditional internal function.
5036 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
5037 (vectorizable_reduction): Use the functions above to vectorize in a
5038 fully masked loop codes that don't have a conditional internal
5039 function.
5040
5041 2019-05-02 Martin Liska <mliska@suse.cz>
5042
5043 * cgraphclones.c: Call valid_attribute_p with 1 for
5044 target_clone.
5045 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
5046 it's for target attribute.
5047 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
5048 Add new boolean argument.
5049 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
5050 Likewise.
5051 (ix86_valid_target_attribute_tree): Pass target_clone_attr
5052 to ix86_valid_target_attribute_inner_p.
5053 (ix86_valid_target_attribute_p): Pass flags argument to
5054 ix86_valid_target_attribute_inner_p.
5055 (get_builtin_code_for_version): Use 0 as it's target attribute.
5056
5057 2019-05-02 Martin Liska <mliska@suse.cz>
5058
5059 * gcc.c (process_command): Add dummy file only
5060 if n_infiles == 0.
5061 * opts-global.c (decode_options): Pass lang_mask.
5062 * opts.c (print_help): New function.
5063 (finish_options): Print --help if help_option_argument
5064 is set.
5065 (common_handle_option): Factor out content of OPT__help_
5066 into print_help.
5067 * opts.h (finish_options): Add new argument.
5068
5069 2019-05-02 Martin Liska <mliska@suse.cz>
5070
5071 PR target/88809
5072 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
5073 With -minline-all-stringops use inline expansion using 4B loop.
5074 * doc/invoke.texi: Document the change of
5075 -minline-all-stringops.
5076
5077 2019-05-01 Jeff Law <law@redhat.com>
5078
5079 PR tree-optimization/88797
5080 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
5081 PHI feeds a conditional on the RHS of an assignment.
5082
5083 2019-04-30 Andrew Waterman <andrew@sifive.com>
5084 Jim Wilson <jimw@sifive.com>
5085
5086 * config/riscv/constraints.md (L): New.
5087 * config/riscv/predicates.md (lui_operand): New.
5088 (sfb_alu_operand): New.
5089 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
5090 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
5091 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
5092 * config/riscv/risc.md (type): Add sfb_alu.
5093 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
5094 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
5095 (branch_zero<mode>): Delete.
5096 (mov<mode>cc): New.
5097 (mov<GPR:mode><X:mode>cc): Likewise.
5098 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
5099
5100 2019-04-30 Nathan Sidwell <nathan@acm.org>
5101
5102 * tree.h (MARK_TS_EXP): New.
5103
5104 2019-04-30 Martin Liska <mliska@suse.cz>
5105
5106 * opts.c (enable_warning_as_error): Provide hints
5107 for unknown options.
5108
5109 2019-04-30 Martin Liska <mliska@suse.cz>
5110
5111 PR debug/90288
5112 * doc/invoke.texi: Add missing dash for gas-locview-support
5113 and gno-as-locview-support.
5114
5115 2019-04-30 Jakub Jelinek <jakub@redhat.com>
5116
5117 PR target/89093
5118 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
5119 whitespace at the start of target attribute string.
5120
5121 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5122
5123 PR target/86538
5124 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
5125 Define __ARM_FEATURE_ATOMICS.
5126
5127 2019-04-30 Martin Liska <mliska@suse.cz>
5128
5129 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
5130 into built_in_function enum. Remove code for endp == 2 and
5131 use BUILT_IN_* constants.
5132 (gimple_fold_builtin): Call the function with fcode.
5133
5134 2019-04-30 Martin Liska <mliska@suse.cz>
5135
5136 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
5137 DECL_FUNCTION_CODE into ix86_builtins enum before
5138 the switch statement.
5139
5140 2019-04-30 Jakub Jelinek <jakub@redhat.com>
5141
5142 PR tree-optimization/89475
5143 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
5144 calls.
5145
5146 2019-04-30 Martin Liska <mliska@suse.cz>
5147
5148 PR translation/90274
5149 * opts.c (print_filtered_help): Wrap string in _(...).
5150
5151 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
5152
5153 PR tree-optimization/90240
5154 Revert:
5155 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
5156
5157 PR tree-optimization/90078
5158 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
5159 checks for infinite_cost overflow.
5160
5161 2019-04-29 Jeff Law <law@redhat.com>
5162
5163 * passes.def: Move -Wrestrict pass after copy propagation.
5164
5165 2019-04-29 Maya Rashish <coypu@sdf.org>
5166
5167 * config.gcc (default_gnu_indirect_function): Default to yes
5168 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
5169 sparc*-*-netbsd*, x86_64-*-netbsd*.
5170
5171 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
5172
5173 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
5174 where cond2 is NE_EXPR.
5175 (is_value_included_in): Update comment.
5176
5177 2019-04-29 Richard Biener <rguenther@suse.de>
5178
5179 PR tree-optimization/90278
5180 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
5181 EH on comparison simplification.
5182
5183 2019-04-29 Jason Merrill <jason@redhat.com>
5184
5185 PR c++/82081 - tail call optimization breaks noexcept
5186 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
5187 nothrow function to a might-throw function into a tail call.
5188
5189 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
5190
5191 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
5192 (DDR_INNER_LOOP): Likewise.
5193 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
5194 (initialize_data_dependence_relation): Likewise.
5195 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
5196
5197 2019-04-29 Jakub Jelinek <jakub@redhat.com>
5198
5199 PR rtl-optimization/90257
5200 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
5201 return value.
5202
5203 Revert the revert:
5204 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
5205
5206 PR target/90178
5207 Revert:
5208 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
5209
5210 Revert the revert:
5211 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
5212
5213 Revert:
5214 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
5215
5216 * lra-spills.c (lra_final_code_change): Remove useless move insns.
5217
5218 2019-04-29 Richard Biener <rguenther@suse.de>
5219
5220 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
5221 rhs issue a reset.
5222
5223 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
5224
5225 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
5226 varasm.h, and netbsd-protos.h.
5227
5228 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
5229
5230 PR target/89261
5231 * config/i386/i386-protos.h (ix86_data_alignment): Change
5232 the second argument type to unsigned int.
5233 * config/i386/i386.c (ix86_data_alignment): Change "align"
5234 argument type to unsigned int.
5235
5236 2019-04-27 Martin Liska <mliska@suse.cz>
5237
5238 PR middle-end/90258
5239 * opt-suggestions.c (option_proposer::build_option_suggestions):
5240 When get_valid_option_values returns empty values, add the
5241 misspelling candidate.
5242
5243 2019-04-26 Jim Wilson <jimw@sifive.com>
5244
5245 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
5246 parameter.
5247 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
5248 Pass orig_mode to riscv_build_integer.
5249 (riscv_split_integer): Pass mode to riscv_move_integer.
5250 (riscv_legitimize_const_move): Likewise.
5251 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
5252 promoted_mode. Replace force_reg call with code to load constant into
5253 promoted reg and then subreg it for the store.
5254 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
5255 riscv_move_integer.
5256
5257 2018-04-26 Eugene Sharygin <eush@ispras.ru>
5258
5259 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
5260 corrupt codes.
5261
5262 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
5263
5264 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
5265 commentary about the encoding of precision.
5266
5267 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
5268
5269 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
5270 * config/i386/t-freebsd64: New file.
5271 * config.gcc: Add the t-freebsd64 for multilib support.
5272
5273 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
5274
5275 * doc/extend.texi (vector_size): Add missing comma after @xref.
5276
5277 2019-04-25 Jakub Jelinek <jakub@redhat.com>
5278
5279 * BASE-VER: Set to 10.0.0.
5280
5281 2019-04-25 Richard Biener <rguenther@suse.de>
5282
5283 PR middle-end/89765
5284 * gimplify.c (gimplify_expr): Avoid turning a lvalue
5285 VIEW_CONVERT_EXPR into one operating on an rvalue.
5286
5287 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
5288
5289 PR target/89929
5290 * config/i386/i386.c (feature_priority): Moved to file scope.
5291 (processor_features): Likewise.
5292 (processor_model): Likewise.
5293 (_arch_names_table): Likewise.
5294 (arch_names_table): Likewise.
5295 (_feature_list): Removed.
5296 (feature_list): Likewise.
5297 (_isa_names_table): Moved to file scope. Add priority.
5298 (isa_names_table): Likewise.
5299 (get_builtin_code_for_version): Replace feature_list with
5300 isa_names_table. Update error message for P_ZERO priority.
5301
5302 2019-04-25 Richard Biener <rguenther@suse.de>
5303
5304 * tree-pass.h (make_pass_phi_only_cprop): Remove.
5305 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
5306
5307 2019-04-24 Jeff Law <law@redhat.com>
5308
5309 PR tree-optimization/90037
5310 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
5311 * passes.def: Replace all instance of phi-only cprop with the
5312 lattice propagator. Move propagation pass from after erroneous
5313 path isolation to before erroneous path isolation.
5314 * tree-ssa-phionlycprop.c: Remove.
5315
5316 2019-04-24 Richard Biener <rguenther@suse.de>
5317
5318 PR middle-end/90213
5319 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
5320 by size and BITS_PER_UNIT on poly-wide-ints.
5321
5322 2019-04-25 Richard Biener <rguenther@suse.de>
5323
5324 PR middle-end/90194
5325 * match.pd: Add pattern to simplify view-conversion of an
5326 empty constructor.
5327
5328 2019-04-24 Clement Chigot <clement.chigot@atos.net>
5329
5330 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
5331 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
5332 for Go on 32 bit AIX.
5333 * config/rs6000/aix72.h: Likewise.
5334
5335 2019-04-24 Jakub Jelinek <jakub@redhat.com>
5336
5337 PR target/90193
5338 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
5339 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
5340
5341 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
5342
5343 PR target/89952
5344 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
5345 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
5346 for restored hard frame pointer.
5347 (s390_sched_dependencies_evaluation): Implement new target hook.
5348 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
5349
5350 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
5351
5352 * config/arc/arc-options.def: Fix typos and spelling mistakes.
5353 * config/arc/arc.c (arc_init): Cleanup warning message.
5354 (arc_override_options): Likewise.
5355
5356 2019-04-24 Jakub Jelinek <jakub@redhat.com>
5357
5358 PR target/90187
5359 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
5360 a register if both if_true and if_false are MEMs.
5361
5362 PR tree-optimization/90208
5363 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
5364 after labels of new_bb, not before them.
5365
5366 PR tree-optimization/90211
5367 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
5368 which are not SSA_NAMEs.
5369
5370 2018-04-23 Sudakshina Das <sudi.das@arm.com>
5371
5372 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
5373 AArch64.
5374 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
5375
5376 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
5377
5378 PR rtl-optimization/87979
5379 * modulo-sched.c (sms_schedule): Start ii value "mii" should
5380 not equal zero.
5381
5382 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
5383
5384 PR rtl-optimization/84032
5385 * modulo-sched.c (ps_insn_find_column): Change condition so that
5386 branch will always be the last insn in a row inside partial
5387 schedule.
5388
5389 2019-04-23 Richard Biener <rguenther@suse.de>
5390
5391 PR debug/90131
5392 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
5393 dest_single_pred_p argument.
5394 (remove_forwarder_block): Adjust.
5395 (remove_forwarder_block_with_phi): Likewise.
5396
5397 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5398 Bernd Edlinger <bernd.edlinger@hotmail.de>
5399 Jakub Jelinek <jakub@redhat.com>
5400
5401 PR target/89093
5402 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
5403 if used with general-regs-only.
5404 (arm_conditional_register_usage): Don't add non-general regs if
5405 general-regs-only.
5406 (arm_valid_target_attribute_rec): Handle general-regs-only.
5407 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
5408 general-regs-only.
5409 (TARGET_HARD_FLOAT_SUB): Define.
5410 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
5411 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
5412 (TARGET_REALLY_IWMMXT2): Likewise.
5413 * config/arm/arm.opt: Add -mgeneral-regs-only.
5414 * doc/extend.texi: Document ARM general-regs-only target.
5415 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
5416
5417 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
5418
5419 PR tree-optimization/90078
5420 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
5421 checks for infinite_cost overflow.
5422
5423 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
5424
5425 PR tree-optimization/90021
5426 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
5427 and check univariate against it.
5428 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
5429 * tree-data-ref.c (add_other_self_distances): Pass new argument.
5430
5431 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
5432
5433 PR target/90178
5434 Revert:
5435 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
5436
5437 Revert the revert:
5438 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
5439
5440 Revert:
5441 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
5442
5443 * lra-spills.c (lra_final_code_change): Remove useless move insns.
5444
5445 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
5446
5447 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
5448 names using operand format, rather than hard-wired.
5449 (speculation_barrier): Likewise.
5450
5451 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
5452
5453 PR tree-optimization/88055
5454 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
5455 (gen_one_condition): Use it if !HONOR_NANS.
5456
5457 2019-04-19 Jakub Jelinek <jakub@redhat.com>
5458
5459 PR middle-end/90139
5460 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
5461 assign_temp instead of gen_reg_rtx.
5462
5463 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
5464
5465 PR translation/90118
5466 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5467 Add missing space before %<.
5468
5469 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
5470
5471 PR rtl-optimization/87871
5472 * ira-lives.c (make_object_dead): Don't add conflicts to
5473 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
5474
5475 2019-04-18 Martin Sebor <msebor@redhat.com>
5476
5477 PR middle-end/89797
5478 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
5479 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
5480 assuming type size fits in SHWI.
5481
5482 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
5483
5484 PR ipa/85051
5485 * ipa-inline.c (flatten_function): New parameter UPDATE.
5486 (ipa_inline, early_inliner): Use it.
5487
5488 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
5489
5490 * fold-const.c (int_const_binop): Return early on failure.
5491
5492 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
5493
5494 PR middle-end/85164
5495 * combine.c (force_int_to_mode): Cast the argument rather than
5496 the result of known_alignment.
5497 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
5498
5499 2019-04-18 Richard Biener <rguenther@suse.de>
5500
5501 PR debug/90131
5502 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
5503 out from ...
5504 (remove_forwarder_block): ... here.
5505 (remove_forwarder_block_with_phi): Also move debug stmts here.
5506
5507 2019-04-18 Jakub Jelinek <jakub@redhat.com>
5508
5509 PR translation/79183
5510 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
5511 inform where appropriate.
5512
5513 2019-04-18 Richard Biener <rguenther@suse.de>
5514
5515 * tree.c (get_qualified_type): Put found type variants at the
5516 head of the variant list.
5517
5518 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5519
5520 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
5521
5522 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
5523
5524 PR target/90125
5525 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
5526 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
5527 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
5528 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
5529 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
5530
5531 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
5532
5533 * ira-conflicts.c (print_allocno_conflicts): Always print something,
5534 even for allocno's with no conflicts.
5535 (print_conflicts): Print an extra newline.
5536
5537 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5538
5539 * auto-inc-dec.c (attempt_change): Set the alignment of the
5540 temporary memory to that of the original.
5541
5542 2019-04-17 Joao Moreira <jmoreira@suse.de>
5543
5544 * targhooks.c (default_print_patchable_function_entry): Emit
5545 __patchable_function_entries section with writable flags to allow
5546 relocation resolution.
5547
5548 2019-04-17 Jonny Grant <jg@jguk.org>
5549
5550 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
5551
5552 2019-04-17 Jakub Jelinek <jakub@redhat.com>
5553
5554 PR middle-end/90095
5555 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
5556 on lowpart SUBREGs.
5557
5558 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
5559
5560 * config/arc/arc.c (arc_init): Format diagnostic string.
5561 (arc_override_options): Likewise.
5562 (check_if_valid_regno_const): Likewise.
5563 (arc_reorg): Likewise.
5564
5565 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5566
5567 PR target/17108
5568 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
5569 name.
5570 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
5571 name.
5572 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
5573 (*movdi_update1): Use Pmode.
5574 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
5575 (movdi_<mode>_update_stack): Rename to ...
5576 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
5577 use Pmode.
5578 (*movsi_update1): Use Pmode.
5579 (*movsi_update2): Use Pmode.
5580 (movsi_update): Rename to ...
5581 (movsi_<mode>_update): ... this. Use Pmode.
5582 (movsi_update_stack): Fix condition.
5583 (*movhi_update1): Use Pmode. Fix argument to
5584 avoiding_indexed_address_p.
5585 (*movhi_update2): Ditto.
5586 (*movhi_update3): Ditto.
5587 (*movhi_update4): Ditto.
5588 (*movqi_update1): Ditto.
5589 (*movqi_update2): Ditto.
5590 (*movqi_update3): Ditto.
5591 (*movsf_update1, *movdf_update1): Merge, rename to...
5592 (*mov<mode>_update1): This. Use Pmode. Fix argument to
5593 avoiding_indexed_address_p. Add "size" attribute.
5594 (*movsf_update2, *movdf_update2): Merge, rename to...
5595 (*mov<mode>_update2): This. Ditto.
5596 (*movsf_update3): Use Pmode. Fix argument to
5597 avoiding_indexed_address_p.
5598 (*movsf_update4): Ditto.
5599 (allocate_stack): Simplify condition. Adjust pattern names.
5600
5601 2019-04-17 Jakub Jelinek <jakub@redhat.com>
5602
5603 PR target/89093
5604 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
5605 whitespace at the start of target attribute string.
5606
5607 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
5608
5609 PR target/84369
5610 * config/rs6000/power9.md: Add store forwarding bypass.
5611
5612 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
5613
5614 PR debug/89528
5615 * valtrack.c (dead_debug_insert_temp): Reset debug references
5616 to the return value of a call being removed.
5617
5618 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5619
5620 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
5621 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
5622 implement target hook.
5623 (arc_memory_move_cost): New function.
5624 (TARGET_REGISTER_MOVE_COST): Define.
5625 (TARGET_MEMORY_MOVE_COST): Likewise.
5626 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
5627 (MEMORY_MOVE_COST): Likewise.
5628
5629 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5630
5631 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
5632 (sibcall_value_insn): Likewise.
5633 * config/arc/constraints.md (Rs5): Remove.
5634
5635 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5636
5637 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
5638 for last two fake registers.
5639 (arc_conditional_register_usage): Make sure fake frame and arg
5640 pointer regs are in general regs class.
5641 (FRAME_POINTER_MASK): Remove.
5642 (RETURN_ADDR_MASK): Remove.
5643 (arc_must_save_register): Use hard frame regnum.
5644 (frame_restore_reg): Use hard_frame_pointer_rtx.
5645 (arc_save_callee_saves): Likewise.
5646 (arc_restore_callee_saves): Likewise.
5647 (arc_save_callee_enter): Likewise.
5648 (arc_restore_callee_leave): Likewise.
5649 (arc_save_callee_milli): Likewise.
5650 (arc_eh_return_address_location): Likewise.
5651 (arc_check_multi): Use hard frame regnum.
5652 (arc_can_eliminate): Likewise.
5653 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
5654 for register allocator.
5655 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
5656 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
5657 (FRAME_POINTER_REGNUM): Change it to a fake register.
5658 (HARD_FRAME_POINTER_REGNUM): Defined.
5659 (ARG_POINTER_REGNUM): Change it to a new fake register.
5660 (ELIMINABLE_REGS): Update.
5661 (REGISTER_NAMES): Update names.
5662 * config/arc/arc.md (LP_START): Remove.
5663 (LP_END): Likewise.
5664 (shift_si3_loop): Update pattern.
5665
5666 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5667
5668 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
5669 to avoid delay slot scheduling.
5670 (arc_must_save_register): Don't save SP.
5671 * config/arc/arc.md (stack_tie): Remove.
5672 (UNSPEC_ARC_STKTIE): Likewise.
5673
5674 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
5675 Shiva Chen <shiva0217@gmail.com>
5676
5677 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
5678 code gen with large shift amount.
5679
5680 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
5681
5682 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
5683 subreg.
5684
5685 2019-04-16 Jakub Jelinek <jakub@redhat.com>
5686
5687 PR target/90096
5688 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
5689 print -m64/-mx32/-m32 if it is true.
5690 (ix86_debug_options, ix86_function_specific_print): Pass true as
5691 ADD_ABI_P to ix86_target_string.
5692 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
5693 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
5694 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
5695
5696 PR rtl-optimization/90082
5697 * dce.c (can_delete_call): New function.
5698 (deletable_insn_p, mark_insn): Use it.
5699
5700 PR tree-optimization/90090
5701 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
5702 throw internally.
5703 (is_division_by_square): Likewise. Formatting fix.
5704
5705 2019-04-16 Richard Biener <rguenther@suse.de>
5706
5707 PR tree-optimization/56049
5708 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
5709 equality check if alias-set zero will prevail.
5710
5711 2019-04-15 Jeff Law <law@redhat.com>
5712
5713 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
5714 size and alignment as unsigned.
5715
5716 2019-04-15 Richard Biener <rguenther@suse.de>
5717
5718 PR debug/90074
5719 * tree-loop-distribution.c (destroy_loop): Preserve correct
5720 debug info.
5721
5722 2019-04-15 Richard Biener <rguenther@suse.de>
5723
5724 PR tree-optimization/90071
5725 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
5726 abnormal operands from def stmts.
5727
5728 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
5729
5730 PR rtl-optimization/89794
5731 * combine.c (count_auto_inc): New function.
5732 (try_combine): Count how many auto_inc expressions there were in the
5733 original instructions. Ensure we have the same number in the new
5734 instructions. Remove the code that tried to ensure auto_inc side
5735 effects on i1 and i0 are not lost.
5736
5737 2019-04-15 Richard Biener <rguenther@suse.de>
5738
5739 PR ipa/88936
5740 * tree.h (auto_var_p): Declare.
5741 * tree.c (auto_var_p): New function, split out from ...
5742 (auto_var_in_fn_p): ... here.
5743 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
5744 member.
5745 (new_var_info): Initialize it.
5746 (set_uids_in_ptset): Also set the shadow variable uid if required.
5747 (ipa_pta_execute): Postprocess points-to solutions assigning
5748 shadow variable uids for locals that may reach their containing
5749 function recursively.
5750 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
5751 assert but instead check whether the points-to solution is
5752 a singleton.
5753
5754 2019-04-15 Martin Jambor <mjambor@suse.cz>
5755
5756 PR ipa/pr89693
5757 * cgraph.c (clone_of_p): Loop over clone chain for each step in
5758 the thunk chain.
5759
5760 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
5761
5762 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
5763
5764 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
5765 Kito Cheng <kito.cheng@gmail.com>
5766 Shiva Chen <shiva0217@gmail.com>
5767
5768 * config/nds32/nds32-md-auxiliary.c
5769 (nds32_legitimize_pic_address): Use new PIC pattern.
5770 (nds32_legitimize_tls_address): Use new TLS pattern.
5771 (nds32_output_symrel): New.
5772 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
5773 (nds32_alloc_relax_group_id): Ditto.
5774 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
5775 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
5776 relax_group_id.
5777 (nds32_group_tls_insn): Ditto.
5778 (nds32_group_float_insns): Ditto.
5779 * config/nds32/nds32.md (tls_le): New.
5780 (sym_got): Ditto.
5781
5782 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
5783
5784 * configure: Add nds32 target for dwarf2 debug_line checking.
5785 * configure.ac: Regenerated.
5786
5787 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
5788
5789 PR lto/89358
5790 * ipa-devirt.c (skip_in_fields_list_p): New.
5791 (odr_types_equivalent_p): Use it.
5792
5793 2019-04-13 Jakub Jelinek <jakub@redhat.com>
5794
5795 PR target/89093
5796 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
5797 instead of strncmp when checking for thumb and arm. Formatting fixes.
5798
5799 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
5800
5801 * doc/install.texi: Document --with-target-system-zlib.
5802
5803 2019-04-12 Martin Sebor <msebor@redhat.com>
5804
5805 PR c/88383
5806 PR c/89288
5807 PR c/89798
5808 PR c/89797
5809 * targhooks.c (default_vector_alignment): Avoid assuming
5810 argument fits in SHWI.
5811 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
5812 a shift expression.
5813 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
5814
5815 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5816
5817 PR rtl-optimization/89965
5818 * dce.c: Include rtl-iter.h.
5819 (struct check_argument_load_data): New type.
5820 (check_argument_load): New function.
5821 (find_call_stack_args): Check for loads from stack slots still tracked
5822 in sp_bytes and punt if any is found.
5823
5824 * config/mips/loongson-mmiintrin.h: Fix up #error message.
5825
5826 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
5827
5828 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
5829 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
5830
5831 2019-04-12 Martin Liska <mliska@suse.cz>
5832
5833 PR middle-end/89970
5834 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
5835 in error message.
5836 (separate_attrs): Handle multiple 'default's.
5837 (expand_target_clones): Rework error handling code.
5838
5839 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
5840
5841 PR target/87532
5842 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
5843 mode of vector rather than mode of destination for move instruction.
5844 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
5845 Use QI inner mode with V16QI vector mode.
5846
5847 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5848
5849 PR target/52726
5850 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
5851 "invalid %%t operand" in output_operand_lossage message.
5852
5853 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
5854
5855 * config/s390/predicates.md (permute_pattern_operand): New
5856 predicate.
5857 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
5858 operand for the permute pattern.
5859 ("*vec_perm<mode>"): New insn definition.
5860 ("bswap<mode>"): Generate the permute pattern operand in the
5861 expander and perform the operand reloads for pre arch13 level
5862 already.
5863 ("*bswap<mode>_emu"): Rename to ...
5864 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
5865 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
5866 Add the USE operand for the permute pattern.
5867 ("*vec_set_bswap_vec<mode>"): Likewise.
5868
5869 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5870
5871 PR c/89946
5872 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
5873 and gcc_unreachable if it fails, just call tree_to_uhwi which
5874 verifies that too. Test TREE_CHAIN instead of list_length > 1.
5875 Start warning message with a lower-case letter. Formatting fixes.
5876
5877 PR rtl-optimization/90026
5878 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
5879 successors, look for BARRIERs inside of the whole BB_FOOTER chain
5880 rather than just at the start of it. If e->src BB_FOOTER is not NULL
5881 in cfglayout mode, use emit_barrier_after_bb.
5882
5883 2018-04-11 Steve Ellcey <sellcey@marvell.com>
5884
5885 PR rtl-optimization/87763
5886 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
5887 New Instruction.
5888
5889 2019-04-11 Tom de Vries <tdevries@suse.de>
5890
5891 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
5892 max macro using statement expression.
5893
5894 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
5895
5896 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
5897 * xcoffout.c (xcoff_private_rodata_section_name): Define.
5898 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
5899 read_only_private_data_section using xcoff_private_rodata_section_name.
5900 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
5901
5902 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
5903
5904 PR target/90016
5905 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
5906
5907 2019-04-11 Jakub Jelinek <jakub@redhat.com>
5908
5909 PR rtl-optimization/89965
5910 * dce.c (sp_based_mem_offset): New function.
5911 (find_call_stack_args): Use sp_based_mem_offset.
5912
5913 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
5914
5915 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
5916
5917 2019-04-11 Richard Biener <rguenther@suse.de>
5918
5919 PR tree-optimization/90020
5920 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
5921 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
5922 * tree-ssa-pre.c (compute_avail): Use it to not put
5923 possibly trapping references after a call that might not
5924 return into EXP_GEN.
5925 * gcse.c (compute_hash_table_work): Do not elide
5926 marking a block containing a call if the call might not
5927 return.
5928
5929 2019-04-11 Richard Biener <rguenther@suse.de>
5930
5931 PR tree-optimization/90018
5932 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
5933 Test both SLP and interleaving variants.
5934
5935 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
5936
5937 * config/s390/8561.md: New file.
5938 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5939 Add arch13 cpu model.
5940 * config/s390/s390-opts.h (enum processor_type): Likewise.
5941 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
5942 (s390_get_unit_mask): Likewise.
5943 (s390_is_fpd): Likewise.
5944 (s390_is_fxd): Likewise.
5945 * config/s390/s390.h (s390_tune_attr): Likewise.
5946 * config/s390/s390.md: Include arch13 pipeline description.
5947 * config/s390/s390.opt: Add arch13.
5948
5949 2018-04-10 Steve Ellcey <sellcey@marvell.com>
5950
5951 PR rtl-optimization/87763
5952 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
5953 New prototype.
5954 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
5955 New function.
5956 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
5957 New instruction.
5958 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
5959 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
5960 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
5961 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
5962
5963 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
5964
5965 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
5966 "Although" in -fipa-icf documentation.
5967
5968 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
5969 of using multiple -g options.
5970
5971 2019-04-10 Martin Liska <mliska@suse.cz>
5972
5973 PR gcov-profile/89959
5974 * doc/gcov.texi: Make documentation of -x option
5975 more precise.
5976
5977 2019-04-10 Richard Biener <rguenther@suse.de>
5978
5979 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
5980 member.
5981 (DR_GROUP_SAME_DR_STMT): Remove.
5982 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
5983 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
5984 replace with assert.
5985 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
5986 (vect_record_grouped_load_vectors): Remove unreachable code.
5987
5988 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
5989
5990 PR target/90016
5991 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
5992 obsolete reference to N.
5993
5994 2019-04-10 Jakub Jelinek <jakub@redhat.com>
5995
5996 PR middle-end/90025
5997 * expr.c (store_expr): Set properly size on the MEM passed to
5998 clear_storage.
5999
6000 PR c++/90010
6001 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
6002 with strlen in between hostsz-3 and hostsz-1 inclusive when no
6003 translation is needed, and when translation is needed, only append
6004 ... if the string length is hostsz or more bytes long. Avoid using
6005 strncpy or strcat.
6006
6007 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
6008
6009 PR target/90024
6010 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
6011 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
6012 into three.
6013 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
6014 differences directly.
6015 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
6016
6017 2019-04-09 Jakub Jelinek <jakub@redhat.com>
6018
6019 PR translation/90011
6020 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
6021 from diagnostics.
6022 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
6023 diagnostics.
6024 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
6025 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
6026 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
6027 trailing space from -gsplit-dwarf diagnostics.
6028
6029 PR tree-optimization/89998
6030 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
6031 instead of integer_type_node if possible, don't add ranges if return
6032 type is not compatible with int.
6033 * gimple-fold.c (gimple_fold_builtin_sprintf,
6034 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
6035 integer_type_node.
6036
6037 2019-04-09 Martin Liska <mliska@suse.cz>
6038
6039 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
6040 * doc/install.texi: Document the new config.
6041
6042 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
6043
6044 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
6045 use gimple_expr_type for load and store calls. Skip over the
6046 condition argument in a conditional internal function.
6047 Protect use of TREE_INT_CST_LOW.
6048
6049 2019-04-09 Jakub Jelinek <jakub@redhat.com>
6050
6051 PR target/90015
6052 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
6053 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
6054 trailing period from it too.
6055
6056 2019-04-08 wu yuan <wuyuan5@huawei.com>
6057
6058 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
6059 * config/aarch64/aarch64.md : Add "tsv110.md"
6060 * config/aarch64/tsv110.md: New file.
6061
6062 2019-04-08 Richard Biener <rguenther@suse.de>
6063
6064 PR tree-optimization/90006
6065 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
6066 calls like lrint.
6067
6068 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
6069
6070 PR target/83033
6071 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
6072 construction.
6073 (fma_root_node): Likewise.
6074 (func_fma_steering): Likewise.
6075
6076 2019-04-08 Jakub Jelinek <jakub@redhat.com>
6077
6078 PR rtl-optimization/89865
6079 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
6080
6081 PR rtl-optimization/89865
6082 * config/i386/i386.md
6083 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
6084 numbers not to clash with the additional operands[4].
6085 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
6086 with extra register copy in the middle.
6087
6088 2019-04-08 Martin Liska <mliska@suse.cz>
6089
6090 PR gcov-profile/89961
6091 * doc/gcov.texi: Document data_file.
6092 * gcov.c (generate_results): Add data_info into JSON output.
6093
6094 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
6095
6096 PR tree-optimization/89725
6097 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
6098 loop's chrec as invariant symbol.
6099 * tree-chrec.h (chrec_contains_symbols): New parameter.
6100 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
6101 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
6102 function of loops not in DDR's loop_nest.
6103 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
6104
6105 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
6106
6107 PR target/89623
6108 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
6109 Mask.
6110
6111 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
6112
6113 PR target/89945
6114 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
6115 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
6116
6117 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
6118
6119 * sched-deps.c (sched_macro_fuse_insns): Check return value of
6120 targetm.fixed_condition_code_regs.
6121
6122 2019-04-05 Richard Biener <rguenther@suse.de>
6123
6124 PR debug/89892
6125 PR debug/89905
6126 * tree-cfgcleanup.c (remove_forwarder_block): Always move
6127 debug bind stmts but reset them if they are not valid at the
6128 destination.
6129
6130 2019-04-05 Martin Liska <mliska@suse.cz>
6131
6132 PR translation/89936
6133 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
6134 order to wrap keywords or arguments.
6135 * collect2.c (main): Likewise.
6136 (scan_prog_file): Likewise.
6137 (scan_libraries): Likewise.
6138 * common/config/riscv/riscv-common.c
6139 (riscv_subset_list::parsing_subset_version): Likewise.
6140 (riscv_subset_list::parse_std_ext): Likewise.
6141 * config/aarch64/aarch64.c (aarch64_override_options_internal):
6142 Likewise.
6143 * config/arm/arm.c (arm_option_override): Likewise.
6144 * config/cris/cris.c (cris_print_operand): Likewise.
6145 * config/darwin-c.c (darwin_pragma_options): Likewise.
6146 (darwin_pragma_unused): Likewise.
6147 (darwin_pragma_ms_struct): Likewise.
6148 * config/ft32/ft32.c (ft32_print_operand): Likewise.
6149 * config/i386/i386.c (print_reg): Likewise.
6150 (ix86_print_operand): Likewise.
6151 * config/i386/xm-djgpp.h: Likewise.
6152 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
6153 * config/m32c/m32c.c (m32c_option_override): Likewise.
6154 * config/msp430/msp430.c (msp430_option_override): Likewise.
6155 * config/nds32/nds32.c (nds32_option_override): Likewise.
6156 * config/nvptx/mkoffload.c (main): Likewise.
6157 * config/rx/rx.c (rx_print_operand): Likewise.
6158 (valid_psw_flag): Likewise.
6159 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
6160 (vms_pragma_nomember_alignment): Likewise.
6161 (vms_pragma_extern_model): Likewise.
6162 * lto-wrapper.c (compile_offload_image): Likewise.
6163 * omp-offload.c (oacc_parse_default_dims): Likewise.
6164 * symtab.c (symtab_node::verify_base): Likewise.
6165 * tlink.c (recompile_files): Likewise.
6166 (start_tweaking): Likewise.
6167 * tree-profile.c (parse_profile_filter): Likewise.
6168
6169 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
6170
6171 PR tree-optimization/89956
6172 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
6173 multiple negates of the same value.
6174
6175 2019-04-04 Martin Sebor <msebor@redhat.com>
6176
6177 PR middle-end/89957
6178 PR middle-end/89911
6179 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
6180 have the same precision since the function crashes otherwise.
6181 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
6182 has non-zero arguments.
6183
6184 2019-04-04 Martin Sebor <msebor@redhat.com>
6185
6186 PR middle-end/89934
6187 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
6188 out if the number of arguments is less than expected.
6189
6190 2019-04-04 Jeff Law <law@redhat.com>
6191
6192 PR rtl-optimization/89399
6193 * ree.c (combine_set_extension): Use single_set rather than
6194 digging into PATTERN for items on the candidate list.
6195 (combine_reaching_defs): Likewise.
6196
6197 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
6198
6199 PR rtl-optimization/46590
6200 * loop-invariant.c (find_defs): Move df_remove_problem and
6201 df_process_deferred_rescans to move_invariants.
6202 Move df_live_add_problem and df_live_set_all_dirty calls
6203 to move_invariants.
6204 (move_invariants): Likewise.
6205 (move_loop_invariants): Likewise, making the df_live calls
6206 conditional on -O. Remove the problem again if we added it
6207 locally.
6208
6209 2019-04-03 qing zhao <qing.zhao@oracle.com>
6210
6211 PR tree-optimization/89730
6212 * ipa-inline.c (can_inline_edge_p): Delete the checking for
6213 -flive-patching=inline-only-static.
6214 (can_inline_edge_by_limits_p): Add the checking for
6215 -flive-patching=inline-only-static and grant always_inline
6216 even when -flive-patching=inline-only-static is specified.
6217
6218 2019-04-03 Jeff Law <law@redhat.com>
6219
6220 PR rtl-optimization/81025
6221 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
6222
6223 2019-04-03 Richard Biener <rguenther@suse.de>
6224
6225 PR tree-optimization/84101
6226 * tree-vect-stmts.c: Include explow.h for hard_function_value,
6227 regs.h for hard_regno_nregs.
6228 (cfun_returns): New helper.
6229 (vect_model_store_cost): When vectorizing a store to a decl
6230 we return and the function ABI returns in a multi-reg location
6231 account for the possible spilling that will happen.
6232
6233 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
6234
6235 * config/s390/s390.c (s390_legitimate_address_p): Reject long
6236 displacement addresses for vector mode operands.
6237
6238 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
6239
6240 * config/arc/arc.c (GMASK_LEN): Define.
6241 (arc_restore_callee_saves): Restore first blink when
6242 !optimize_size.
6243
6244 2019-04-03 Sudakshina Das <sudi.das@arm.com>
6245
6246 * doc/extend.texi: Add deprecated comment on sign-return-address
6247 function attribute and add mbranch-protection.
6248 * doc/invoke.texi: Add bti to the options for mbranch-protection.
6249
6250 2019-04-03 Richard Biener <rguenther@suse.de>
6251
6252 PR lto/89896
6253 * lto-wrapper.c (run_gcc): Avoid implicit rules making
6254 the all target phony.
6255
6256 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
6257
6258 PR target/89902
6259 PR target/89903
6260 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
6261 Return false for variable DImode shifts.
6262 (dimode_scalar_chain::compute_convert_gain): Do not handle
6263 register count operand in variable DImode shifts.
6264 (dimode_scalar_chain::make_vector_copies): Remove support to copy
6265 count argument of a variable shift instruction to a vector register.
6266 (dimode_scalar_chain::convert_reg): Remove support to convert
6267 count argument of a variable shift instruction.
6268
6269 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
6270
6271 PR rtl-optimization/84206
6272 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
6273 iterating over loop headers.
6274
6275 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
6276
6277 PR rtl-optimization/85876
6278 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
6279 beyond the original fence.
6280
6281 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
6282
6283 * config.gcc: Mark spu* targets as deprecated/obsolete.
6284
6285 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6286
6287 * config/s390/s390-builtin-types.def: New builtin function type
6288 definitions. Remove unused types.
6289 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
6290 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
6291 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
6292 overloaded builtins.
6293 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
6294 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
6295 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
6296 (vec_double, vec_signed, vec_unsigned): Define to use the new
6297 overloaded builtins.
6298 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
6299 Remove expanders.
6300
6301 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6302
6303 * config/s390/s390-builtin-types.def: New builtin function type
6304 definitions.
6305 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
6306 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
6307 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
6308 (s390_vstrszh, s390_vstrszf): New low-level builtins.
6309 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
6310 constant definitions.
6311 * config/s390/vecintrin.h (vec_search_string_cc)
6312 (vec_search_string_until_zero_cc): New builtin name definitions.
6313 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
6314 expanders.
6315 ("vec_vstrs<mode>"): New insn definition.
6316
6317 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6318
6319 * config/s390/s390-builtin-types.def: Add new builtin function
6320 types.
6321 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
6322 New overloaded builtins.
6323 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
6324 s390_vsrd.
6325 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
6326 (UNSPEC_VEC_SLDBYTE): ... this.
6327 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
6328 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
6329 definitions.
6330 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
6331 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
6332 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
6333
6334 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6335
6336 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
6337 New insn definition.
6338 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
6339 * config/s390/vector.md (V_HW_HSD): ... here.
6340
6341 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6342
6343 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
6344 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
6345 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
6346 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
6347 New insn definitions.
6348
6349 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6350
6351 * config/s390/s390-builtin-types.def: Add new builtin function type.
6352 * config/s390/s390-builtins.def: Add overloaded builtin
6353 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
6354 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
6355 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
6356 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
6357 ("eltswap<mode>"): New expander.
6358 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
6359 insn definitions.
6360
6361 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6362
6363 * config/s390/s390-builtin-types.def: Add new builtin function types.
6364 * config/s390/s390-builtins.def: Add overloaded builtin
6365 s390_vec_revb. Add low-level builtins for vlbr and vstbr
6366 instructions.
6367 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
6368 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
6369 ("bswap<mode>"): New expander.
6370 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
6371
6372 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6373
6374 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
6375 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
6376 vector builtin version number in __VEC__.
6377
6378 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6379
6380 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
6381 iterators.
6382 (SFSI): New mode attribute.
6383 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
6384 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
6385 rename to ...
6386 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
6387 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
6388 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
6389 ("floatsi<mode>2"): Add wcefb instruction.
6390
6391 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6392
6393 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
6394 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
6395 mode iterators.
6396 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
6397 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
6398 support 32 bit fp-int conversions. Rename to ...
6399 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
6400 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
6401 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
6402 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
6403 ... to these.
6404
6405 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6406
6407 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
6408 if-then-else constructs if we can use the select instruction.
6409 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
6410
6411 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6412
6413 * config/s390/s390.md ("*popcountdi_arch13_cc")
6414 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
6415 definition.
6416 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
6417 Append _z196 to make it ...
6418 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
6419 ("popcounthi2_z196"): ... this.
6420 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
6421 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
6422
6423 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6424
6425 * config/s390/s390.c (s390_canonicalize_comparison): Convert
6426 certain compares for arch13 in order to make use of the condition
6427 code result produced by the new instructions.
6428 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
6429 nxrk, and nxgrk instruction patterns.
6430 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
6431 (inv_no): Add new code iterator together with some attributes.
6432 ("*andc_split_<mode>"): Disable splitter for arch13.
6433 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
6434 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
6435 ("*<ANDOR:bitops_name>c<GPR:mode>")
6436 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
6437 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
6438 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
6439 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
6440
6441 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6442
6443 * common/config/s390/s390-common.c (processor_flags_table): New
6444 entry for arch13.
6445 * config.gcc: Support arch13 with the --with-arch= configure flag.
6446 * config/s390/driver-native.c (s390_host_detect_local_cpu):
6447 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
6448 * config/s390/s390.c (s390_get_sched_attrmask)
6449 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
6450 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
6451 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
6452 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
6453 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
6454 definitions.
6455 * config/s390/s390.opt: Support arch13 as processor type in
6456 command line options.
6457
6458 2019-04-02 Martin Liska <mliska@suse.cz>
6459
6460 PR translation/89912
6461 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
6462 Fix param description of graphite-max-arrays-per-scop.
6463
6464 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
6465
6466 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
6467 (ASAN_CC1_SPEC): Use it in 64-bit mode.
6468 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
6469
6470 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6471
6472 PR rtl-optimization/85412
6473 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
6474 sel_sched_region_1, not after.
6475
6476 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6477
6478 PR rtl-optimization/86928
6479 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
6480 compute_live if necessary.
6481 (sel_redirect_edge_and_branch): Likewise.
6482
6483 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
6484
6485 PR rtl-optimization/89865
6486 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
6487 register if it is a part of small class.
6488
6489 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6490
6491 PR rtl-optimization/87273
6492 * sel-sched-ir.c (merge_fences): Remove assert.
6493
6494 2019-04-01 Richard Biener <rguenther@suse.de>
6495
6496 PR tree-optimization/46590
6497 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
6498 (dom_walker::m_reachability): Add in place of...
6499 (dom_walker::m_skip_unreachable_blocks): ...this.
6500 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
6501 Move complex initialization ...
6502 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
6503 lazily and initialize edge flags on each invocation.
6504 (dom_walker::bb_reachable): Use m_reachability.
6505
6506 2019-04-01 Martin Liska <mliska@suse.cz>
6507
6508 PR driver/89861
6509 * opt-suggestions.c (option_proposer::build_option_suggestions):
6510 Add variant without any argument in order to provide better
6511 hints.
6512
6513 2019-04-01 Richard Biener <rguenther@suse.de>
6514
6515 PR c/71598
6516 * gimple.c: Include langhooks.h.
6517 (gimple_get_alias_set): Treat enumeral types as the underlying
6518 integer type.
6519
6520 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
6521 Eric Botcazou <ebotcazou@adacore.com>
6522
6523 PR rtl-optimization/89862
6524 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
6525 that operates on the full registers for WORD_REGISTER_OPERATIONS
6526 architectures.
6527
6528 2019-03-29 Jim Wilson <jimw@sifive.com>
6529
6530 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
6531 Clear MASK_RVC and then set if C subset supported.
6532
6533 2019-03-29 Jakub Jelinek <jakub@redhat.com>
6534
6535 PR c/89872
6536 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
6537 non-addressable complit into its initializer if it is volatile.
6538
6539 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
6540
6541 * opts-common.c (integral_argument): Set errno properly in one case.
6542
6543 2019-03-29 Martin Liska <mliska@suse.cz>
6544
6545 * doc/invoke.texi: Remove -Wchkp from documentation.
6546
6547 2019-03-29 Martin Liska <mliska@suse.cz>
6548
6549 * dbgcnt.c (print_limit_reach): New function.
6550 (dbg_cnt): Use it.
6551
6552 2019-03-29 Martin Liska <mliska@suse.cz>
6553
6554 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
6555 (dbg_cnt_process_opt): Parse first tokens aas
6556 dbg_cnt_process_single_pair is also using strtok.
6557
6558 2019-03-29 Jakub Jelinek <jakub@redhat.com>
6559
6560 PR rtl-optimization/87485
6561 * function.c (expand_function_end): Move stack_protect_epilogue
6562 before loading of return value into hard register(s).
6563
6564 2019-03-28 Jakub Jelinek <jakub@redhat.com>
6565
6566 PR middle-end/89621
6567 * tree-inline.h (struct copy_body_data): Add
6568 dont_remap_vla_if_no_change flag.
6569 * tree-inline.c (remap_type_3, remap_type_2): New functions.
6570 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
6571 and remap_type_2 returns false.
6572 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
6573 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
6574 only from where it is copied to nested contexts.
6575
6576 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
6577
6578 PR target/89865
6579 * config/i386/i386.md (RMW operation with LEA peephole):
6580 Use LEAMODE mode attribute instead of SWI mode iterator for
6581 LEA pattern.
6582
6583 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
6584
6585 PR target/89848
6586 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
6587 Also process XEXP (src, 0) of a shift insn.
6588
6589 2019-03-28 David Malcolm <dmalcolm@redhat.com>
6590
6591 PR middle-end/89725
6592 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
6593 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
6594
6595 2019-03-28 Jakub Jelinek <jakub@redhat.com>
6596
6597 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
6598 test.
6599 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
6600 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
6601 immediately after first one with df_analyze in between, but rather
6602 process all bbs, queueing ones that need second pass in a worklist,
6603 df_analyze, process queued debug insn changes and if second pass is
6604 needed, process bbs from worklist, df_analyze, process queued debug
6605 insns again.
6606
6607 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
6608 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
6609 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
6610
6611 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
6612
6613 PR c/79022
6614 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
6615 definition.
6616
6617 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
6618
6619 PR target/85667
6620 * config/i386/i386.c (ix86_function_value_1): Call the newly added
6621 function for 32-bit MS_ABI.
6622 (function_value_ms_32): New function.
6623
6624 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
6625
6626 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
6627 (movdi): Call gen_movdi_symbol_save_scc.
6628 (gen_movdi_symbol_save_scc): New insn and split.
6629
6630 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
6631
6632 PR rtl-optimization/89313
6633 * function.c (matching_constraint_num): New static function.
6634 (match_asm_constraints_1): Use it. Fixup white space and comment.
6635 Don't replace inputs with non-matching constraints which conflict
6636 with early clobber outputs.
6637
6638 2019-03-27 Jeff Law <law@redhat.com>
6639
6640
6641 PR rtl-optimization/87761
6642 PR rtl-optimization/89826
6643 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
6644 slightly later.
6645 (pass_cprop_hardreg::execute): Call df_analyze after adding the
6646 note problem to get REG_DEAD/REG_UNUSED notes updated.
6647
6648 2019-03-27 Richard Biener <rguenther@suse.de>
6649
6650 PR tree-optimization/89463
6651 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
6652 queue edges to remove.
6653 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
6654 dead stmts. Delay edge removal until PHIs are removed to
6655 make debug-stmt creation not confused by seemingly degenerate
6656 PHIs.
6657
6658 2019-03-27 Alan Modra <amodra@gmail.com>
6659
6660 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
6661 throughout file.
6662 * config/rs6000/darwin.h: Likewise.
6663 * config/rs6000/rs6000.c: Likewise.
6664
6665 2019-03-27 Alan Modra <amodra@gmail.com>
6666
6667 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
6668 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
6669
6670 2019-03-26 Andrew Waterman <andrew@sifive.com>
6671 Jim Wilson <jimw@sifive.com>
6672
6673 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
6674 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
6675 (generic_idivdi, generic_fmul_single, generic_fmul_double)
6676 (generic_fdiv, generic_fsqrt): Add check for generic tune.
6677 (generic_alu): Add auipc to type list.
6678 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
6679 (riscv_microarchitecture): Declare.
6680 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
6681 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
6682 field.
6683 (riscv_microarchitecture): New.
6684 (sifive_7_tune_info): New.
6685 (riscv_cpu_info_table): Add microarchitecture value for rocket and
6686 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
6687 entries.
6688 (riscv_store_data_bypass_p): New.
6689 (riscv_option_override): Set riscv_microarchitecture from
6690 cpu->microarchitecture.
6691 * config/riscv/riscv.md: Include sifive-7.md.
6692 (type): Add auipc.
6693 (tune): New.
6694 (auipc<mode>): Change type to auipc.
6695 (restore_stack_nonlocal): New.
6696 * config/riscv/sifive-7.md: New.
6697 * doc/invoke.texi (RISC-V Options): Update mtune docs.
6698
6699 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
6700
6701 PR target/89827
6702 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
6703 Also process XEXP (src, 0) of a shift insn.
6704
6705 2019-03-26 Richard Biener <rguenther@suse.de>
6706
6707 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
6708 (copy_debug_stmt): Likewise.
6709 (expand_call_inline): Likewise.
6710 (copy_bb): Avoid redundant lookup & set of gimple_block.
6711 * gimple-low.c (lower_gimple_return): Likewise.
6712 (lower_builtin_setjmp): Likewise.
6713
6714 2019-03-26 Jakub Jelinek <jakub@redhat.com>
6715
6716 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
6717 is constant 0, turn into static const data member initialized to false.
6718 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
6719 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
6720
6721 2019-03-26 Jason Merrill <jason@redhat.com>
6722 Jakub Jelinek <jakub@redhat.com>
6723
6724 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
6725 method.
6726 (mem_alloc_description::release_object_overhead): Fix comment typos.
6727 * hash-table.h (hash_table::~hash_table): Call
6728 release_instance_overhead only if m_entries is non-NULL, otherwise
6729 call unregister_descriptor.
6730
6731 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
6732
6733 PR tree-optimization/81740
6734 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6735 In case of outer loop vectorization, check for backward dependence
6736 at the inner loop if outer loop dependence is reversed.
6737
6738 2019-03-26 Alan Modra <amodra@gmail.com>
6739
6740 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
6741 rs6000_vector_mem init. Correct wI and wJ comment.
6742
6743 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
6744
6745 PR rtl-optimization/88347
6746 PR rtl-optimization/88423
6747 * sched-deps.c (sched_analyze_insn): Take into account that for
6748 tablejumps the barrier appears after a label and a jump_table_data.
6749
6750 2019-03-25 Martin Sebor <msebor@redhat.com>
6751
6752 PR c/89812
6753 * c-common.c (check_user_alignment): Rename local. Correct maximum
6754 alignment in diagnostic. Avoid assuming argument fits in SHWI,
6755 convert it to UHWI when it fits.
6756
6757 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
6758
6759 PR debug/86964
6760 * dwarf2out.c (premark_used_variables): New function.
6761 (prune_unused_types_walk): Do not mark not premarked external
6762 variables.
6763 (prune_unused_types): Call premark_used_variables.
6764
6765 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
6766
6767 PR rtl-optimization/89676
6768 * lra-constraints.c (curr_insn_transform): Do match reload for
6769 early clobbers when the match was successful only for different
6770 registers.
6771
6772 2019-03-25 Martin Sebor <msebor@redhat.com>
6773
6774 * doc/extend.texi (Common Type Attributes): Document vector_size.
6775 (Common Variable Attributes): Mention size constraint. Correct
6776 quoting and typos.
6777 (Vector Extensions): Use @dfn when defining bas type. Clarify
6778 base type and size constraints.
6779
6780 2019-03-25 Richard Biener <rguenther@suse.de>
6781
6782 PR tree-optimization/89789
6783 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
6784 changes from non-undefined back to undefined.
6785
6786 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
6787
6788 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
6789 heap string and a gc string, but since this variable is unknown to
6790 ggc the gc string might get reused and corrupted. Fixed by always
6791 using a heap string.
6792
6793 2019-03-25 Richard Biener <rguenther@suse.de>
6794
6795 PR tree-optimization/89779
6796 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
6797 to remove IV defs, delay actual removal.
6798 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
6799 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
6800 very end, properly also reset loop control IV information.
6801
6802 2019-03-25 Richard Biener <rguenther@suse.de>
6803
6804 PR tree-optimization/89802
6805 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
6806 move EH data to folded stmt.
6807
6808 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
6809
6810 * config/s390/s390-builtin-types.def: Remove few unused types and
6811 fix sort order for others.
6812
6813 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
6814
6815 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
6816 expected and found types with -mdebug during builtin matching.
6817
6818 2019-03-25 Richard Biener <rguenther@suse.de>
6819
6820 PR middle-end/89790
6821 * fold-const.c (operand_equal_p): Revert last change with
6822 updated comment.
6823
6824 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
6825
6826 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
6827 notes for the result of the __tls_get_addr calls.
6828 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
6829
6830 2019-03-24 Jeff Law <law@redhat.com>
6831
6832 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
6833
6834 PR rtl-optimization/87761
6835 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
6836 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
6837 as needed.
6838 (pass_cprop_hardreg::execute): Add df note problem and defer insn
6839 rescans. Reprocess blocks as needed, calling df_analyze before
6840 reprocessing. Always call df_analyze before fixing up debug bind
6841 insns.
6842
6843 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
6844
6845 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
6846 big endian.
6847
6848 2019-03-22 Andrew Pinski <apinski@marvell.com>
6849
6850 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
6851 attrribute for uxtw.
6852
6853 2019-03-26 Jeff Law <law@redhat.com>
6854
6855 PR rtl-optimization/87761
6856 * config/mips/mips-protos.h (mips_split_move): Add new argument.
6857 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
6858 (mips_split_move): Accept new INSN argument. Try to forward SRC
6859 into the next instruction.
6860 (mips_split_move_insn): Pass INSN through to mips_split_move.
6861
6862 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
6863
6864 PR rtl-optimization/89676
6865 * lra-constraints.c (curr_insn_transform): Do match reload for
6866 early clobbers even if the match was successful.
6867
6868 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6869
6870 PR c++/87481
6871 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
6872
6873 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
6874
6875 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
6876
6877 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6878
6879 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
6880 <avx512>_fmsub_<mode>_mask3<round_name>,
6881 <avx512>_fnmadd_<mode>_mask3<round_name>,
6882 <avx512>_fnmsub_<mode>_mask3<round_name>,
6883 avx512f_vmfmadd_<mode>_mask3<round_name>,
6884 avx512f_vmfmsub_<mode>_mask3<round_name>,
6885 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
6886 instead of register_operand and %v instead of v for match_operand 1.
6887 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
6888 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
6889 <round_nimm_predicate> instead of register_operand and %v instead of v
6890 for match_operand 1.
6891
6892 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
6893 <avx512>_fmadd_<mode>_mask3<round_name>,
6894 <avx512>_fmsub_<mode>_mask<round_name>,
6895 <avx512>_fmsub_<mode>_mask3<round_name>,
6896 <avx512>_fnmadd_<mode>_mask<round_name>,
6897 <avx512>_fnmadd_<mode>_mask3<round_name>,
6898 <avx512>_fnmsub_<mode>_mask<round_name>,
6899 <avx512>_fnmsub_<mode>_mask3<round_name>,
6900 <avx512>_fmaddsub_<mode>_mask<round_name>,
6901 <avx512>_fmaddsub_<mode>_mask3<round_name>,
6902 <avx512>_fmsubadd_<mode>_mask<round_name>,
6903 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
6904 <round_nimm_predicate> instead of nonimmediate_operand.
6905 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
6906 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
6907 Use register_operand instead of <round_nimm_predicate> for the
6908 operand that needs to match output.
6909 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
6910 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
6911 Likewise. Formatting fixes.
6912
6913 PR target/89784
6914 * config/i386/i386.c (enum ix86_builtins): Remove
6915 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
6916 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
6917 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
6918 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
6919 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
6920 __builtin_ia32_vfmsubss3_mask3): New builtins.
6921 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
6922 avx512f_vmfmadd_<mode>_mask3<round_name>,
6923 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
6924 *avx512f_vmfmsub_<mode>_mask<round_name>,
6925 avx512f_vmfmsub_<mode>_mask3<round_name>,
6926 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
6927 *avx512f_vmfnmadd_<mode>_mask<round_name>,
6928 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
6929 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
6930 *avx512f_vmfnmsub_<mode>_mask<round_name>,
6931 avx512f_vmfnmsub_<mode>_mask3<round_name>,
6932 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
6933 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
6934 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
6935 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
6936 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
6937 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
6938 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
6939 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
6940 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
6941 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
6942 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
6943 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
6944 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
6945 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
6946 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
6947 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
6948 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
6949 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
6950 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
6951 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
6952 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
6953 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
6954
6955 2019-03-21 Martin Sebor <msebor@redhat.com>
6956
6957 PR tree-optimization/89350
6958 * builtins.c (compute_objsize): Also ignore offsets whose upper
6959 bound is negative.
6960 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
6961 (builtin_memref::builtin_memref): Initialize new member.
6962 Allow EXPR to be null.
6963 (builtin_memref::extend_offset_range): Replace local with a member.
6964 Avoid assuming pointer offsets are unsigned.
6965 (builtin_memref::set_base_and_offset): Determine base object
6966 before computing offset range.
6967 (builtin_access::builtin_access): Handle memset.
6968 (builtin_access::generic_overlap): Replace local with a member.
6969 (builtin_access::strcat_overlap): Same.
6970 (builtin_access::overlap): Same.
6971 (maybe_diag_overlap): Same.
6972 (maybe_diag_access_bounds): Same.
6973 (wrestrict_dom_walker::check_call): Handle memset.
6974 (check_bounds_or_overlap): Same.
6975
6976 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
6977 Jakub Jelinek <jakub@redhat.com>
6978
6979 PR lto/89692
6980 * tree.c (fld_type_variant, fld_incomplete_type_of,
6981 fld_process_array_type): Call fld->pset.add and don't call
6982 add_tree_to_fld_list if it returns true.
6983 (free_lang_data_in_type): Similarly with self-recursive call. Purge
6984 non-marked types from TYPE_NEXT_VARIANT list.
6985 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
6986
6987 2019-03-21 Jakub Jelinek <jakub@redhat.com>
6988
6989 * hash-table.h (hash_table): Add Lazy template parameter defaulted
6990 to false, if true, don't alloc_entries during construction, but defer
6991 it to the first method that needs m_entries allocated.
6992 (hash_table::hash_table, hash_table::~hash_table,
6993 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
6994 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
6995 hash_table::clear_slot, hash_table::traverse_noresize,
6996 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
6997 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
6998 false.
6999 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
7000 NO_INSERT instead of find_with_hash.
7001 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
7002 hash_set::m_table): Add Lazy to template params of hash_table.
7003 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
7004 * attribs.c (test_attribute_exclusions): Likewise.
7005 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
7006 hash_set. Add tests for hash_set with Lazy = true.
7007
7008 2019-03-21 Richard Biener <rguenther@suse.de>
7009
7010 PR tree-optimization/89779
7011 * tree.c (tree_nop_conversion): Consolidate and fix defensive
7012 checks with respect to released SSA names now having error_mark_node
7013 type.
7014 * fold-const.c (operand_equal_p): Likewise.
7015
7016 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
7017
7018 PR target/89775
7019 * config/s390/s390.c (global_not_special_regno_p): Move to make it
7020 available to ...
7021 (s390_optimize_register_info): Use global_not_special_regno_p to
7022 check for global regs.
7023
7024 2019-03-20 Jakub Jelinek <jakub@redhat.com>
7025
7026 PR target/89752
7027 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
7028 update this_alternative nor this_alternative_set.
7029
7030 2019-03-19 Jim Wilson <jimw@sifive.com>
7031
7032 PR target/89411
7033 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
7034 align, size, offset. Use them to handle a BLKmode reference. Update
7035 comment.
7036 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
7037
7038 2019-03-19 Jakub Jelinek <jakub@redhat.com>
7039
7040 PR rtl-optimization/89768
7041 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
7042 instead of GEN_INT.
7043 (unroll_loop_runtime_iterations): Likewise.
7044
7045 2019-03-19 Martin Sebor <msebor@redhat.com>
7046
7047 PR tree-optimization/89644
7048 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
7049 rather than endptr as an indicator of nul-termination.
7050
7051 PR tree-optimization/89644
7052 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
7053 arrays in determining sequence sizes in strncpy and stpncpy.
7054
7055 2019-03-19 Martin Liska <mliska@suse.cz>
7056
7057 PR middle-end/89737
7058 * predict.c (combine_predictions_for_bb): Empty likely_edges and
7059 unlikely_edges if there's an edge that belongs to both these sets.
7060
7061 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
7062
7063 PR target/89746
7064 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
7065 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
7066 go via a stack temporary.
7067
7068 2019-03-19 Jakub Jelinek <jakub@redhat.com>
7069
7070 PR target/89378
7071 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
7072 instead of gen_rtx_SUBREG.
7073 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
7074
7075 2019-03-19 Richard Biener <rguenther@suse.de>
7076
7077 PR debug/88389
7078 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
7079
7080 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
7081
7082 PR lto/87809
7083 PR lto/89335
7084 * tree.c (free_lang_data_in_decl): Do not free context of C++
7085 destrutors.
7086
7087 2019-03-19 Jakub Jelinek <jakub@redhat.com>
7088
7089 PR target/89506
7090 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
7091 subs for the first alternative except when operands[3] is 1.
7092
7093 PR target/89752
7094 * gimplify.c (gimplify_asm_expr): For output argument with
7095 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
7096 diagnose error.
7097
7098 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
7099
7100 PR rtl-optimization/89753
7101 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
7102 explicit unrolling factor even more robust.
7103
7104 2019-03-19 Jakub Jelinek <jakub@redhat.com>
7105
7106 PR target/89726
7107 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
7108 compensation use x2 += 1 instead of x2 -= -1 and when honoring
7109 signed zeros, do another copysign after the compensation.
7110
7111 2019-03-18 Martin Sebor <msebor@redhat.com>
7112
7113 PR tree-optimization/89720
7114 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
7115 more conservatively, the same as anti-range.
7116
7117 2019-03-18 Richard Biener <rguenther@suse.de>
7118
7119 PR middle-end/88945
7120 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
7121 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
7122 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
7123 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
7124
7125 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
7126
7127 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
7128 Extend queue to 1024 entries.
7129 Add "consumed" field.
7130 (gomp_print_output): Remove print_index parameter.
7131 Add final parameter.
7132 Change limit to unsigned.
7133 Use consumed field to implement circular buffer.
7134 Detect interrupted print in final pass.
7135 Flush output at the end.
7136 (run): Update gomp_print_output usage.
7137 (main): Initialize kernargs->output_data.consumed.
7138
7139 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
7140
7141 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
7142 calculation of the minimum number of scalar iterations for
7143 fully-predicated loops.
7144
7145 2019-03-18 Martin Jambor <mjambor@suse.cz>
7146
7147 PR tree-optimization/89546
7148 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
7149 any propagation to its children took place.
7150
7151 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
7152
7153 PR target/89627
7154 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
7155 parameter, and make use of it.
7156 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
7157
7158 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
7159
7160 * config/arc/arc.opt (mcode-density-frame): Get the inital value
7161 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
7162 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
7163 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
7164 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
7165 match what the ops is doing.
7166 (push_multi_fp_blink): Likewise.
7167 * config/arc/arc.c (arc_override_options): Enable enter/leave when
7168 compiling for size and elf target.
7169 (arc_save_callee_enter): Adjust note to match what enter/leave
7170 operation does.
7171
7172 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
7173
7174 * config/arc/arc.md (tst_movb): Fix constraint.
7175
7176 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
7177
7178 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
7179
7180 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
7181
7182 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
7183 * config/arc/arc.c (arc_conditional_register_usage): Remove all
7184 reg_alloc_order references.
7185 (size_alloc_order): Define.
7186 (arc_adjust_reg_alloc_order): New function.
7187 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
7188 order.
7189 (ADJUST_REG_ALLOC_ORDER): Define.
7190 (HONOR_REG_ALLOC_ORDER): Likewise.
7191
7192 2019-03-18 Richard Biener <rguenther@suse.de>
7193
7194 PR target/87561
7195 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
7196 loads and stores a bit more.
7197
7198 2019-03-18 Richard Biener <rguenther@suse.de>
7199
7200 PR target/87561
7201 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
7202 load pessimization to stores as well.
7203
7204 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
7205
7206 PR middle-end/86979
7207 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
7208 successor, use NULL as its av set.
7209
7210 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
7211
7212 PR rtl-optimization/89721
7213 * lra-constraints (invariant_p): Return false if side_effects_p holds.
7214
7215 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
7216
7217 PR target/87532
7218 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
7219 When handling vec_extract, use modular arithmetic to allow
7220 constant selectors greater than vector length.
7221 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
7222 V1TImode vectors to have constant selector values greater than 0.
7223 Use modular arithmetic to compute vector index.
7224 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
7225 index for in-memory vectors. Correct code generation for
7226 in-register vectors.
7227 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
7228 compute index.
7229
7230 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
7231
7232 PR c++/88534
7233 PR c++/88537
7234 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
7235 VAR_DECL args.
7236
7237 2019-03-15 Jakub Jelinek <jakub@redhat.com>
7238
7239 PR c++/89709
7240 * tree.c (inchash::add_expr): Strip any location wrappers.
7241 * fold-const.c (operand_equal_p): Move stripping of location wrapper
7242 after hash verification.
7243
7244 PR debug/89704
7245 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
7246 SIGN_EXTEND and ZERO_EXTEND.
7247
7248 2019-03-14 Jason Merrill <jason@redhat.com>
7249 Jakub Jelinek <jakub@redhat.com>
7250
7251 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
7252 than if is_empty (*slot).
7253 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
7254 existing elt and for elt removal.
7255 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
7256 of already removed elt.
7257
7258 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
7259
7260 PR target/89650
7261 * config/i386/i386.c (remove_partial_avx_dependency): Handle
7262 REG_EH_REGION note.
7263
7264 2019-03-14 Martin Liska <mliska@suse.cz>
7265
7266 PR other/89712
7267 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
7268
7269 2019-03-14 Richard Biener <rguenther@suse.de>
7270
7271 PR target/89711
7272 * config/i386/i386.c (make_resolver_func): Properly set
7273 DECL_CONTEXT on the RESULT_DECL.
7274 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
7275
7276 2019-03-14 Richard Biener <rguenther@suse.de>
7277
7278 * gimple-pretty-print.c: Include cfgloop.h.
7279 (dump_gimple_phi): Adjust.
7280 (dump_gimple_bb_header): Dump loop header for GIMPLE.
7281 (pp_cfg_jump): Adjust.
7282 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
7283 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
7284 (lower_phi_internal_fn): Remove.
7285 (verify_gimple_call): Remove IFN_PHI special-casing.
7286 (dump_function_to_file): Dump IL state.
7287 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
7288 done to deal with PHI nodes being present in non-SSA state.
7289
7290 2019-03-14 Jakub Jelinek <jakub@redhat.com>
7291
7292 PR ipa/89684
7293 * multiple_target.c (create_dispatcher_calls): Change
7294 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
7295 In the node->iterate_referring loop, push *ref rather than ref, call
7296 ref->remove_reference () and always pass 0 to iterate_referring.
7297
7298 PR rtl-optimization/89679
7299 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
7300 would contain a paradoxical SUBREG.
7301
7302 2019-03-14 Richard Biener <rguenther@suse.de>
7303
7304 PR tree-optimization/89710
7305 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
7306 safe_dyn_cast.
7307
7308 2019-03-14 Martin Liska <mliska@suse.cz>
7309
7310 * coverage.c (coverage_begin_function): Stream also
7311 end_column.
7312 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
7313 documentation about function declaration location.
7314 * gcov-dump.c (tag_function): Print whole range
7315 of function declaration.
7316 * gcov.c (struct function_info): Add end_column field.
7317 (function_info::function_info): Initialize it.
7318 (output_json_intermediate_file): Output {start,end}_column
7319 fields.
7320 (read_graph_file): Read end_column.
7321
7322 2019-03-14 Richard Biener <rguenther@suse.de>
7323
7324 PR middle-end/89698
7325 * fold-const.c (operand_equal_p): For INDIRECT_REF check
7326 that the access types are similar.
7327
7328 2019-03-14 Jakub Jelinek <jakub@redhat.com>
7329
7330 PR tree-optimization/89703
7331 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
7332 aren't compatible also with builtin_decl_explicit. Check pure
7333 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
7334 and BUILT_IN_STPNCPY{,_CHK}.
7335
7336 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
7337
7338 PR target/89523
7339 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
7340 addr32 prefix to VSIB address for X32.
7341 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
7342 "%M2" to opcode.
7343 (*avx512pf_gatherpf<mode>df_mask): Likewise.
7344 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
7345 (*avx512pf_scatterpf<mode>df_mask): Likewise.
7346 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
7347 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
7348 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
7349 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
7350 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
7351 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
7352 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
7353 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
7354 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
7355 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
7356 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
7357 (*avx512f_scatterdi<mode>): Likewise.
7358
7359 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
7360
7361 PR target/85860
7362 * lra-constraints.c (inherit_in_ebb): Update
7363 potential_reload_hard_regs along with live_hard_regs.
7364
7365 2019-03-13 Jakub Jelinek <jakub@redhat.com>
7366
7367 PR debug/89498
7368 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
7369 DWARF_OFFSET_SIZE.
7370 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
7371
7372 2019-03-13 Martin Sebor <msebor@redhat.com>
7373
7374 PR tree-optimization/89662
7375 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
7376 has a size.
7377
7378 2019-03-13 Richard Biener <rguenther@suse.de>
7379
7380 PR middle-end/89677
7381 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
7382 throw FP expressions at tree-affine.
7383
7384 2019-03-14 Richard Biener <rguenther@suse.de>
7385
7386 * tree-pretty-print.c (dump_generic_node): For -gimple properly
7387 dump negative integer constants using _Literal (type) -num.
7388
7389 2019-03-13 Jakub Jelinek <jakub@redhat.com>
7390
7391 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
7392 nonlocal_value member.
7393
7394 PR middle-end/88588
7395 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
7396 (ipa_simd_modify_function_body): Handle PHIs.
7397
7398 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
7399
7400 * config/s390/s390.c (s390_option_override_internal): Use more
7401 aggressive inlining parameters.
7402
7403 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
7404
7405 * config/s390/3906.md: New file.
7406 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
7407 (LONGRUNNING_THRESHOLD): Remove.
7408 (MAX_SCHED_MIX_SCORE): Decrease.
7409 (MAX_SCHED_MIX_DISTANCE): Decrease.
7410 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
7411 (struct s390_sched_state): New struct to hold scheduling state.
7412 (S390_SCHED_STATE_NORMAL): Remove.
7413 (S390_SCHED_STATE_CRACKED): Remove.
7414 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
7415 (s390_get_sched_attrmask): Use new attribute.
7416 (s390_get_unit_mask): Use new units.
7417 (s390_is_fpd): New function.
7418 (s390_is_fxd): New function.
7419 (s390_is_longrunning): New function.
7420 (s390_sched_score): Use new functions.
7421 (s390_sched_reorder): Likewise.
7422 (s390_sched_variable_issue): Rework and use new functions.
7423 (s390_sched_init): Use new functions.
7424 * config/s390/s390.h (s390_tune_attr): Add z14.
7425 * config/s390/s390.md: Add z14.
7426
7427 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
7428
7429 * config/s390/2964.md: Update pipeline description.
7430 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
7431 (LONGRUNNING_THRESHOLD): Remove.
7432 (LATENCY_FACTOR): Remove.
7433 (s390_get_unit_mask): Add unit.
7434 (s390_sched_score): Use fxd/fpd.
7435 (s390_sched_variable_issue): Use fxd/fpd.
7436
7437 2019-03-12 Martin Liska <mliska@suse.cz>
7438
7439 * config/i386/i386.c: Reword an error message.
7440
7441 2019-03-12 Martin Jambor <mjambor@suse.cz>
7442
7443 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
7444 terminate with newline.
7445
7446 2019-03-12 Jakub Jelinek <jakub@redhat.com>
7447
7448 PR target/52726
7449 * config/s390/s390.md (tabort): Use %wd instead of
7450 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
7451 letters and periods.
7452 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
7453 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
7454 's with %< and %>.
7455
7456 PR middle-end/89663
7457 * builtins.c (expand_builtin_int_roundingfn,
7458 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
7459 gcc_unreachable if validate_arglist fails.
7460
7461 2019-03-12 Richard Biener <rguenther@suse.de>
7462
7463 PR tree-optimization/89664
7464 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
7465 free the occurance tree after the early out.
7466
7467 2019-03-11 Jakub Jelinek <jakub@redhat.com>
7468
7469 PR middle-end/89655
7470 PR bootstrap/89656
7471 * vr-values.c (vr_values::update_value_range): If
7472 old_vr->varying_p (), don't update it, make new_vr also VARYING
7473 and return false.
7474
7475 2019-03-11 Martin Liska <mliska@suse.cz>
7476
7477 * config/aarch64/aarch64.c (aarch64_override_options_internal):
7478 Fix double string quoting.
7479
7480 2019-03-11 Martin Liska <mliska@suse.cz>
7481
7482 * collect-utils.c (collect_wait): Wrap apostrophes
7483 in gcc internal format with %'.
7484 * collect2.c (main): Likewise.
7485 (scan_prog_file): Likewise.
7486 (scan_libraries): Likewise.
7487 * config/i386/i386.c (ix86_expand_call): Likewise.
7488 (ix86_handle_interrupt_attribute): Likewise.
7489 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
7490 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
7491 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
7492 * lto-wrapper.c (find_crtoffloadtable): Likewise.
7493 * symtab.c (symtab_node::verify_base): Likewise.
7494 * tree-cfg.c (verify_gimple_label): Likewise.
7495 * tree.c (verify_type_variant): Likewise.
7496
7497 2019-03-11 Martin Liska <mliska@suse.cz>
7498
7499 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
7500 in a string format message and fix GNU coding style.
7501 (expand_builtin_set_thread_pointer): Likewise.
7502 * common/config/aarch64/aarch64-common.c
7503 (aarch64_rewrite_selected_cpu): Likewise.
7504 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
7505 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
7506 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
7507 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
7508 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
7509 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
7510 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
7511 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
7512 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
7513 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
7514 Likewise.
7515 * common/config/riscv/riscv-common.c
7516 (riscv_subset_list::parsing_subset_version): Likewise.
7517 (riscv_subset_list::parse_std_ext): Likewise.
7518 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
7519 (riscv_subset_list::parse): Likewise.
7520 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
7521 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
7522 (aarch64_override_options_internal): Likewise.
7523 (aarch64_validate_mcpu): Likewise.
7524 (aarch64_validate_march): Likewise.
7525 (aarch64_validate_mtune): Likewise.
7526 (aarch64_override_options): Likewise.
7527 * config/alpha/alpha.c (alpha_option_override): Likewise.
7528 * config/arc/arc.c (arc_init): Likewise.
7529 (parse_mrgf_banked_regs_option): Likewise.
7530 (arc_override_options): Likewise.
7531 (arc_expand_builtin_aligned): Likewise.
7532 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
7533 (arm_expand_builtin): Likewise.
7534 * config/arm/arm.c (arm_option_check_internal): Likewise.
7535 (arm_configure_build_target): Likewise.
7536 (arm_option_override): Likewise.
7537 (arm_options_perform_arch_sanity_checks): Likewise.
7538 (arm_handle_cmse_nonsecure_entry): Likewise.
7539 (arm_handle_cmse_nonsecure_call): Likewise.
7540 (arm_tls_referenced_p): Likewise.
7541 (thumb1_expand_prologue): Likewise.
7542 * config/avr/avr.c (avr_option_override): Likewise.
7543 * config/bfin/bfin.c (bfin_option_override): Likewise.
7544 * config/c6x/c6x.c (c6x_option_override): Likewise.
7545 * config/cr16/cr16.c (cr16_override_options): Likewise.
7546 * config/cris/cris.c (cris_option_override): Likewise.
7547 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
7548 * config/darwin-c.c (macosx_version_as_macro): Likewise.
7549 * config/darwin.c (darwin_override_options): Likewise.
7550 * config/frv/frv.c (frv_expand_builtin): Likewise.
7551 * config/h8300/h8300.c (h8300_option_override): Likewise.
7552 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
7553 (ix86_option_override_internal): Likewise.
7554 (warn_once_call_ms2sysv_xlogues): Likewise.
7555 (ix86_expand_prologue): Likewise.
7556 (split_stack_prologue_scratch_regno): Likewise.
7557 (ix86_warn_parameter_passing_abi): Likewise.
7558 * config/ia64/ia64.c (fix_range): Likewise.
7559 * config/m68k/m68k.c (m68k_option_override): Likewise.
7560 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
7561 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
7562 (mips_set_compression_mode): Likewise.
7563 * config/mmix/mmix.c (mmix_option_override): Likewise.
7564 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
7565 * config/msp430/msp430.c (msp430_option_override): Likewise.
7566 * config/nds32/nds32.c (nds32_option_override): Likewise.
7567 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
7568 (nios2_option_override): Likewise.
7569 (nios2_expand_custom_builtin): Likewise.
7570 * config/nvptx/mkoffload.c (main): Likewise.
7571 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
7572 * config/pa/pa.c (fix_range): Likewise.
7573 (pa_option_override): Likewise.
7574 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
7575 (riscv_option_override): Likewise.
7576 * config/rl78/rl78.c (rl78_option_override): Likewise.
7577 * config/rs6000/aix61.h: Likewise.
7578 * config/rs6000/aix71.h: Likewise.
7579 * config/rs6000/aix72.h: Likewise.
7580 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
7581 * config/rs6000/freebsd64.h: Likewise.
7582 * config/rs6000/linux64.h: Likewise.
7583 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
7584 (rs6000_expand_zeroop_builtin): Likewise.
7585 (rs6000_expand_mtfsb_builtin): Likewise.
7586 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
7587 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
7588 (rs6000_invalid_builtin): Likewise.
7589 (rs6000_expand_split_stack_prologue): Likewise.
7590 * config/rs6000/rtems.h: Likewise.
7591 * config/rx/rx.c (valid_psw_flag): Likewise.
7592 (rx_expand_builtin): Likewise.
7593 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
7594 * config/s390/s390.c (s390_expand_builtin): Likewise.
7595 (s390_function_profiler): Likewise.
7596 (s390_option_override_internal): Likewise.
7597 (s390_option_override): Likewise.
7598 * config/sh/sh.c (sh_option_override): Likewise.
7599 (sh_builtin_saveregs): Likewise.
7600 (sh_fix_range): Likewise.
7601 * config/sh/vxworks.h: Likewise.
7602 * config/sparc/sparc.c (sparc_option_override): Likewise.
7603 * config/spu/spu.c (spu_option_override): Likewise.
7604 (fix_range): Likewise.
7605 * config/visium/visium.c (visium_option_override): Likewise.
7606 (visium_handle_interrupt_attr): Likewise.
7607 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
7608 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
7609 (dbg_cnt_process_opt): Likewise.
7610 * dwarf2out.c (output_dwarf_version): Likewise.
7611 * except.c (expand_eh_return): Likewise.
7612 * gcc.c (defined): Likewise.
7613 (driver_handle_option): Likewise.
7614 (process_command): Likewise.
7615 (compare_files): Likewise.
7616 (driver::prepare_infiles): Likewise.
7617 (driver::do_spec_on_infiles): Likewise.
7618 (driver::maybe_run_linker): Likewise.
7619 * omp-offload.c (oacc_parse_default_dims): Likewise.
7620 * opts-global.c (handle_common_deferred_options): Likewise.
7621 * opts.c (parse_sanitizer_options): Likewise.
7622 (common_handle_option): Likewise.
7623 (enable_warning_as_error): Likewise.
7624 * passes.c (enable_disable_pass): Likewise.
7625 * plugin.c (parse_plugin_arg_opt): Likewise.
7626 (default_plugin_dir_name): Likewise.
7627 * targhooks.c (default_expand_builtin_saveregs): Likewise.
7628 (default_pch_valid_p): Likewise.
7629 * toplev.c (init_asm_output): Likewise.
7630 (process_options): Likewise.
7631 (toplev::run_self_tests): Likewise.
7632 * tree-cfg.c (verify_gimple_call): Likewise.
7633 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
7634 (tree_inlinable_function_p): Likewise.
7635 * var-tracking.c (vt_find_locations): Likewise.
7636
7637 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
7638
7639 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
7640 only on the else branch.
7641
7642 2019-03-11 Martin Liska <mliska@suse.cz>
7643
7644 * gcov.c (output_intermediate_json_line): Print function
7645 name of each line.
7646 (output_json_intermediate_file): Add new argument.
7647 * doc/gcov.texi: Document the change.
7648
7649 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
7650
7651 PR rtl-optimization/89588
7652 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
7653 explicit unrolling factor more robust.
7654
7655 2019-03-11 Richard Biener <rguenther@suse.de>
7656
7657 PR tree-optimization/89649
7658 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
7659 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
7660 on the prolog and epilog loops.
7661 (vect_loop_versioning): Return copy of loop.
7662 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
7663 on the non-vectorized version of the loop.
7664
7665 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
7666
7667 PR target/68924
7668 * config/i386/sse.md (*vec_extractv2di_0_sse):
7669 Add (=r,x) alternative and corresponding splitter.
7670
7671 2019-03-10 Martin Jambor <mjambor@suse.cz>
7672
7673 PR tree-optimization/85762
7674 PR tree-optimization/87008
7675 PR tree-optimization/85459
7676 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
7677 it points to if there is a type changing MEM_REF. Adjust all callers.
7678 (build_accesses_from_assign): Disable total scalarization if
7679 contains_vce_or_bfcref_p returns true through the new parameter, for
7680 both rhs and lhs.
7681
7682 2019-03-09 Jakub Jelinek <jakub@redhat.com>
7683
7684 PR c/88568
7685 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
7686 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
7687
7688 PR target/79645
7689 * common.opt (fdiagnostics-show-labels,
7690 fdiagnostics-show-line-numbers, fdiagnostics-format=,
7691 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
7692 gas-locview-support, ginline-points, ginternal-reset-location-views):
7693 Terminate description text with a dot.
7694 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
7695 * config/mcore/mcore.opt (m210, m340): Likewise.
7696 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
7697 mnops=): Start description text with a capital letter.
7698 * config/arc/arc.opt (msize-level=): Likewise.
7699 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
7700 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
7701 mnewlib): Likewise.
7702 * config/ft32/ft32.opt (msim): Likewise.
7703 (mft32b, mcompress): Likewise. Terminate description text with a dot.
7704 (mnodiv, mnopm): Terminate description text with a dot.
7705 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
7706 a colon.
7707 * config/i386/i386.opt (prefer_vector_width, instrument_return):
7708 Likewise.
7709 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
7710 text.
7711
7712 PR rtl-optimization/89634
7713 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
7714 are modified in BB_END (e->src) instruction.
7715
7716 2019-03-08 David Malcolm <dmalcolm@redhat.com>
7717
7718 PR target/79926
7719 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
7720 messages more amenable to translation, and improve wording.
7721
7722 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
7723
7724 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
7725 ud- and du-chains between phases.
7726
7727 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
7728
7729 PR debug/89631
7730 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
7731 instead of POLY_INT_CST.
7732
7733 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
7734
7735 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
7736 requirement.
7737
7738 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
7739
7740 PR target/68924
7741 PR target/78782
7742 PR target/87558
7743 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
7744 (_mm_storeu_si64): Ditto.
7745
7746 2019-03-08 Martin Liska <mliska@suse.cz>
7747
7748 PR target/86952
7749 * config/i386/i386.c (ix86_option_override_internal): Disable
7750 jump tables when retpolines are used.
7751
7752 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
7753
7754 PR go/63560
7755 * ipa-split.c (execute_split_functions): Do not split
7756 'noinline' or 'section' function.
7757
7758 2019-03-08 Jakub Jelinek <jakub@redhat.com>
7759
7760 PR target/79846
7761 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
7762 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
7763 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
7764
7765 PR ipa/80000
7766 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
7767 from diagnostics. Formatting fixes.
7768
7769 PR target/85665
7770 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
7771 warn_odr diagnostics.
7772
7773 PR other/80058
7774 * lra-constraints.c (process_alt_operands): Avoid one space before
7775 " at the end of line and another after " on another line in a string
7776 literal.
7777 * attribs.c (handle_dll_attribute): Likewise.
7778 * config/avr/avr-devices.c (avr_texinfo): Likewise.
7779
7780 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
7781 warning_at or inform messages in G_() if there is no ?:.
7782
7783 PR tree-optimization/89550
7784 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
7785 returned true. Formatting fixes.
7786 (expand_builtin_strnlen): Formatting fixes.
7787 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
7788 if warning_at returned true.
7789 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
7790
7791 2019-03-08 Richard Biener <rguenther@suse.de>
7792
7793 PR middle-end/89578
7794 * cfgloop.h (struct loop): Add owned_clique field.
7795 * cfgloopmanip.c (copy_loop_info): Copy it.
7796 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
7797 cliques.
7798 * tree-inline.c (copy_loops): Remap owned_clique.
7799 * lto-streamer-in.c (input_cfg): Stream owned_clique.
7800 * lto-streamer-out.c (output_cfg): Likewise.
7801
7802 2019-03-08 Jakub Jelinek <jakub@redhat.com>
7803
7804 PR target/80190
7805 * config/darwin.c: Include intl.h.
7806 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
7807 composing the message out of two separate parts.
7808
7809 2019-03-07 Jakub Jelinek <jakub@redhat.com>
7810
7811 PR target/80003
7812 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
7813 doesn't start with a capital letter and doesn't end with a dot.
7814 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
7815 with a capital letter.
7816 (ix86_mangle_function_version_assembler_name): Likewise.
7817 (ix86_generate_version_dispatcher_body): Likewise.
7818 (fold_builtin_cpu): Likewise.
7819 (get_builtin_code_for_version): Likewise. Remove extraneous space.
7820 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
7821 translators, wrap full type name in %qs.
7822
7823 PR translation/79999
7824 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
7825 depend clause with source (or sink) modifier.
7826 * omp-expand.c (expand_omp_ordered_sink): Likewise.
7827
7828 PR target/89602
7829 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
7830 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
7831 (avx512f_load<mode>_mask): New define_expand.
7832 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
7833 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
7834 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
7835 __builtin_ia32_movess_mask): New builtins.
7836 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
7837 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
7838 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
7839 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
7840
7841 2019-03-07 Martin Jambor <mjambor@suse.cz>
7842
7843 PR lto/87525
7844 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
7845 for extern inline functions.
7846
7847 2019-03-07 Martin Jambor <mjambor@suse.cz>
7848
7849 PR ipa/88235
7850 * cgraph.h (cgraph_node): New inline method former_thunk_p.
7851 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
7852 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
7853 have multiple callees. At the end check if declarations match as
7854 opposed to cgraph_nodes.
7855
7856 2019-03-07 Martin Liska <mliska@suse.cz>
7857
7858 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
7859 which is equivalent to searching for this in clones chain.
7860 * symtab.c (symtab_node::verify_base): Similarly compare ASM
7861 names with a neighbour and special case first node in a chain.
7862
7863 2019-01-25 Jason Merrill <jason@redhat.com>
7864
7865 PR c++/80916 - spurious "static but not defined" warning.
7866 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
7867 for an internal symbol with DECL_EXTERNAL.
7868
7869 2019-04-07 Richard Biener <rguenther@suse.de>
7870
7871 PR middle-end/89618
7872 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
7873 * tree-inline.c (copy_loops): Simplify.
7874
7875 2019-03-07 Martin Liska <mliska@suse.cz>
7876
7877 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
7878
7879 2019-03-07 Richard Biener <rguenther@suse.de>
7880
7881 PR tree-optimization/89595
7882 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
7883 stmt iterator as reference, take boolean output parameter to
7884 indicate whether the stmt was removed and thus the iterator
7885 already advanced.
7886 (dom_opt_dom_walker::before_dom_children): Re-iterate over
7887 stmts created by folding.
7888
7889 2019-03-07 Jakub Jelinek <jakub@redhat.com>
7890
7891 PR c++/89585
7892 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
7893 at toplevel.
7894
7895 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
7896
7897 PR rtl-optimization/88845
7898 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
7899 LRA.
7900 * lra.c (remove_scratches_1): New function.
7901 (remove_scratches): Use it.
7902 (lra_emit_move): Likewise.
7903
7904 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
7905
7906 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
7907 unaligned_access variable.
7908 * config/arc/arc.c (arc_override_options): Set unaligned access
7909 default on for HS CPUs.
7910 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
7911
7912 2019-03-06 Martin Liska <mliska@suse.cz>
7913
7914 PR gcov-profile/89577
7915 * doc/gcov.texi: Prefer to use --coverage.
7916 * doc/sourcebuild.texi: Likewise.
7917
7918 2019-03-02 Jason Merrill <jason@redhat.com>
7919
7920 PR c++/86485 - -Wmaybe-unused with empty class ?:
7921 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
7922
7923 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7924
7925 PR target/89587
7926 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
7927 if_multiarch.
7928
7929 PR middle-end/89590
7930 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
7931 exactly one argument.
7932
7933 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7934 Richard Sandiford <richard.sandiford@arm.com>
7935
7936 PR tree-optimization/89570
7937 * match.pd (vec_cond into cond_op simplification): Don't use
7938 get_conditional_internal_fn, use as_internal_fn (cond_op).
7939
7940 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
7941
7942 PR target/89222
7943 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
7944 to decide when to split off a non-zero offset from a symbol.
7945 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
7946 in function symbols.
7947
7948 2019-03-05 Richard Biener <rguenther@suse.de>
7949
7950 PR tree-optimization/89594
7951 * tree-if-conv.c (pass_if_conversion::execute): Handle
7952 case where .LOOP_VECTORIZED_FUNCTION was removed.
7953
7954 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7955
7956 PR bootstrap/89560
7957 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
7958 instead alloca it only when needed with the needed size.
7959
7960 PR tree-optimization/89570
7961 * match.pd (vec_cond into cond_op simplification): Guard with
7962 vectorized_internal_fn_supported_p test and #if GIMPLE.
7963
7964 PR tree-optimization/89566
7965 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
7966 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
7967 Punt if get_user_idx_format succeeds, but idx_format argument is
7968 not provided or doesn't have pointer type, or if idx_args is above
7969 number of provided arguments.
7970
7971 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
7972
7973 PR tree-optimization/89437
7974 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
7975
7976 2019-03-04 Richard Biener <rguenther@suse.de>
7977
7978 PR middle-end/89572
7979 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
7980 safe_dyn_cast.
7981
7982 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
7983
7984 PR tree-optimization/89487
7985 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
7986 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
7987 (distribute_loop): Don't do runtime alias check if there is non-
7988 addressable data reference.
7989 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
7990 is a register variable.
7991
7992 2019-03-02 Jakub Jelinek <jakub@redhat.com>
7993
7994 PR target/89506
7995 * config/arm/arm.md (cmpsi2_addneg): Use
7996 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
7997 If operands[2] is 0 or INT_MIN, force use of subs.
7998 (*compare_scc splitter): Use gen_int_mode.
7999 (*negscc): Likewise.
8000 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
8001
8002 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
8003 Monk Chiang <sh.chiang04@gmail.com>
8004
8005 * common/config/riscv/riscv-common.c: Include sstream.
8006 (riscv_subset_list::to_string): New.
8007 (riscv_arch_str): Likewise.
8008 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
8009 * config.in: Regen.
8010 * config/riscv/riscv-protos.h (riscv_arch_str): New.
8011 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
8012 (riscv_emit_attribute): New.
8013 (riscv_file_start): Emit attribute if needed.
8014 (riscv_option_override): Init riscv_emit_attribute_p.
8015 * config/riscv/riscv.opt (mriscv-attribute): New option.
8016 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
8017 * configure: Regen.
8018 * doc/install.texi: Document --with-riscv-attribute.
8019 * doc/invoke.texi: Document -mriscv-attribute.
8020
8021 * common/config/riscv/riscv-common.c:
8022 Include config/riscv/riscv-protos.h.
8023 (INCLUDE_STRING): Defined.
8024 (RISCV_DONT_CARE_VERSION): Defined.
8025 (riscv_subset_t): Declare.
8026 (riscv_subset_t::riscv_subset_t): New.
8027 (riscv_subset_list): Declare.
8028 (riscv_subset_list::riscv_subset_list): New.
8029 (riscv_subset_list::~riscv_subset_list): Likewise.
8030 (riscv_subset_list::parsing_subset_version): Likewise.
8031 (riscv_subset_list::parse_std_ext): Likewise.
8032 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
8033 (riscv_subset_list::add): Likewise.
8034 (riscv_subset_list::lookup): Likewise.
8035 (riscv_subset_list::xlen): Likewise.
8036 (riscv_subset_list::parse): Likewise.
8037 (riscv_supported_std_ext): Likewise.
8038 (current_subset_list): Likewise.
8039 (riscv_parse_arch_string): Using riscv_subset_list::parse to
8040 parse.
8041
8042 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
8043
8044 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
8045 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
8046 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
8047
8048 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
8049
8050 PR rtl-optimization/85899
8051 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
8052 fallthru edges leading to the exit block.
8053
8054 2019-03-01 Tamar Christina <tamar.christina@arm.com>
8055
8056 PR target/89517
8057 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
8058 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
8059
8060 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
8061
8062 PR tree-optimization/89535
8063 * tree-vect-stmts.c (vectorizable_call): Record the vector types
8064 for each operand. Calculate the fallback choice for mask operands
8065 and pass it to vect_get_vec_def_for_operand.
8066
8067 2019-03-01 Richard Biener <rguenther@suse.de>
8068
8069 PR middle-end/89541
8070 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
8071 get virtual operands.
8072 (get_expr_operands): Handle CONST_DECL like other decls.
8073
8074 2019-03-01 Jakub Jelinek <jakub@redhat.com>
8075
8076 PR middle-end/89503
8077 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
8078 on DECL_P and EXPR_P.
8079
8080 2019-03-01 Richard Biener <rguenther@suse.de>
8081
8082 PR middle-end/89497
8083 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
8084 argument, defaulted to zero.
8085 * passes.c (execute_function_todo): Pass down SSA update flags
8086 to cleanup_tree_cfg.
8087 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
8088 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
8089 form if requested.
8090 (cleanup_tree_cfg): Get and pass down SSA update flags.
8091
8092 2019-03-01 Jakub Jelinek <jakub@redhat.com>
8093
8094 PR bootstrap/89539
8095 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
8096 early_lto_debug argument.
8097
8098 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
8099
8100 PR tree-optimization/89536
8101 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
8102 only whether bit #0 of the value is 0 instead of the entire value.
8103
8104 2019-02-28 Marek Polacek <polacek@redhat.com>
8105
8106 PR c++/87068 - missing diagnostic with fallthrough statement.
8107 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
8108 at the end of a seq, save its location to walk_stmt_info.
8109 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
8110 a switch.
8111
8112 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
8113
8114 PR lto/88585
8115 * tree.c (find_atomic_core_type): Move ahead in file.
8116 (check_base_type): Correctly compare alignments of atomic types.
8117
8118 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
8119
8120 PR target/89455
8121 * config/i386/i386.c (get_builtin_code_for_version): Identify
8122 Westmere from PCLMUL, instead of AES.
8123
8124 2019-02-28 Jakub Jelinek <jakub@redhat.com>
8125
8126 PR target/89434
8127 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
8128 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
8129 -UINTVAL (...).
8130
8131 2019-02-28 Tamar Christina <tamar.christina@arm.com>
8132
8133 PR target/88530
8134 * config/aarch64/aarch64-option-extensions.def: Document it.
8135 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
8136 if empty hwcaps.
8137
8138 2019-02-28 Jakub Jelinek <jakub@redhat.com>
8139
8140 PR c/89520
8141 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
8142 builtins if they don't have a single scalar floating point argument.
8143 Formatting fixes.
8144
8145 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
8146
8147 PR rtl-optimization/89490
8148 * varasm.c (get_block_for_section): Bail out for mergeable sections.
8149 (default_use_anchors_for_symbol_p, output_object_block): Assert the
8150 block section is not mergeable.
8151
8152 2019-02-27 Jakub Jelinek <jakub@redhat.com>
8153
8154 PR target/70341
8155 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
8156 old define_insn to ...
8157 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
8158 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
8159 Rename old define_insn to ...
8160 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
8161 (thumb2_casesi_internal_pic): New define_expand. Rename old
8162 define_insn to ...
8163 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
8164 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
8165 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
8166
8167 2019-02-27 Richard Biener <rguenther@suse.de>
8168
8169 PR debug/88878
8170 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
8171
8172 2019-02-27 Richard Biener <rguenther@suse.de>
8173
8174 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
8175 building.
8176
8177 2019-02-27 Richard Biener <rguenther@suse.de>
8178
8179 PR debug/88878
8180 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
8181 parameter, prefix section name with .gnu.debuglto_ if true.
8182 (dwarf2out_finish): Pass false to output_comdat_type_unit.
8183 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
8184
8185 2019-02-27 Richard Biener <rguenther@suse.de>
8186
8187 PR debug/89514
8188 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
8189 rather than on use_debug_types, doing what output_die does.
8190 (value_format): Likewise.
8191
8192 2019-02-27 Martin Jambor <mjambor@suse.cz>
8193 Martin Sebor <msebor@redhat.com>
8194
8195 * doc/invoke.texi (Warning Options): Reword description of
8196 -Wno-absolute-value.
8197
8198 2019-02-27 Jakub Jelinek <jakub@redhat.com>
8199
8200 PR tree-optimization/89280
8201 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
8202 builtin_setjmp_setup_bb): New functions.
8203 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
8204 When visiting __builtin_setjmp_setup block, queue in special
8205 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
8206 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
8207 from visited after the loop if they don't have any visited successor
8208 blocks.
8209
8210 2018-02-26 Steve Ellcey <sellcey@marvell.com>
8211
8212 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
8213 New function.
8214 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
8215
8216 2019-02-26 Jakub Jelinek <jakub@redhat.com>
8217
8218 PR c++/89507
8219 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
8220 with types other than sizetype/ssizetype.
8221
8222 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
8223
8224 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
8225 (enum sparc_processor_type): ...this.
8226 (enum sparc_code_model_type): New enumeration type.
8227 (enum sparc_memory_model_type): Tweak comments.
8228 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
8229 (mtune): Likewise.
8230 (mcmodel): Use sparc_code_model enumeration and variable.
8231 (sparc_code_model): New enumeration.
8232 (mdebug): Add Undocumented marker.
8233 * config/sparc/sparc.h (enum cmodel): Delete.
8234 (sparc_cmodel): Likewise.
8235 (TARGET_CM_MEDLOW): Adjust to above renaming.
8236 (TARGET_CM_MEDMID): Likewise.
8237 (TARGET_CM_MEDANY): Likewise.
8238 (TARGET_CM_EMBMEDANY): Likewise.
8239 * config/sparc/sparc.c (sparc_cmodel): Delete.
8240 (sparc_option_override): Remove string/value mapping support for the
8241 code model. Move code and memory model support to after the handling
8242 of target flags. Do private machine setup last.
8243 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
8244 (sparc_legitimize_reload_address): Likewise.
8245 (sparc_output_mi_thunk): Likewise.
8246 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
8247
8248 2019-02-26 Jakub Jelinek <jakub@redhat.com>
8249
8250 PR tree-optimization/89500
8251 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
8252 (handle_builtin_strlen): Remove noncst_bound variable. Always
8253 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
8254 cst if the first cst bytes starting at x are known to be non-zero,
8255 even if the string is not zero terminated. Don't try to modify
8256 *si for strnlen. Update strlen_to_stridx only for strlen or if
8257 we can prove strnlen returns the same value as strlen would.
8258
8259 2019-02-26 Martin Liska <mliska@suse.cz>
8260
8261 * alloc-pool.h (struct pool_usage): Remove extra
8262 print_dash_line.
8263 * bitmap.h (struct bitmap_usage): Likewise.
8264 * ggc-common.c (struct ggc_usage): Likewise.
8265 * mem-stats.h (struct mem_usage): Likewise.
8266 (mem_alloc_description::dump): Print dash lines
8267 here and repeat header at the end of a table report.
8268 It's then more readable.
8269 * tree-phinodes.c (phinodes_print_statistics): Make
8270 horizontal alignment.
8271 * tree-ssanames.c (ssanames_print_statistics): Likewise.
8272 * vec.c (struct vec_usage): Remove extra print_dash_line.
8273 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
8274
8275 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
8276
8277 * doc/extend.texi (__builtin_object_size):
8278 Use @pxref instead of @xref inside parenthesis.
8279 (__builtin_has_attribute): Add missing comma after @xref.
8280 (__builtin_object_size): Ditto.
8281 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
8282 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
8283 in the list.
8284
8285 2019-02-26 Jeff Law <law@redhat.com>
8286
8287 PR rtl-optimization/87761
8288 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
8289 detect obviously dead insns and delete them.
8290
8291 2019-02-26 Richard Biener <rguenther@suse.de>
8292
8293 PR tree-optimization/89505
8294 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
8295 to handle restrict pointed-to vars with multiple subvars
8296 correctly.
8297
8298 2019-02-26 Richard Biener <rguenther@suse.de>
8299
8300 PR tree-optimization/89489
8301 * tree-parloops.c (create_loop_fn): Copy over last_clique.
8302
8303 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
8304
8305 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
8306 and move around comment.
8307 <BIT_AND_EXPR>: Likewise.
8308 <BIT_NOT_EXPR>: Add specific handling for boolean types.
8309
8310 2019-02-26 Jakub Jelinek <jakub@redhat.com>
8311
8312 PR target/89474
8313 * config/i386/i386.c (remove_partial_avx_dependency): Call
8314 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
8315 after changing possibly many instructions to use that pseudo. Fix up
8316 insertion of v4sf_const0 setter at the start of bb.
8317
8318 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
8319
8320 PR c/80409
8321 * doc/extend.texi (Variadic Pointer Args): New section.
8322
8323 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
8324 Martin Sebor <msebor@gmail.com>
8325
8326 * common.opt (Wattribute-alias): Likewise.
8327 * doc/invoke.texi (Option Summary): List general form of
8328 -Wattribute-alias=. List positive form of -Wmissing-attributes.
8329 (-Wmissing-attributes): Invert entry, rewrite and correct default.
8330 Add cross-references.
8331 (-Wattribute-alias): Rewrite and correct default. Mention
8332 considered attributes (same as for -Wmissing-attributes).
8333
8334 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
8335
8336 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
8337 (_mm_cvtpd_ps): Likewise.
8338 (_mm_cvttpd_epi32): Likewise.
8339
8340 PR target/89338
8341 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
8342 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
8343
8344 PR target/89339
8345 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
8346
8347 2019-02-25 Tamar Christina <tamar.christina@arm.com>
8348
8349 PR target/88530
8350 * common/config/aarch64/aarch64-common.c
8351 (struct aarch64_option_extension): Add is_synthetic.
8352 (all_extensions): Use it.
8353 (TARGET_OPTION_INIT_STRUCT): Define hook.
8354 (struct gcc_targetm_common): Moved to end.
8355 (all_extensions_by_on): New.
8356 (opt_ext_cmp, typedef opt_ext): New.
8357 (aarch64_option_init_struct): New.
8358 (aarch64_contains_opt): New.
8359 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
8360 * config/aarch64/aarch64-option-extensions.def
8361 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
8362 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
8363 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
8364 Set is_synthetic to false.
8365 (crypto): Set is_synthetic to true.
8366 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
8367 SYNTHETIC.
8368
8369 2019-02-25 Tamar Christina <tamar.christina@arm.com>
8370
8371 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
8372 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
8373 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
8374 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
8375 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
8376 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
8377 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
8378 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
8379 Rename ...
8380 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
8381 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
8382 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
8383 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
8384 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
8385 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
8386 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
8387 vfmlsl_laneq_high_f16): ... To this.
8388 * config/arm/neon.md: Update comments.
8389
8390 2019-02-25 Tamar Christina <tamar.christina@arm.com>
8391
8392 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
8393 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
8394 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
8395 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
8396 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
8397 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
8398 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
8399 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
8400 Rename ...
8401 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
8402 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
8403 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
8404 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
8405 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
8406 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
8407 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
8408 vfmlslq_laneq_high_f16): ... To this.
8409
8410 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
8411
8412 PR rtl-optimization/86096
8413 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
8414 comparing mw_order values.
8415
8416 2019-02-25 Jakub Jelinek <jakub@redhat.com>
8417
8418 PR target/89434
8419 * config/arm/arm.md (*subsi3_carryin_const): Use
8420 arm_neg_immediate_operand predicate instead of
8421 arm_not_immediate_operand, "L" constraint instead of "K" and
8422 print it using %n2 instead of %B2.
8423 (*subsi3_carryin_const0): New define_insn.
8424 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
8425 instead of arm_not_operand and "I" constraint instead of "K" and
8426 print it using %n3 instead of %B2. Instead of using match_dup 2 add
8427 another match_operand and in the condition check that it is negation
8428 of operands[2].
8429 (*subsi3_carryin_compare_const0): New define_ins.
8430 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
8431 *subsi3_carryin_const.
8432 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
8433 split into *subsi3_carryin_compare_const0 if the highpart is zero.
8434
8435 PR target/89438
8436 * config/arm.vfp.md (*negdf2_vfp): Use
8437 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
8438 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
8439
8440 2019-02-24 Jakub Jelinek <jakub@redhat.com>
8441
8442 PR rtl-optimization/89445
8443 * simplify-rtx.c (simplify_ternary_operation): Don't use
8444 simplify_merge_mask on operands that may trap.
8445 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
8446 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
8447 second operand is CONST_VECTOR, check if any element could be zero.
8448 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
8449 their operands can trap.
8450
8451 2019-02-23 Martin Sebor <msebor@redhat.com>
8452
8453 * gimple-ssa-sprintf.c (target_strtol): Rename...
8454 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
8455 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
8456 check for range error.
8457
8458 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
8459
8460 PR driver/69471
8461 * opts-common.c (prune_options): Also prune joined switches
8462 with Negative and RejectNegative.
8463 * config/i386/i386.opt (march=): Add Negative(march=).
8464 (mtune=): Add Negative(mtune=).
8465 * doc/options.texi: Document Negative used together with Joined
8466 and RejectNegative.
8467
8468 2019-02-22 Martin Sebor <msebor@redhat.com>
8469
8470 * doc/extend.texi (Other Builtins): Add
8471 __builtin_is_constant_evaluated.
8472
8473 2019-02-22 Richard Biener <rguenther@suse.de>
8474
8475 PR tree-optimization/87609
8476 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
8477
8478 2019-02-22 Jeff Law <law@redhat.com>
8479
8480 PR rtl-optimization/87761
8481 * config/mips/mips.md: Add new combiner pattern to recognize
8482 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
8483
8484 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
8485
8486 PR target/89324
8487 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
8488 destination register in peepholes generating patterns for ADDS/SUBS.
8489 (add<mode>3_compare0,
8490 *addsi3_compare0_uxtw, add<mode>3_compareC,
8491 add<mode>3_compareV_imm, add<mode>3_compareV,
8492 *adds_<optab><ALLX:mode>_<GPI:mode>,
8493 *subs_<optab><ALLX:mode>_<GPI:mode>,
8494 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
8495 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
8496 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
8497 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
8498 sub<mode>3_compare1): Allow stack pointer for source register.
8499 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
8500
8501 2019-02-22 Martin Sebor <msebor@redhat.com>
8502
8503 PR tree-optimization/88993
8504 PR tree-optimization/88853
8505 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
8506 New helper.
8507 (sprintf_dom_walker::call_info::is_string_func): New helper.
8508 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
8509 for formatted string functions.
8510 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
8511
8512 2019-02-22 Martin Sebor <msebor@redhat.com>
8513
8514 PR c/89425
8515 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
8516 unreachable subexpressions.
8517
8518 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
8519 Hongtao Liu <hongtao.liu@intel.com>
8520 Sunil K Pandey <sunil.k.pandey@intel.com>
8521
8522 PR target/87007
8523 * config/i386/i386-passes.def: Add
8524 pass_remove_partial_avx_dependency.
8525 * config/i386/i386-protos.h
8526 (make_pass_remove_partial_avx_dependency): New.
8527 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
8528 New function.
8529 (pass_data_remove_partial_avx_dependency): New.
8530 (pass_remove_partial_avx_dependency): Likewise.
8531 (make_pass_remove_partial_avx_dependency): Likewise.
8532 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
8533 (*extendsfdf2): Add avx_partial_xmm_update.
8534 (truncdfsf2): Likewise.
8535 (*float<SWI48:mode><MODEF:mode>2): Likewise.
8536 (SF/DF conversion splitters): Disabled for TARGET_AVX.
8537
8538 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
8539
8540 PR middle-end/85598
8541 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
8542 analysis for pass.
8543
8544 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
8545
8546 PR target/89444
8547 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
8548 (PTA_SKYLAKE): Add PTA_AES.
8549 (PTA_GOLDMONT): Likewise.
8550
8551 2019-02-22 Sudakshina Das <sudi.das@arm.com>
8552
8553 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
8554 instruction if enabled.
8555 (aarch64_override_options): Remove reference to return address key.
8556
8557 2019-02-22 Richard Biener <rguenther@suse.de>
8558
8559 PR tree-optimization/89440
8560 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
8561 not necessary assert.
8562
8563 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
8564
8565 PR fortran/72741
8566 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
8567 (oacc_replace_fn_attrib_attr): ... this new function.
8568 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
8569 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
8570
8571 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8572
8573 * config/arm/arm-cpus.in (ares): Rename to...
8574 (neoverse-n1): ... This. Add ares as alias.
8575 * config/arm/arm-tables.opt: Regenerate.
8576 * config/arm/arm-tune.md: Likewise.
8577 * doc/invoke.txt (ARM Options): Document neoverse-n1.
8578
8579 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8580
8581 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
8582 * config/aarch64/aarch64-tune.md: Regenerate.
8583 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
8584
8585 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8586
8587 * config/aarch64/aarch64.c (ares_tunings): Rename to...
8588 (neoversen1_tunings): ... This.
8589 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
8590 (neoverse-n1): New CPU.
8591 * config/aarch64/aarch64-tune.md: Regenerate.
8592 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
8593
8594 2019-02-22 Richard Biener <rguenther@suse.de>
8595
8596 PR middle-end/87609
8597 * cfghooks.h (dependence_hash): New typedef.
8598 (struct copy_bb_data): New type.
8599 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
8600 (duplicate_block): Likewise.
8601 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
8602 (copy_bbs): Create and pass down copy_bb_data.
8603 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
8604 (rtl_duplicate_bb): Likewise.
8605 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
8606 remap dependence info.
8607
8608 2019-02-22 Richard Biener <rguenther@suse.de>
8609
8610 PR tree-optimization/87609
8611 * tree-core.h (tree_base): Document special clique values.
8612 * tree-inline.c (remap_dependence_clique): Do not use the
8613 special clique value of one.
8614 (maybe_set_dependence_info): Use clique one.
8615 (clear_dependence_clique): New callback.
8616 (compute_dependence_clique): Clear clique one from all refs
8617 before assigning it (again).
8618
8619 2019-02-21 Martin Sebor <msebor@redhat.com>
8620
8621 * doc/extend.texi (__clear_cache): Correct signature.
8622
8623 2019-02-21 Ian Lance Taylor <iant@golang.org>
8624
8625 PR go/89170
8626 * varasm.c (decode_addr_const): Call lookup_constant_def rather
8627 than output_constant_def.
8628 (add_constant_to_table): New static function.
8629 (output_constant_def): Call add_constant_to_table.
8630 (tree_output_constant_def): Likewise.
8631
8632 2019-02-21 Jakub Jelinek <jakub@redhat.com>
8633
8634 PR c++/89285
8635 * builtins.c (fold_builtin_arith_overflow): If first two args are
8636 INTEGER_CSTs, set intres and ovfres to constants rather than calls
8637 to ifn.
8638
8639 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
8640
8641 PR target/87412
8642 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
8643 error for -mindirect-branch/-mfunction-return with incompatible
8644 -fcf-protection.
8645
8646 2019-02-21 Jakub Jelinek <jakub@redhat.com>
8647
8648 PR bootstrap/88714
8649 * constraints.md (q): Remove.
8650 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
8651 instead of q.
8652
8653 2019-02-21 Martin Jambor <mjambor@suse.cz>
8654
8655 PR hsa/89302
8656 * omp-general.c (omp_extract_for_data): Removed a duplicate call
8657 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
8658 (omp_adjust_for_condition): ...here. Added necessary parameters.
8659 * omp-general.h (omp_adjust_for_condition): Updated declaration.
8660 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
8661 proper values to new parameters of omp_adjust_for_condition.
8662
8663 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8664
8665 PR middle-end/89412
8666 * expr.c (expand_assignment): If result is a MEM, use change_address
8667 instead of simplify_gen_subreg.
8668
8669 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8670 David Malcolm <dmalcolm@redhat.com>
8671
8672 PR middle-end/89091
8673 * fold-const.c (decode_field_reference): Return NULL_TREE if
8674 lang_hooks.types.type_for_size returns NULL. Check it before
8675 overwriting *exp_. Use return NULL_TREE instead of return 0.
8676
8677 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8678
8679 PR middle-end/88074
8680 PR middle-end/89415
8681 * toplev.c (do_compile): Double the emin/emax exponents to workaround
8682 buggy mpc_norm.
8683
8684 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
8685
8686 PR target/89397
8687 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
8688 TARGET_SSE in addition to TARGET_SSE_MATH.
8689
8690 (ix86_excess_precision): Ditto.
8691 (ix86_float_exceptions_rounding_supported_p): Ditto.
8692 (use_rsqrt_p): Ditto.
8693 * config/i386/sse.md (rsqrt<mode>2): Ditto.
8694
8695 2019-02-20 David Malcolm <dmalcolm@redhat.com>
8696
8697 PR c/89410
8698 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
8699 linenum_arith_t when determining if two adjacent line spans are
8700 close enough to merge.
8701 (diagnostic_show_locus): Use linenum_arith_t when iterating over
8702 lines within each line_span.
8703
8704 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
8705
8706 PR target/86487
8707 * lra-constraints.c(uses_hard_regs_p): Fix handling of
8708 paradoxical SUBREGS.
8709
8710 2019-02-20 Li Jia He <helijia@linux.ibm.com>
8711
8712 PR target/88100
8713 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
8714 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
8715 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
8716 range checking it.
8717
8718 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
8719
8720 * config/gcn/gcn.c (print_operand): Fix typo.
8721
8722 2019-02-19 Richard Biener <rguenther@suse.de>
8723
8724 PR middle-end/88074
8725 * toplev.c (do_compile): Initialize mpfr's exponent range
8726 based on available float modes.
8727
8728 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
8729
8730 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
8731 as long as the epilogue isn't completed.
8732
8733 2019-02-18 Martin Sebor <msebor@redhat.com>
8734
8735 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
8736 __has_cpp_attribute, and __has_include.
8737
8738 2019-02-18 Martin Sebor <msebor@redhat.com>
8739
8740 * doc/invoke.texi (-Wreturn-type): Correct and expand.
8741
8742 2019-02-18 Martin Sebor <msebor@redhat.com>
8743
8744 PR middle-end/89294
8745 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
8746 expression.
8747 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
8748
8749 2019-02-18 Richard Biener <rguenther@suse.de>
8750
8751 PR tree-optimization/89296
8752 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
8753 of no-warning flag to cases that might emit the bogus warning.
8754
8755 2019-02-18 Jakub Jelinek <jakub@redhat.com>
8756
8757 PR bootstrap/88714
8758 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
8759 "q" constraint.
8760 * config/arm/vfp.md (*movdi_vfp): Likewise.
8761 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
8762 "q" constraint for operands[0].
8763
8764 PR target/89369
8765 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
8766 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
8767 pattern in a temporary buffer.
8768 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
8769 than 64-operands[2].
8770
8771 PR target/89361
8772 * config/s390/s390.c (s390_indirect_branch_attrvalue,
8773 s390_indirect_branch_settings): Define unconditionally.
8774 (s390_set_current_function): Likewise, but guard the whole body except
8775 the s390_indirect_branch_settings call with
8776 #if S390_USE_TARGET_ATTRIBUTE.
8777 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
8778
8779 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
8780 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
8781 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
8782 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
8783 HOST_WIDE_INT_1U instead of 1ULL.
8784 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
8785 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
8786 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
8787 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
8788 instead of 1UL.
8789 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
8790 instead of 1ul.
8791
8792 2019-02-18 Martin Jambor <mjambor@suse.cz>
8793
8794 PR tree-optimization/89209
8795 * tree-sra.c (create_access_replacement): New optional parameter
8796 reg_tree. Use it as a type if non-NULL and access type is not of
8797 a register type.
8798 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
8799 to create_access_replacement.
8800 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
8801 Check lacc is non-NULL before attempting to re-create it on the RHS.
8802
8803 2019-02-18 Martin Liska <mliska@suse.cz>
8804
8805 PR ipa/89306
8806 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
8807 by default.
8808 (symbol_table::free_edge): Recycle m_summary_id.
8809 * cgraph.h (get_summary_id): New.
8810 (symbol_table::release_symbol): Set m_summary_id to -1
8811 by default.
8812 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
8813 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
8814 function_summary to fast_function_summary.
8815 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
8816 * ipa-pure-const.c (class funct_state_summary_t):
8817 Switch from function_summary to fast_function_summary.
8818 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
8819 (class ipa_ref_opt_summary_t): Switch from function_summary
8820 to fast_function_summary.
8821 * symbol-summary.h (class function_summary_base): New class
8822 that is created from base of former function_summary.
8823 (function_summary_base::unregister_hooks): New.
8824 (class function_summary): Inherit from function_summary_base.
8825 (class call_summary_base): New class
8826 that is created from base of former call_summary.
8827 (class call_summary): Inherit from call_summary_base.
8828 (struct is_same): New.
8829 (class fast_function_summary): New summary class.
8830 (class fast_call_summary): New summary class.
8831 * vec.h (vec_safe_grow_cleared): New function.
8832
8833 2019-02-18 Martin Liska <mliska@suse.cz>
8834
8835 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
8836 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
8837 * doc/tm.texi: Document new target hook.
8838 * doc/tm.texi.in: Likewise.
8839 * target.def: Add new target macro.
8840 * gcc.c (find_fortran_preinclude_file): Do not search multilib
8841 suffixes.
8842
8843 2019-02-17 Alan Modra <amodra@gmail.com>
8844
8845 PR target/89271
8846 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
8847 output reg on add insn.
8848 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
8849
8850 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8851
8852 PR target/89372
8853 * config/i386/sse.md (ssedoublemode): Remove V4HI.
8854 (PMULHRSW): Likewise.
8855 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
8856 TARGET_AVX2.
8857 (ssse3_pmulhrswv4hi3): New expander.
8858
8859 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8860
8861 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
8862 MMX. Add isa attribute.
8863
8864 2019-02-16 Jakub Jelinek <jakub@redhat.com>
8865
8866 PR rtl-optimization/66152
8867 * builtins.h (c_readstr): Declare.
8868 * builtins.c (c_readstr): Remove forward declaration. Add
8869 null_terminated_p argument, if false, read all bytes from the
8870 string instead of stopping after '\0'.
8871 * expr.c (string_cst_read_str): New function.
8872 (store_expr): Use string_cst_read_str instead of
8873 builtin_strncpy_read_str. Try to store by pieces the whole
8874 exp_len first, and only if that fails, split it up into
8875 store by pieces followed by clear_storage. Formatting fix.
8876
8877 * config/i386/i386.md (*movqi_internal): Remove static from
8878 buf variable. Use output_asm_insn (buf, operands); return "";
8879 instead of return buf;.
8880 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
8881 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
8882 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
8883
8884 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8885
8886 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
8887 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
8888 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
8889 (CC1_SPEC): Likewise.
8890 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
8891
8892 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8893
8894 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
8895 the base address on 64-bit strict-alignment platforms.
8896
8897 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
8898
8899 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
8900
8901 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8902
8903 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
8904
8905 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
8906
8907 PR rtl-optimization/88308
8908 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
8909 on copied instruction.
8910
8911 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8912
8913 * final.c (insn_current_reference_address): Replace test on JUMP_P
8914 with test on jump_to_label_p.
8915 * config/visium/visium-passes.def: New file.
8916 * config/visium/t-visium (PASSES_EXTRA): Define.
8917 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
8918 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
8919 (TRAMPOLINE_ALIGNMENT): Define.
8920 * config/visium/visium.c (visium_option_override): Do not register
8921 the machine-specific reorg pass here.
8922 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
8923 for the GR6.
8924 (output_branch): Adjust threshold for long branch instruction.
8925 * config/visium/visium.md (cpu): Move around.
8926 (length): Adjust for the GR6.
8927
8928 2019-02-15 Richard Biener <rguenther@suse.de>
8929 Jakub Jelinek <jakub@redhat.com>
8930
8931 PR tree-optimization/89278
8932 * tree-loop-distribution.c: Include tree-eh.h.
8933 (generate_memset_builtin, generate_memcpy_builtin): Call
8934 rewrite_to_non_trapping_overflow on builtin->size before passing it
8935 to force_gimple_operand_gsi.
8936
8937 2019-02-15 Jakub Jelinek <jakub@redhat.com>
8938
8939 PR other/89342
8940 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
8941 optimize_debug.
8942 * opth-gen.awk: Likewise.
8943
8944 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8945
8946 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
8947 Enable MMX, SSE and SSE2 by default.
8948 * config/i386/i386.c (ix86_option_override_internal): Do not
8949 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
8950
8951 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8952
8953 PR rtl-optimization/89354
8954 * combine.c (make_extraction): Punt if extraction_mode is narrower
8955 than len bits.
8956
8957 2019-02-14 Maya Rashish <coypu@sdf.org>
8958
8959 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
8960 * config/netbsd-d.c: New file.
8961 * config/t-netbsd: Add netbsd-d.o
8962
8963 2018-02-14 Steve Ellcey <sellcey@marvell.com>
8964
8965 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
8966 affects_type_identity to true for aarch64_vector_pcs.
8967 (aarch64_comp_type_attributes): New function.
8968 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
8969
8970 2019-02-14 Tamar Christina <tamar.christina@arm.com>
8971
8972 PR target/88850
8973 * config/arm/iterators.md (ANY64): Add V4HF.
8974
8975 2019-02-14 Martin Liska <mliska@suse.cz>
8976
8977 PR rtl-optimization/89242
8978 * dce.c (delete_unmarked_insns): Call free_dominance_info we
8979 process a transformation.
8980
8981 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8982
8983 PR tree-optimization/89314
8984 * fold-const.c (fold_binary_loc): Cast strlen argument to
8985 const char * before dereferencing it. Formatting fixes.
8986
8987 PR middle-end/89284
8988 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
8989
8990 2019-02-13 Ian Lance Taylor <iant@golang.org>
8991
8992 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
8993 and set current index for other optimizations.
8994
8995 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
8996
8997 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
8998 nonimmediate_operand as operand 2 predicate.
8999 (vec_set<VF2_512_256:mode>_0): Ditto.
9000 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
9001 (*vec_concatv2si): Remove alternative 2.
9002 (*vec_concatv4si_0): Use vm constraint for alternative 0.
9003 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
9004 (vec_concatv2di): Split alternatives 4,5,6 to ...
9005 (*vec_concatv2di_0) ... new pattern.
9006
9007 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
9008
9009 PR target/89190
9010 * config/arm/arm.c (ldm_stm_operation_p) Set
9011 addr_reg_in_reglist correctly for first register.
9012 (load_multiple_sequence): Remove dead base check.
9013 (gen_ldm_seq): Correctly set write_back for Thumb-1.
9014
9015 2019-02-13 Tamar Christina <tamar.christina@arm.com>
9016
9017 PR target/88847
9018 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
9019 Expose as @aarch64_pred_mov.
9020 * config/aarch64/aarch64.c (aarch64_classify_address):
9021 Use expand_insn which legitimizes operands.
9022
9023 2019-02-13 Martin Liska <mliska@suse.cz>
9024
9025 * builtins.h (expand_builtin_with_bounds): Remove declaration.
9026 * calls.c (struct arg_data): Remove special_slot, pointer_arg
9027 and pointer_offset fields.
9028 (initialize_argument_information): Remove usage of dead
9029 fields.
9030 * cgraph.h (struct cgraph_thunk_info): Remove
9031 add_pointer_bounds_args.
9032 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
9033 fields.
9034 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
9035 fields.
9036 * config/i386/i386.c (ix86_function_arg_advance): Remove
9037 unrelated comment.
9038 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
9039 (def_builtin): Remove usage of dead
9040 fields.
9041 (ix86_add_new_builtins): Likewise.
9042 * ipa-fnsummary.c (compute_fn_summary): Likewise.
9043 * ipa-icf.c (sem_function::equals_wpa): Likewise.
9044 (sem_function::init): Likewise.
9045 (sem_variable::merge): Likewise.
9046 * ipa-visibility.c (function_and_variable_visibility): Likewise.
9047 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
9048 * lto-cgraph.c (lto_output_node): Likewise.
9049 (lto_output_varpool_node): Likewise.
9050 (input_node): Likewise.
9051 (input_varpool_node): Likewise.
9052 * lto-streamer-out.c (lto_output): Likewise.
9053 * tree-inline.c (expand_call_inline): Remove usage of
9054 assign_stmts.
9055 * tree-inline.h (struct copy_body_data): Likewise.
9056 * varpool.c (varpool_node::dump): Likewise.
9057
9058 2019-02-13 Jakub Jelinek <jakub@redhat.com>
9059
9060 PR middle-end/89303
9061 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
9062 into pt->vars_contains_escaped_heap instead of setting
9063 pt->vars_contains_escaped_heap to it.
9064
9065 PR middle-end/89281
9066 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
9067 INTVAL (size), compare it to GET_MODE_MASK instead of
9068 1 << GET_MODE_BITSIZE.
9069
9070 PR target/89290
9071 * config/i386/predicates.md (x86_64_immediate_operand): Allow
9072 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
9073 -mcmodel=large.
9074
9075 2019-02-13 Martin Liska <mliska@suse.cz>
9076
9077 PR lto/88858
9078 * cfgrtl.c (remove_barriers_from_footer): New function.
9079 (try_redirect_by_replacing_jump): Use it.
9080 (cfg_layout_redirect_edge_and_branch): Likewise.
9081
9082 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
9083
9084 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
9085 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
9086 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
9087 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
9088 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
9089 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
9090 New BU_CRYPTO_2.
9091 * config/rs6000/rs6000.c (builtin_function_type)
9092 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
9093 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
9094 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
9095 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
9096 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
9097
9098 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
9099
9100 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
9101 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
9102
9103 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
9104
9105 PR target/89229
9106 * config/i386/i386.md (*movoi_internal_avx): Revert revision
9107 268678 and revision 268657.
9108 (*movti_internal): Likewise.
9109
9110 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
9111
9112 PR target/89233
9113 * config/s390/s390.c (s390_decompose_address): Update comment.
9114 (s390_check_qrst_address): Reject invalid address forms after
9115 LRA.
9116
9117 2019-02-12 Martin Liska <mliska@suse.cz>
9118
9119 PR lto/88876
9120 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
9121 we need default values of funct_state for a function that
9122 is not optimized.
9123
9124 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
9125
9126 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
9127 the object to pick the size of stores on strict-alignment platforms.
9128
9129 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
9130 (*movdi_insn_sp32): Likewise.
9131 (*movdi_insn_sp64): Likewise.
9132
9133 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
9134
9135 PR lto/88677
9136 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
9137 types that needs constructiong.
9138 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
9139
9140 2019-02-12 Richard Biener <rguenther@suse.de>
9141
9142 PR tree-optimization/89253
9143 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
9144 duplicate the loop.
9145
9146 2019-02-11 David Malcolm <dmalcolm@redhat.com>
9147
9148 PR lto/88147
9149 * input.c (selftest::test_line_offset_overflow): New selftest.
9150 (selftest::input_c_tests): Call it.
9151
9152 2019-02-11 Martin Sebor <msebor@redhat.com>
9153
9154 PR tree-optimization/88771
9155 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
9156 when -Wstringop-overflow is set.
9157 (builtin_memref::builtin_memref): Adjust excessive upper bound
9158 only when lower bound is not excessive.
9159 (maybe_diag_overlap): Detect and diagnose excessive bounds via
9160 -Wstringop-ovefflow.
9161 (maybe_diag_offset_bounds): Rename...
9162 (maybe_diag_access_bounds): ...to this.
9163 (check_bounds_or_overlap): Adjust for name change above.
9164
9165 2019-02-11 Martin Sebor <msebor@redhat.com>
9166
9167 PR c++/87996
9168 * builtins.c (max_object_size): Move from here...
9169 * builtins.h (max_object_size): ...and here...
9170 * tree.c (max_object_size): ...to here...
9171 * tree.h (max_object_size): ...and here.
9172
9173 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
9174
9175 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
9176 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
9177 for correct semantics.
9178
9179 2019-02-11 Alan Modra <amodra@gmail.com>
9180
9181 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
9182 -mlongcall and -mpltseq.
9183 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
9184 (RS/6000 and PowerPC Options <-mpltseq>): Document.
9185 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
9186 * config/rs6000/sysv4.opt (mpltseq): New option.
9187 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
9188 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
9189 support is lacking. Don't allow -mpltseq with -mbss-plt.
9190 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
9191 -mpltseq given for ELFv1.
9192 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
9193 Only use UNSPEC_PLTSEQ for inline PLT calls.
9194 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
9195 use UNSPEC_PLTSEQ for inline PLT calls.
9196 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
9197 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
9198 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
9199 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
9200 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
9201 (pltseq_mtctr_<mode>): Likewise.
9202
9203 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
9204
9205 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
9206 Solaris ld.
9207 * configure: Regenerate.
9208
9209 2019-02-11 Jakub Jelinek <jakub@redhat.com>
9210
9211 PR bootstrap/88714
9212 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
9213 instead of r.
9214
9215 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
9216
9217 * function.c (assign_parm_setup_block): Use the stored
9218 size, not the passed size, when allocating stack-space,
9219 also for a parameter with alignment larger than
9220 MAX_SUPPORTED_STACK_ALIGNMENT.
9221
9222 2019-02-11 Martin Liska <mliska@suse.cz>
9223
9224 PR ipa/89009
9225 * ipa-cp.c (build_toporder_info): Remove usage of a param.
9226 * ipa-inline.c (inline_small_functions): Likewise.
9227 * ipa-pure-const.c (propagate_pure_const): Likewise.
9228 (propagate_nothrow): Likewise.
9229 * ipa-reference.c (propagate): Likewise.
9230 * ipa-utils.c (struct searchc_env): Remove unused field.
9231 (searchc): Always search across AVAIL_INTERPOSABLE.
9232 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
9233 the only called IPA pure const can properly not propagate
9234 across interposable boundary.
9235 * ipa-utils.h (ipa_reduced_postorder): Remove param.
9236
9237 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
9238
9239 * config/nds32/nds32.md (call_internal, call_value_internal,
9240 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
9241
9242 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
9243
9244 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
9245 typo.
9246
9247 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
9248
9249 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
9250 in comments
9251
9252 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
9253
9254 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
9255
9256 2019-02-10 Jakub Jelinek <jakub@redhat.com>
9257
9258 PR tree-optimization/89268
9259 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
9260 if preds is non-NULL.
9261
9262 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
9263
9264 PR lto/89272
9265 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
9266 polymorphic types.
9267
9268 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
9269
9270 * config/nds32/nds32.md (trap): New pattern.
9271
9272 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
9273
9274 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
9275 dwarf span.
9276
9277 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
9278
9279 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
9280 to split POST_INC.
9281
9282 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
9283
9284 * ipa-visibility.c (localize_node): Also do not localize
9285 LDPR_PREVAILING_DEF_IRONLY_EXP.
9286
9287 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
9288
9289 PR lto/87957
9290 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
9291 instead of type_with_linkage.
9292
9293 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
9294
9295 PR ipa/88755
9296 * params.def (uninlined-function-insns, uninlined-function-time,
9297 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
9298 bound so we don't get overflows.
9299
9300 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
9301
9302 * config/rs6000/rs6000-string.c (expand_compare_loop,
9303 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
9304 memcmp/strncmp.
9305
9306 2019-02-09 Jakub Jelinek <jakub@redhat.com>
9307
9308 PR middle-end/89246
9309 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9310 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
9311 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
9312
9313 2019-02-09 Alan Modra <amodra@gmail.com>
9314
9315 PR target/88343
9316 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
9317 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
9318 setup.
9319
9320 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
9321
9322 PR middle-end/88560
9323 * lra-constraints.c (process_alt_operands): Don't increase reject
9324 for memory when offset memory is required.
9325
9326 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
9327
9328 * config/s390/vector.md: Implement vector copysign.
9329
9330 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
9331
9332 * expr.c (expand_constructor): Correct indentations.
9333
9334 2019-02-08 Richard Biener <rguenther@suse.de>
9335
9336 PR tree-optimization/89247
9337 * tree-if-conv.c: Include tree-cfgcleanup.h.
9338 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
9339 (tree_if_conversion): Pass through predicate vector.
9340 (pass_if_conversion::execute): Do CFG cleanup and SSA update
9341 inline, see if any if-converted loops we refrece in
9342 LOOP_VECTORIZED calls vanished and fixup.
9343 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
9344
9345 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
9346
9347 * config/s390/constraints.md (jdd): New constraint.
9348
9349 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
9350
9351 PR target/89229
9352 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
9353 upper 16 vector registers without TARGET_AVX512VL.
9354 (*movti_internal): Likewise.
9355
9356 2019-02-08 Jakub Jelinek <jakub@redhat.com>
9357
9358 PR rtl-optimization/89234
9359 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
9360 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
9361 (copy_reg_eh_region_note_backward): Likewise.
9362
9363 2019-02-08 Richard Biener <rguenther@suse.de>
9364
9365 PR middle-end/89223
9366 * tree-data-ref.c (initialize_matrix_A): Fail if constant
9367 doesn't fit in HWI.
9368 (analyze_subscript_affine_affine): Handle failure from
9369 initialize_matrix_A.
9370
9371 2019-02-08 Jakub Jelinek <jakub@redhat.com>
9372
9373 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
9374 cfun everywhere.
9375
9376 2019-02-07 David Malcolm <dmalcolm@redhat.com>
9377
9378 PR tree-optimization/86637
9379 PR tree-optimization/89235
9380 * tree-vect-loop.c (optimize_mask_stores): Add an
9381 auto_purge_vect_location sentinel to ensure that vect_location is
9382 purged on exit.
9383 * tree-vectorizer.c
9384 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
9385 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
9386 to ensure that vect_location is purged on exit.
9387 (pass_slp_vectorize::execute): Likewise, replacing the manual
9388 reset.
9389 * tree-vectorizer.h (class auto_purge_vect_location): New class.
9390
9391 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9392
9393 * config/aarch64/iterators.md (max_opp): New code_attr.
9394 (USMAX): New code iterator.
9395 * config/aarch64/predicates.md (aarch64_smin): New predicate.
9396 (aarch64_smax): Likewise.
9397 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
9398 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
9399 MINUS (MAX MIN).
9400
9401 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
9402
9403 PR target/89229
9404 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
9405 for TARGET_AVX512VL.
9406 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
9407
9408 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
9409
9410 * config/s390/s390-builtin-types.def: Add new types.
9411 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
9412 (s390_vec_xlw4): Make the memory operand into a const pointer.
9413 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
9414 float.
9415 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
9416 a new vector type with the alignment of the scalar memory operand.
9417
9418 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
9419 Jakub Jelinek <jakub@redhat.com>
9420
9421 PR bootstrap/88714
9422 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
9423 arm_count_ldrdstrd_insns): New declarations.
9424 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
9425 MINUS.
9426 (valid_operands_ldrd_strd): New function.
9427 (arm_count_ldrdstrd_insns): New function.
9428 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
9429 sets instead of single DImode set and define new insns to match this.
9430
9431 2019-02-07 Tamar Christina <tamar.christina@arm.com>
9432
9433 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
9434 Make it a C initializer.
9435
9436 2019-02-07 Tamar Christina <tamar.christina@arm.com>
9437
9438 PR/target 88850
9439 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
9440
9441 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9442
9443 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
9444 Use neon_dot<q> for type.
9445 (neon_<sup>dot_lane<vsi2qi>): Likewise.
9446
9447 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9448
9449 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
9450 Use neon_dot<q> for type.
9451 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
9452 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
9453
9454 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
9455
9456 PR rtl-optimization/89225
9457 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
9458 sizes check.
9459
9460 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
9461
9462 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
9463 after restoring registers saved to allocate the frame on Windows.
9464
9465 2019-02-06 Richard Biener <rguenther@suse.de>
9466
9467 PR tree-optimization/89182
9468 * graphite.h (cached_scalar_evolution_in_region): Declare.
9469 * graphite.c (struct seir_cache_key): New.
9470 (struct sese_scev_hash): Likewise.
9471 (seir_cache): New global.
9472 (cached_scalar_evolution_in_region): New function.
9473 (graphite_transform_loops): Allocate and release seir_cache.
9474 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
9475 cached_scalar_evolution_in_region.
9476 * graphite-scop-detection.c (scop_detection::can_represent_loop):
9477 Simplify.
9478 (scop_detection::graphite_can_represent_expr: Use
9479 cached_scalar_evolution_in_region.
9480 (scop_detection::stmt_simple_for_scop_p): Likewise.
9481 (find_params_in_bb): Likewise.
9482 (gather_bbs::before_dom_children): Likewise.
9483 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
9484 (add_loop_constraints): Likewise.
9485
9486 2019-02-06 Jakub Jelinek <jakub@redhat.com>
9487
9488 PR middle-end/89210
9489 * fold-const-call.c (fold_const_vec_convert): Pass true as last
9490 operand to new_unary_operation only if both element types are integral
9491 and it isn't a widening conversion. Return NULL_TREE if
9492 new_unary_operation failed.
9493
9494 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
9495
9496 PR target/88856
9497 * config/s390/s390.md: Remove load and test FP splitter.
9498
9499 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
9500
9501 PR target/89112
9502 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
9503 expand_compare_loop, expand_block_compare_gpr,
9504 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
9505 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
9506 #include "profile-count.h" and "predict.h" for types and functions
9507 needed to work with REG_BR_PROB notes.
9508
9509 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
9510
9511 PR target/89112
9512 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
9513 for the long branch case.
9514
9515 2019-02-05 Jakub Jelinek <jakub@redhat.com>
9516
9517 PR target/89188
9518 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
9519 can throw, non-call exceptions are enabled and we can't delete
9520 dead exceptions or alter cfg. Set must_clean if
9521 delete_insn_and_edges returns true, don't set it blindly for calls.
9522 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
9523
9524 PR rtl-optimization/89195
9525 * combine.c (make_extraction): For MEMs, don't extract bytes outside
9526 of the original MEM.
9527
9528 2019-02-05 Martin Liska <mliska@suse.cz>
9529
9530 PR gcov-profile/89000
9531 * gcov.c (function_summary): Remove argument.
9532 (file_summary): New function.
9533 (print_usage): Replace tabs with spaces.
9534 (generate_results): Use new function file_summary.
9535
9536 2019-02-05 Jakub Jelinek <jakub@redhat.com>
9537
9538 PR target/89186
9539 * optabs.c (prepare_cmp_insn): Pass x and y to
9540 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
9541
9542 2019-02-05 Richard Biener <rguenther@suse.de>
9543
9544 PR middle-end/89150
9545 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
9546 (struct bitmap_element): Drop chain_prev so we properly recurse on
9547 the prev member, supporting tree views.
9548 (struct bitmap_head): GTY skip the obstack member.
9549
9550 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
9551
9552 PR c/88698
9553 * doc/extend.texi (Vector Extensions): Add an example of using vector
9554 types together with x86 intrinsics.
9555
9556 2019-02-04 Alan Modra <amodra@gmail.com>
9557
9558 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
9559 str[] size to 160, and comment.
9560
9561 2019-02-04 Alan Modra <amodra@gmail.com>
9562
9563 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
9564 (rs6000_pltseq_template): Guard output of TLS markers with
9565 TARGET_TLS_MARKERS.
9566 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
9567 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
9568 to use inline PLT sequences.
9569 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
9570 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
9571 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
9572
9573 2019-02-04 Martin Liska <mliska@suse.cz>
9574
9575 PR ipa/88985
9576 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
9577 out when ipa_fn_summaries does not contain entry for callee.
9578
9579 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
9580
9581 * config/sparc/sparc.h: Remove superfluous blank lines.
9582 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
9583 (got_register_rtx): ...this.
9584 (sparc_got): Adjust to above renaming.
9585 (sparc_tls_got): Likewise.
9586 (sparc_delegitimize_address): Likewise.
9587 (sparc_output_mi_thunk): Likewise.
9588 (sparc_init_pic_reg): Likewise.
9589 (save_local_or_in_reg_p): Fix test on the GOT register.
9590 (USE_HIDDEN_LINKONCE): Move around.
9591 (get_pc_thunk_name): Likewise.
9592 (gen_load_pcrel_sym): Likewise.
9593 (load_got_register): Likewise.
9594
9595 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
9596
9597 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
9598 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
9599
9600 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
9601
9602 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
9603 into consideration.
9604
9605 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
9606
9607 * config.gcc (with_nds32_lib, glibc):
9608 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
9609 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
9610 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
9611
9612 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
9613
9614 PR target/89071
9615 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
9616 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
9617 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
9618 (*rcpsf2_sse): Ditto.
9619 (*rsqrtsf2_sse): Ditto.
9620 (sse4_1_round<mode<2): Ditto.
9621
9622 2019-02-03 Richard Biener <rguenther@suse.de>
9623
9624 PR debug/87295
9625 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
9626 orig.
9627
9628 2019-02-02 Jakub Jelinek <jakub@redhat.com>
9629
9630 PR middle-end/87887
9631 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9632 Punt with warning on aggregate return or argument types. Ignore
9633 type/mode checking for uniform arguments.
9634
9635 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
9636
9637 * combine.c (try_combine): Do not print "Can't combine" messages unless
9638 printing failed combination attempts.
9639
9640 2019-02-01 Martin Jambor <mjambor@suse.cz>
9641
9642 PR hsa/87863
9643 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
9644 segment and global segment variables before making them static.
9645
9646 2019-02-01 Martin Jambor <mjambor@suse.cz>
9647
9648 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
9649 missed optimization dump with dump_enabled_p.
9650
9651 2019-02-01 Richard Biener <rguenther@suse.de>
9652
9653 PR middle-end/88597
9654 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
9655 the instantiate cache.
9656 (instantiate_scev_binary): Elide second operand procesing
9657 if equal to the first.
9658 * tree-chrec.c (chrec_contains_symbols): Add visited set.
9659 (chrec_contains_undetermined): Likewise.
9660 (tree_contains_chrecs): Likewise.
9661
9662 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
9663
9664 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
9665
9666 2019-02-01 Jakub Jelinek <jakub@redhat.com>
9667
9668 PR tree-optimization/89143
9669 * wide-int-range.h (wide_int_range_absu): Declare.
9670 * wide-int-range.cc (wide_int_range_absu): New function.
9671 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
9672
9673 PR tree-optimization/88107
9674 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
9675 instead of assertion that eh_region_outermost is non-NULL, if it
9676 is NULL, set *ALL to true and return NULL.
9677 (move_sese_region_to_fn): Adjust caller, if all is set, call
9678 duplicate_eh_regions with NULL region.
9679
9680 2019-02-01 Richard Biener <rguenth@suse.de>
9681
9682 PR rtl-optimization/88593
9683 * mode-switching.c (optimize_mode_switching): Free dominators before
9684 calling cleanup_cfg.
9685
9686 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
9687
9688 PR tree-optimization/88932
9689 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
9690
9691 2019-01-31 Jakub Jelinek <jakub@redhat.com>
9692
9693 PR middle-end/89137
9694 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
9695 bogus clang warning.
9696
9697 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
9698
9699 PR target/89071
9700 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
9701 alternative to avoid partial SSE register stall for TARGET_AVX.
9702 (truncdfsf2): Ditto.
9703 (sse4_1_round<mode>2): Ditto.
9704
9705 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
9706
9707 PR tree-optimization/89008
9708 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
9709 process anything of the form X * 0.
9710
9711 2019-01-31 Richard Biener <rguenther@suse.de>
9712
9713 PR tree-optimization/89135
9714 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
9715 with abnormal preds.
9716
9717 2019-01-31 Jakub Jelinek <jakub@redhat.com>
9718
9719 PR sanitizer/89124
9720 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
9721 always_inline callees into no_sanitize_address callers.
9722
9723 2019-01-31 Richard Biener <rguenther@suse.de>
9724
9725 PR rtl-optimization/89115
9726 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
9727
9728 2019-01-30 Martin Sebor <msebor@redhat.com>
9729
9730 PR other/89106
9731 * doc/extend.texi (cast to a union): Correct and expand.
9732
9733 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
9734
9735 PR rtl-optimization/87246
9736 * lra-constraints.c (simplify_operand_subreg): Reload memory
9737 in subreg if the address became invalid.
9738
9739 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
9740
9741 PR target/87064
9742 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
9743 Disable for little-endian.
9744
9745 2019-01-30 Richard Biener <rguenther@suse.de>
9746
9747 PR rtl-optimization/89115
9748 * opts.c (default_options_optimization): Reduce
9749 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
9750 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
9751 to the default.
9752
9753 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
9754
9755 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
9756 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
9757 type of vector element when vec_extract is implemented by direct
9758 move.
9759
9760 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
9761
9762 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
9763
9764 2019-01-30 Richard Biener <rguenther@suse.de>
9765
9766 PR tree-optimization/89111
9767 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
9768 canonicalization to appropriately sized access types.
9769
9770 2019-01-30 Jakub Jelinek <jakub@redhat.com>
9771
9772 PR c++/89105
9773 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
9774 for arguments to functions that are TU-local and shouldn't be
9775 referenced by assembly.
9776
9777 2019-01-30 Ulrich Drepper <drepper@redhat.com>
9778
9779 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
9780 after '='.
9781
9782 2019-01-29 Martin Sebor <msebor@redhat.com>
9783
9784 PR c/88956
9785 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
9786
9787 2019-01-29 Jakub Jelinek <jakub@redhat.com>
9788
9789 PR c++/66676
9790 PR ipa/89104
9791 * omp-simd-clone.c (simd_clone_clauses_extract)
9792 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
9793 OMP_CLAUSE_ALIGNED_ALIGNMENT.
9794
9795 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
9796
9797 * config.gcc: Force .init_array for ARC.
9798
9799 2019-01-29 Richard Biener <rguenther@suse.de>
9800
9801 PR debug/87295
9802 * dwarf2out.c (collect_skeleton_dies): New helper.
9803 (copy_decls_for_unworthy_types): Call it.
9804 (build_abbrev_table): Assert we do not try to replace
9805 DW_AT_signature refs with local refs.
9806
9807 2019-01-28 Jakub Jelinek <jakub@redhat.com>
9808
9809 PR middle-end/89002
9810 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
9811 for lastprivate/linear IV, push gimplify context around gimplify_assign
9812 and, if it needed any temporaries, pop it into a gimple bind around the
9813 sequence.
9814
9815 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
9816
9817 * common.opt (-Wattribute-alias): Remove "no-" from name.
9818 Make -Wattribute-alias command line option and
9819 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
9820
9821 2019-01-28 Jakub Jelinek <jakub@redhat.com>
9822
9823 PR target/89073
9824 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
9825 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
9826 x86 ISA options.
9827 (bmi2): Add missing @opindex.
9828 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
9829 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
9830 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
9831 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
9832 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
9833 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
9834 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
9835 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
9836 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
9837 xsavec, xsaveopt and xsaves options.
9838
9839 2019-01-28 Richard Biener <rguenther@suse.de>
9840
9841 PR debug/89076
9842 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
9843 support removal.
9844
9845 2019-01-28 Richard Biener <rguenther@suse.de>
9846
9847 PR tree-optimization/88739
9848 * tree-cfg.c (verify_types_in_gimple_reference): Verify
9849 BIT_FIELD_REFs only are applied to mode-precision operands
9850 when they are integral.
9851 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
9852 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
9853 BIT_FIELD_REFs of non-mode-precision integral operands.
9854
9855 2019-01-27 Jakub Jelinek <jakub@redhat.com>
9856
9857 PR target/87214
9858 * config/i386/sse.md
9859 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
9860 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
9861 first constants in pairs are multiples of 2. Formatting fixes.
9862 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
9863 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
9864 first constants in each quadruple are multiples of 4. Formatting fixes.
9865
9866 2019-01-26 Martin Jambor <mjambor@suse.cz>
9867
9868 PR ipa/88933
9869 * tree-inline.c: Include tree-cfgcleanup.h.
9870 (delete_unreachable_blocks_update_callgraph): Move...
9871 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
9872 ...here, make externally visible, make second argument bool, adjust
9873 all callers.
9874 * tree-cfgcleanup.c: Include cgraph.h.
9875 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
9876 Declare.
9877 * ipa-prop.c: Include tree-cfgcleanup.h.
9878 (ipcp_transform_function): Call
9879 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
9880
9881 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
9882
9883 PR rtl-optimization/88846
9884 * ira.c (process_set_for_memref_referenced_p): New.
9885 (memref_referenced_p): Add new param. Use
9886 process_set_for_memref_referenced_p. Add new switch cases.
9887 (memref_used_between_p): Pass new arg to memref_referenced_p.
9888
9889 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
9890
9891 PR target/88469
9892 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
9893 argument ABI_BREAK. Set to true if the calculated alignment has
9894 changed in gcc-9. Check bit-fields for their base type alignment.
9895 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
9896 (aarch64_function_arg_boundary): Likewise.
9897 (aarch64_gimplify_va_arg_expr): Likewise.
9898
9899 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9900
9901 PR middle-end/89037
9902 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
9903 instead of accessing TREE_INT_CST_ELT directly.
9904
9905 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
9906
9907 * doc/sourcebuild.texi (Environment attributes): Add fenv and
9908 fenv_exceptions description.
9909
9910 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
9911
9912 PR rtl-optimization/87763
9913 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
9914 Allow SUBREG when matching CC_NZmode compare.
9915
9916 2019-01-25 Richard Biener <rguenther@suse.de>
9917
9918 PR tree-optimization/89049
9919 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
9920 Look at the pattern stmt to determine if the stmt is vectorized.
9921
9922 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9923
9924 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
9925 (pred_mov<mode>): Handle all-register forms using both a new
9926 alternative and a split.
9927
9928 2019-01-25 Richard Biener <rguenther@suse.de>
9929
9930 PR tree-optimization/86865
9931 * graphite-scop-detection.c (scop_detection::can_represent_loop):
9932 Reject non-do-while loops.
9933
9934 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
9935
9936 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
9937 * config/rs6000/constraints.md (Q constraint): Use REG_P.
9938 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
9939 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
9940 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
9941 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9942 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
9943 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
9944 vlogical_operand, gpc_reg_operand, int_reg_operand,
9945 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
9946 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
9947 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
9948 (save_world_operation, restore_world_operation, lmw_operation,
9949 stmw_operation): Use MEM_P and REG_P.
9950 (tie_operand): Use MEM_P.
9951 (vrsave_operation, crsave_operation): Use REG_P.
9952 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
9953 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
9954 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
9955 (call_operand): Use HARD_REGISTER_P.
9956 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
9957 Use CONST_INT_P.
9958 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
9959 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
9960 quad_aligned_load_p, replace_swapped_aligned_store,
9961 recombine_lvx_pattern, replace_swapped_aligned_load,
9962 recombine_stvx_pattern): Use MEM_P.
9963 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
9964 Use MEM_P and SYMBOL_REF_P.
9965 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
9966 (insn_is_swappable_p): Use REG_P and MEM_P.
9967 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
9968 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
9969 Use CONST_INT_P.
9970 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
9971 Use CONST_DOUBLE_P.
9972 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
9973 CONST_WIDE_INT_P.
9974 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
9975 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
9976 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
9977 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
9978 reg_or_subregno:
9979 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
9980 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
9981 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
9982 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
9983 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
9984 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
9985 rs6000_split_logical_di): Use CONST_INT_P.
9986 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
9987 REG_P and SYMBOL_REF_P.
9988 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
9989 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
9990 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
9991 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
9992 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
9993 (small_data_operand, print_operand_address): Use CONST_INT_P and
9994 SYMBOL_REF_P.
9995 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
9996 (rs6000_init_hard_regno_mode_ok, direct_move_p):
9997 Use HARD_REGISTER_NUM_P.
9998 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
9999 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
10000 SUBREG_P and SYMBOL_REF_P.
10001 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
10002 and HARD_REGISTER_NUM_P.
10003 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
10004 reg_or_subregno.
10005 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
10006 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
10007 MEM_P and REG_P.
10008 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
10009 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
10010 find_addr_reg): Use REG_P.
10011 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
10012 (rs6000_emit_le_vsx_move): Use SUBREG_P.
10013 (offsettable_ok_by_alignment, constant_pool_expr_p,
10014 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
10015 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
10016 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
10017 rs6000_assemble_integer, create_TOC_reference,
10018 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
10019 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
10020 (rs6000_split_vec_extract_var): Use reg_or_subregno.
10021 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
10022 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
10023 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
10024 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
10025 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
10026 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
10027 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
10028 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
10029 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
10030 and cbranch<mode>4): Use CONST_INT_P.
10031 (multiple define_splits): Use REG_P and SUBREG_P.
10032 (define_expands call, call_value): Use MEM_P.
10033 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
10034 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
10035 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
10036 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
10037 and HARD_REGISTER_NUM_P.
10038 (multiple define_splits): Use HARD_REGISTER_NUM_P.
10039
10040 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
10041
10042 PR rtl-optimization/88948
10043 * rtl.h (prepare_copy_insn): New prototype.
10044 * gcse.c (prepare_copy_insn): New function, split out from
10045 process_insert_insn.
10046 (process_insert_insn): Use prepare_copy_insn.
10047 * store-motion.c (replace_store_insn): Use prepare_copy_insn
10048 instead of gen_move_insn.
10049
10050 2019-01-24 Jakub Jelinek <jakub@redhat.com>
10051
10052 PR debug/89006
10053 * config/i386/i386.c (ix86_pic_register_p): Return true for
10054 UNSPEC_SET_GOT too.
10055
10056 PR tree-optimization/88964
10057 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
10058 punt if HONOR_SNANS (chrec).
10059
10060 PR middle-end/89015
10061 * tree-nested.c (convert_nonlocal_reference_stmt,
10062 convert_local_reference_stmt, convert_tramp_reference_stmt,
10063 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
10064 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
10065 or GIMPLE_OMP_TASK.
10066
10067 PR tree-optimization/89027
10068 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
10069 for "omp simd array" variables.
10070
10071 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
10072
10073 PR target/88469
10074 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
10075 force the alignment of m_val.
10076
10077 2019-01-24 Richard Biener <rguenther@suse.de>
10078
10079 PR lto/87187
10080 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
10081 When in "legacy" debug mode make sure to reset self-origins.
10082
10083 2019-01-24 Martin Liska <mliska@suse.cz>
10084
10085 PR gcov-profile/88994
10086 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
10087 result will be always smaller or equal to the original.
10088 * gcov.c (mangle_name): Fix else branch where we should
10089 also copy to PTR and shift the pointer.
10090
10091 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
10092
10093 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
10094 * vr-values.c (find_case_label_ranges): Fix a comment typo.
10095
10096 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
10097
10098 * common/config/i386/i386-common.c
10099 (OPTION_MASK_ISA_ENQCMD_SET,
10100 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
10101 (ix86_handle_option): Handle -menqcmd.
10102 * config.gcc (enqcmdintrin.h): New header file.
10103 * config/i386/cpuid.h (bit_ENQCMD): New bit.
10104 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
10105 -menqcmd.
10106 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
10107 function type.
10108 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
10109 __builtin_ia32_enqcmds): New builtins.
10110 * config/i386/i386-c.c (__ENQCMD__): New macro.
10111 * config/i386/i386-option.c (ix86_target_string): Add
10112 -menqcmd.
10113 (ix86_valid_target_attribute_inner_p): Likewise.
10114 * config/i386/i386-expand.c
10115 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
10116 IX86_BUILTIN_ENQCMDS.
10117 * config/i386/i386.h (TARGET_ENQCMD): New.
10118 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
10119 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
10120 (movdir64b_<mode>): Parameterize to enable share expansion code
10121 with ENQCMD in function ix86_expand_builtin.
10122 * config/i386/i386.opt: Add -menqcmd.
10123 * config/i386/immintrin.h: Include enqcmdintrin.h.
10124 * config/i386/enqcmdintrin.h: New intrinsic file.
10125 * doc/invoke.texi: Add -menqcmd.
10126
10127 2019-01-23 Bin Cheng <bin.cheng@arm.com>
10128 Steve Ellcey <sellcey@marvell.com>
10129
10130 PR target/85711
10131 * recog.c (address_operand): Return false on wrong mode for address.
10132 (constrain_operands): Check for mode with 'p' constraint.
10133
10134 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
10135
10136 PR target/88998
10137 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
10138 Disparage MMX alternative.
10139 (sse2_cvtpd2pi): Ditto.
10140 (sse2_cvttpd2pi): Ditto.
10141
10142 2019-01-23 David Malcolm <dmalcolm@redhat.com>
10143
10144 PR driver/89014
10145 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
10146 use-after-free of the result of
10147 aarch64_get_extension_string_for_isa_flags.
10148
10149 2019-01-23 Jakub Jelinek <jakub@redhat.com>
10150
10151 PR c/44715
10152 * doc/extend.texi: Document break and continue behavior in
10153 statement expressions.
10154
10155 2019-01-23 Richard Biener <rguenther@suse.de>
10156
10157 PR tree-optimization/89008
10158 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
10159 not leave another stray operand.
10160
10161 2019-01-23 Jakub Jelinek <jakub@redhat.com>
10162
10163 * BASE-VER: Bump to 9.0.1.
10164
10165 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
10166
10167 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
10168 thunk that returns by reference, use the type of the return object
10169 of the thunk instead of that of the alias to build the dereference.
10170
10171 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
10172
10173 * config/arc/atomic.md: Add operand to DMB instruction.
10174
10175 2019-01-23 Jakub Jelinek <jakub@redhat.com>
10176
10177 PR tree-optimization/88964
10178 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
10179 build_zero_cst instead of build_int_cst. Return false for loop
10180 invariants which honor signed zeros.
10181
10182 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
10183
10184 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
10185
10186 2019-01-22 Jakub Jelinek <jakub@redhat.com>
10187
10188 PR target/88965
10189 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
10190 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
10191 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
10192
10193 PR middle-end/88968
10194 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
10195 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
10196
10197 PR target/87064
10198 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
10199 Disable for little endian.
10200
10201 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
10202
10203 PR target/88469
10204 * config/arm/arm.c (arm_needs_double_word_align): Check
10205 DECL_BIT_FIELD_TYPE.
10206
10207 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
10208 H.J. Lu <hongjiu.lu@intel.com>
10209
10210 PR target/88909
10211 * config/i386/i386-builtin.def: Add mask2 to all builtin
10212 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
10213 SPECIAL_ARGS.
10214 * config/i386/i386.c (BDESC): Add mask2 to the definition.
10215 (BDESC_FIRST): Likewise.
10216 (define_builtin): Add an argument for mask2. Updated to handle
10217 both ix86_isa_flags and ix86_isa_flags2.
10218 (define_builtin_const): Likewise.
10219 (define_builtin_pure): Likewise.
10220 (define_builtin2): Deleted.
10221 (define_builtin_const2): Likewise.
10222 (builtin_description): Add a member, mask2.
10223 (bdesc_*): Add mask2 to builtin initializations.
10224 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
10225 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
10226 support.
10227 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
10228
10229 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
10230
10231 PR target/88954
10232 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
10233 noplt attribute.
10234
10235 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
10236
10237 PR target/88469
10238 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
10239 alignment is dominated by a bitfield with 64-bit aligned base type.
10240 (arm_function_arg): Emit a warning if the alignment has changed since
10241 earlier GCC releases.
10242 (arm_function_arg_boundary): Likewise.
10243 (arm_setup_incoming_varargs): Likewise.
10244
10245 2019-01-22 Richard Biener <rguenther@suse.de>
10246
10247 PR tree-optimization/88862
10248 * graphite-scop-detection.c
10249 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
10250
10251 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
10252
10253 * doc/extend.tex (AMD GCN Function Attributes): New section.
10254 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
10255 * doc/invoke.texi (AMD GCN Options): New section.
10256 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
10257
10258 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
10259
10260 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
10261 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
10262
10263 2019-01-22 Jakub Jelinek <jakub@redhat.com>
10264
10265 PR tree-optimization/88044
10266 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
10267 is false in the first iteration, but !every_iteration, return false
10268 instead of true with niter->niter zero.
10269
10270 PR rtl-optimization/88904
10271 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
10272 any nonequal registers before processing BB_END (b).
10273
10274 PR target/88905
10275 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
10276 GET_MODE (op0).
10277 (expand_binop_directly, expand_doubleword_clz,
10278 expand_doubleword_popcount, expand_ctz, expand_ffs,
10279 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
10280
10281 PR rtl-optimization/49429
10282 PR target/49454
10283 PR rtl-optimization/86334
10284 PR target/88906
10285 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
10286 addressable from here...
10287 (emit_block_op_via_libcall): ... to here.
10288
10289 2019-01-22 Richard Biener <rguenther@suse.de>
10290
10291 * tree-vect-loop.c (vect_analyze_loop_operations): Use
10292 auto_vec for cost vector to fix memleak.
10293 (vectorize_fold_left_reduction): Properly gather SLP defs.
10294 (vectorizable_comparison): Do not swap operands to properly
10295 gather SLP defs.
10296
10297 2019-01-22 Alan Modra <amodra@gmail.com>
10298
10299 PR target/88614
10300 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
10301 stays a reg. Allow a const_int.
10302 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
10303 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
10304 (IS_NOMARK_TLSGETADDR): Define.
10305 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
10306 (rs6000_output_tlsargs): New function.
10307 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
10308 __tls_get_addr call takes an arg.
10309 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
10310 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
10311 delete split..
10312 (call_value_nonlocal_sysv): ..or here, delete split.
10313 (tls_gdld_nomark): Delete.
10314 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
10315 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
10316 (call_value_nonlocal_sysv): Likewise.
10317 (call_value_nonlocal_sysv_secure): Likewise.
10318 (call_value_nonlocal_aix): Likewise.
10319 (call_value_indirect_aix): Likewise.
10320 (call_value_indirect_elfv2): Likewise.
10321 (call_value_local32, call_value_local64): Disable for no-mark tls.
10322 (call_value_local_aix): Likewise.
10323
10324 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
10325
10326 PR target/88938
10327 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
10328 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
10329
10330 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
10331
10332 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
10333 string contents as hash_map keys.
10334
10335 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
10336
10337 PR c/88928
10338 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
10339 for rvalue context. Handle rvalues correctly. Use min_align_of_type
10340 instead of TYPE_ALIGN.
10341 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
10342 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
10343 pointer from TYPE_STUB_DECL.
10344
10345 2019-01-21 Richard Biener <rguenther@suse.de>
10346
10347 PR tree-optimization/88934
10348 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
10349 at the possibly non-constant operand.
10350 (vect_get_constant_vectors): Adjust.
10351
10352 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
10353
10354 PR target/71659
10355 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
10356 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
10357 instead of _X86INTRIN_H_INCLUDED.
10358 * onfig/i386/clwbintrin.h: Likewise.
10359 * config/i386/pkuintrin.h: Likewise.
10360 * config/i386/prfchwintrin.h: Likewise.
10361 * config/i386/rdseedintrin.h: Likewise.
10362 * config/i386/wbnoinvdintrin.h: Likewise.
10363 * config/i386/xsavecintrin.h: Likewise.
10364 * config/i386/xsavesintrin.h: Likewise.
10365 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
10366 * config/i386/xsaveintrin.h: Likewise.
10367 * config/i386/xsaveoptintrin.h: Likewise.
10368 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
10369 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
10370 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
10371 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
10372 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
10373 * config/i386/immintrin.h: Here.
10374
10375 2019-01-20 Martin Jambor <mjambor@suse.cz>
10376
10377 PR ipa/87615
10378 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
10379 with aa_walk_budget.
10380 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
10381 aa_walk_budget_p parameter.
10382 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
10383 walk. Updated all callers.
10384 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
10385 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
10386 unmodified_parm.
10387 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
10388 parameter info. Extract info from fbi. Pass fbi to recursive calls
10389 and to unmodified_parm.
10390 (phi_result_unknown_predicate): New parameter fbi, removed parameter
10391 info, updated call to will_be_nonconstant_expr_predicate.
10392 (param_change_prob): New parameter fbi, limit AA walking.
10393 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
10394 calls to various above functions.
10395 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
10396 parameter. Use it to limit AA walking.
10397 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
10398 fbi, limit AA walk.
10399 (detect_type_change): New parameter fbi, pass it on to
10400 detect_type_change_from_memory_writes.
10401 (detect_type_change_ssa): Likewise.
10402 (aa_overwalked): Removed.
10403 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
10404 accordingly, adjust to the neew AA limiting scheme.
10405 (parm_ref_data_preserved_p): Likewise.
10406 (ipa_compute_jump_functions_for_edge): Adjust call to
10407 get_dynamic_type.
10408 (ipa_analyze_call_uses): Likewise.
10409 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
10410 (ipa_analyze_node): Initialize aa_walk_budget.
10411 (ipcp_transform_function): Likewise.
10412 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
10413 to get_dynamic_type.
10414
10415 2019-01-19 Jakub Jelinek <jakub@redhat.com>
10416
10417 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
10418 outside of #if CHECKING_P code.
10419
10420 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
10421
10422 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
10423 New function, split out from...
10424 (loop_versioning::analyze_stride): ...here.
10425 (loop_versioning::find_per_loop_multiplication): Use gassign.
10426 (loop_versioning::analyze_term_using_scevs): Return a success code.
10427 (loop_versioning::analyze_arbitrary_term): New function.
10428 (loop_versioning::analyze_address_fragment): Use
10429 analyze_arbitrary_term if all else fails.
10430
10431 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
10432
10433 PR target/88892
10434 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
10435 operands.
10436
10437 2019-01-18 Richard Biener <rguenther@suse.de>
10438
10439 PR tree-optimization/88903
10440 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
10441 scalar stmts a SLP shift amount is composed of when detecting
10442 shifts by scalars.
10443
10444 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
10445
10446 PR target/88799
10447 * config/arm/arm-cpus.in (mp): New feature.
10448 (sec): New feature.
10449 (fgroup ARMv7ve): Add mp and sec features.
10450 (arch armv7-a): Add options to allow mp and sec extensions.
10451 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
10452 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
10453 extenstions to the base architecture.
10454 (cpu cortex-a8): Add sec extension to the base architecture.
10455 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
10456 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
10457 variants down to the base v7-a varaint.
10458 * config/arm/t-multilib (v7_a_arch_variants): New variable.
10459 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
10460 of permitted extensions for -march=armv7-a and for
10461 -mcpu=generic-armv7-a.
10462
10463 2019-01-18 Martin Liska <mliska@suse.cz>
10464
10465 * params.def: Fix comment.
10466 * tree-profile.c (gimple_init_gcov_profiler): Bump function
10467 name.
10468 (gimple_gen_ic_func_profiler): Likewise.
10469
10470 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10471
10472 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
10473 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
10474 and put in error checks for stack protector guard options.
10475 (aarch64_stack_protect_guard): New.
10476 (TARGET_STACK_PROTECT_GUARD): Define.
10477 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
10478 (reg_stack_protect_address<mode>): New.
10479 (stack_protect_set): Adjust for SSP_GLOBAL.
10480 (stack_protect_test): Likewise.
10481 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
10482 (-mstack-protector-guard): Likewise.
10483 (-mstack-protector-guard-offset): Likewise.
10484
10485 2019-01-18 Jakub Jelinek <jakub@redhat.com>
10486
10487 PR tree-optimization/86214
10488 * tree-inline.h (struct copy_body_data): Add
10489 add_clobbers_to_eh_landing_pads member.
10490 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
10491 (copy_edges_for_bb): Call it if EH edge destination is <
10492 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
10493 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
10494 if flag_stack_reuse != SR_NONE and clear it afterwards.
10495
10496 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
10497
10498 PR target/85596
10499 * doc/install.texi (with-multilib-list): Document for aarch64.
10500
10501 2019-01-18 Jakub Jelinek <jakub@redhat.com>
10502
10503 PR target/88734
10504 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
10505 (("..."))) with ("...").
10506
10507 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
10508
10509 * doc/extend.texi (Built-in Functions for Memory Model Aware
10510 Atomic Operations): Document atomic fetch and nand.
10511
10512 2019-01-18 Martin Liska <mliska@suse.cz>
10513 Richard Biener <rguenther@suse.de>
10514
10515 PR middle-end/88587
10516 * cgraph.h (create_version_clone_with_body): Add new argument
10517 with attributes.
10518 * cgraphclones.c (cgraph_node::create_version_clone): Add
10519 DECL_ATTRIBUTES to a newly created decl. And call
10520 valid_attribute_p so that proper cl_target_optimization_node
10521 is set for the newly created declaration.
10522 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
10523 for declaration.
10524 (expand_target_clones): Do not call valid_attribute_p, it must
10525 be already done.
10526 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
10527 vector types.
10528
10529 2019-01-17 Jakub Jelinek <jakub@redhat.com>
10530
10531 PR target/88734
10532 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
10533 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
10534 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
10535
10536 2019-01-17 Martin Sebor <msebor@redhat.com>
10537
10538 PR middle-end/88273
10539 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
10540 Handle anti-ranges the same as no range at all.
10541
10542 2018-01-17 Steve Ellcey <sellcey@cavium.com>
10543
10544 * config/aarch64/aarch64.c (cgraph.h): New include.
10545 (intl.h): New include.
10546 (supported_simd_type): New function.
10547 (currently_supported_simd_type): Ditto.
10548 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
10549 (aarch64_simd_clone_adjust): Ditto.
10550 (aarch64_simd_clone_usable): Ditto.
10551 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
10552 (TARGET_SIMD_CLONE_ADJUST): Ditto.
10553 (TARGET_SIMD_CLONE_USABLE): Ditto.
10554 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
10555 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
10556 call.
10557
10558 2019-01-17 Martin Sebor <msebor@redhat.com>
10559
10560 PR tree-optimization/88800
10561 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
10562 NO_WARNING bit here. Avoid folding out-of-bounds calls.
10563 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
10564 redundant argument. Add new argument and issue diagnostics under
10565 its control. Detect out-of-bounds access even with warnings
10566 disabled.
10567 (check_bounds_or_overlap): Change return type. Add argument.
10568 (wrestrict_dom_walker::check_call): Adjust.
10569 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
10570 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
10571 check_bounds_or_overlap's return value.
10572 (handle_builtin_stxncpy): Same.
10573 (handle_builtin_strcat): Same.
10574
10575 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10576 Kwok Cheung Yeung <kcy@codesourcery.com>
10577 Julian Brown <julian@codesourcery.com>
10578 Tom de Vries <tom@codesourcery.com>
10579
10580 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
10581
10582 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10583
10584 * doc/sourcebuild.texi: Document dg-require-effective-target
10585 llvm_binutils and offload_gcn.
10586
10587 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10588 Kwok Cheung Yeung <kcy@codesourcery.com>
10589 Julian Brown <julian@codesourcery.com>
10590 Tom de Vries <tom@codesourcery.com>
10591
10592 * doc/sourcebuild.texi: Document dg-required-effective-target
10593 exceptions.
10594
10595 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10596 Kwok Cheung Yeung <kcy@codesourcery.com>
10597 Julian Brown <julian@codesourcery.com>
10598 Tom de Vries <tom@codesourcery.com>
10599 Jan Hubicka <hubicka@ucw.cz>
10600 Martin Jambor <mjambor@suse.cz>
10601
10602 * config.gcc: Add amdgcn*-*-amdhsa configuration.
10603 * configure.ac: Check for dlopen.
10604 * configure: Regenerate.
10605
10606 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10607 Kwok Cheung Yeung <kcy@codesourcery.com>
10608 Julian Brown <julian@codesourcery.com>
10609 Tom de Vries <tom@codesourcery.com>
10610 Jan Hubicka <hubicka@ucw.cz>
10611 Martin Jambor <mjambor@suse.cz>
10612
10613 * common/config/gcn/gcn-common.c: New file.
10614 * config/gcn/driver-gcn.c: New file.
10615 * config/gcn/gcn-builtins.def: New file.
10616 * config/gcn/gcn-hsa.h: New file.
10617 * config/gcn/gcn-modes.def: New file.
10618 * config/gcn/gcn-opts.h: New file.
10619 * config/gcn/gcn-passes.def: New file.
10620 * config/gcn/gcn-protos.h: New file.
10621 * config/gcn/gcn-run.c: New file.
10622 * config/gcn/gcn-tree.c: New file.
10623 * config/gcn/gcn.c: New file.
10624 * config/gcn/gcn.h: New file.
10625 * config/gcn/gcn.opt: New file.
10626 * config/gcn/t-gcn-hsa: New file.
10627
10628 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10629 Kwok Cheung Yeung <kcy@codesourcery.com>
10630 Julian Brown <julian@codesourcery.com>
10631 Tom de Vries <tom@codesourcery.com>
10632 Jan Hubicka <hubicka@ucw.cz>
10633 Martin Jambor <mjambor@suse.cz>
10634
10635 * config/gcn/constraints.md: New file.
10636 * config/gcn/gcn-valu.md: New file.
10637 * config/gcn/gcn.md: New file.
10638 * config/gcn/predicates.md: New file.
10639
10640 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
10641
10642 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
10643 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
10644 (stmt_uses_0_or_null_in_undefined_way): Likewise.
10645 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
10646
10647 2019-01-17 Tamar Christina <tamar.christina@arm.com>
10648
10649 PR target/88851
10650 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
10651 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
10652 it and document registers.
10653
10654 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10655
10656 * config/aarch64/aarch64.c (ares_tunings): Define.
10657 * config/aarch64/aarch64-cores.def (ares): Use the above.
10658
10659 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10660
10661 PR target/88794
10662 Revert:
10663 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
10664
10665 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
10666 (_mm512_fixupimm_round_pd): Update parameters and builtin.
10667 (_mm512_maskz_fixupimm_round_pd): Ditto.
10668 (_mm512_fixupimm_round_ps): Ditto.
10669 (_mm512_maskz_fixupimm_round_ps): Ditto.
10670 (_mm_fixupimm_round_sd): Ditto.
10671 (_mm_maskz_fixupimm_round_sd): Ditto.
10672 (_mm_fixupimm_round_ss): Ditto.
10673 (_mm_maskz_fixupimm_round_ss): Ditto.
10674 (_mm512_fixupimm_pd): Ditto.
10675 (_mm512_maskz_fixupimm_pd): Ditto.
10676 (_mm512_fixupimm_ps): Ditto.
10677 (_mm512_maskz_fixupimm_ps): Ditto.
10678 (_mm_fixupimm_sd): Ditto.
10679 (_mm_maskz_fixupimm_sd): Ditto.
10680 (_mm_fixupimm_ss): Ditto.
10681 (_mm_maskz_fixupimm_ss): Ditto.
10682 (_mm512_mask_fixupimm_round_pd): Update builtin.
10683 (_mm512_mask_fixupimm_round_ps): Ditto.
10684 (_mm_mask_fixupimm_round_sd): Ditto.
10685 (_mm_mask_fixupimm_round_ss): Ditto.
10686 (_mm512_mask_fixupimm_pd): Ditto.
10687 (_mm512_mask_fixupimm_ps): Ditto.
10688 (_mm_mask_fixupimm_sd): Ditto.
10689 (_mm_mask_fixupimm_ss): Ditto.
10690 * config/i386/avx512vlintrin.h:
10691 (_mm256_fixupimm_pd): Update parameters and builtin.
10692 (_mm256_maskz_fixupimm_pd): Ditto.
10693 (_mm256_fixupimm_ps): Ditto.
10694 (_mm256_maskz_fixupimm_ps): Ditto.
10695 (_mm_fixupimm_pd): Ditto.
10696 (_mm_maskz_fixupimm_pd): Ditto.
10697 (_mm_fixupimm_ps): Ditto.
10698 (_mm_maskz_fixupimm_ps): Ditto.
10699 (_mm256_mask_fixupimm_pd): Update builtin.
10700 (_mm256_mask_fixupimm_ps): Ditto.
10701 (_mm_mask_fixupimm_pd): Ditto.
10702 (_mm_mask_fixupimm_ps): Ditto.
10703 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
10704 * config/i386/i386-builtin.def: Update builtin definitions.
10705 * config/i386/i386.c: Handle new builtin types and remove useless ones.
10706 * config/i386/sse.md: Update VFIXUPIMM* patterns.
10707 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10708 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10709 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
10710 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10711 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10712 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
10713 * config/i386/subst.md:
10714 (round_saeonly_sd_mask_operand4): Add new subst_attr.
10715 (round_saeonly_sd_mask_op4): Ditto.
10716 (round_saeonly_expand_operand5): Ditto.
10717 (round_saeonly_expand): Update.
10718
10719 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10720
10721 PR target/88794
10722 Revert:
10723 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
10724
10725 * config/i386/sse.md: Combine VFIXUPIMM* patterns
10726 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10727 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10728 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
10729 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10730 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10731 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
10732
10733 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10734
10735 PR target/88794
10736 Revert:
10737 2018-12-15 Jakub Jelinek <jakub@redhat.com>
10738
10739 PR target/88489
10740 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
10741 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
10742 instead of UNSPEC_FIXUPIMM.
10743
10744 2019-01-17 Richard Biener <rguenther@suse.de>
10745
10746 PR lto/86736
10747 * dwarf2out.c (want_pubnames): Never generate pubnames sections
10748 and friends for the LTO part of debug info.
10749
10750 2019-01-17 Jakub Jelinek <jakub@redhat.com>
10751
10752 PR tree-optimization/86214
10753 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
10754 if x == y.
10755
10756 PR rtl-optimization/88870
10757 * dce.c (deletable_insn_p): Never delete const/pure calls that can
10758 throw if we can't alter the cfg or delete dead exceptions.
10759 (mark_insn): Don't call find_call_stack_args for such calls.
10760
10761 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
10762
10763 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
10764 prototypes for vec_st.
10765 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
10766 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
10767 mainly on signed/unsigned long long and double.
10768
10769 2019-01-16 David Malcolm <dmalcolm@redhat.com>
10770
10771 PR target/88861
10772 * combine.c (delete_noop_moves): Convert to "bool" return,
10773 returning true if any edges are eliminated.
10774 (combine_instructions): Also return true if delete_noop_moves
10775 returns true.
10776
10777 2019-01-16 Tamar Christina <tamar.christina@arm.com>
10778
10779 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
10780 correct max nunits for endian swap.
10781 (aarch64_expand_fcmla_builtin): Correct subreg code.
10782 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
10783 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
10784 lane endianness.
10785
10786 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
10787
10788 * config/alpha/alpha.c (alpha_gimplify_va_arg):
10789 Handle split indirect COMPLEX_TYPE arguments.
10790
10791 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
10792
10793 PR target/86891
10794 * config/aarch64/aarch64-modes.def: Add comment about how the carry
10795 bit is set by add and compare.
10796 (CC_ADC): New CC_MODE.
10797 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
10798 to cache the code and mode of X. Adjust the shape of a CC_Cmode
10799 comparison. Add detection for CC_ADCmode.
10800 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
10801 CC_ADCmode.
10802 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
10803 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
10804 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
10805 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
10806 to eliminate the need for zero-extending the operands.
10807 (add<mode>3_compareC_imm): Delete. Merge into ...
10808 (add<mode>3_compareC): ... this. Restructure the comparison to
10809 eliminate the need for zero-extending the operands.
10810 (add<mode>3_carryin): Use LTU for the overflow detection.
10811 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
10812 Reexpress comparison for overflow.
10813 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
10814 (add<mode>3_carryinC): Likewise.
10815 (add<mode>3_carryinV): Use LTU for carry between partials.
10816 * config/aarch64/predicates.md (aarch64_carry_operation): Update
10817 handling of CC_Cmode and add CC_ADCmode.
10818 (aarch64_borrow_operation): Likewise.
10819
10820 2019-01-16 Tamar Christina <tamar.christina@arm.com>
10821
10822 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
10823 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
10824 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
10825 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
10826
10827 2019-01-16 Martin Liska <mliska@suse.cz>
10828
10829 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
10830 for GCC driver.
10831 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
10832 a new argument.
10833 * gcc.c (add_sysrooted_hdrs_prefix): New function.
10834 (path_prefix_reset): Move up in the source file.
10835 (find_fortran_preinclude_file): Make complex search for the
10836 fortran header files.
10837
10838 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
10839
10840 * godump.c (go_output_typedef): When outputting a typedef, refer
10841 to the underlying type by its name and not its structure.
10842
10843 2019-01-15 David Malcolm <dmalcolm@redhat.com>
10844
10845 PR c++/88795
10846 * tree.c (build_function_type): Assert that arg_types is not
10847 error_mark_node.
10848
10849 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
10850
10851 PR inline-asm/52813
10852 * doc/extend.texi: Document that listing the stack pointer in the
10853 clobber list of an asm is a deprecated feature.
10854 * common.opt (Wdeprecated): Moved from c-family/c.opt.
10855 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
10856 warning instead of an error for clobbers of the stack pointer.
10857 Add a note explaining why.
10858
10859 2019-01-15 Richard Biener <rguenther@suse.de>
10860
10861 PR debug/88046
10862 * dwarf2out.c (gen_member_die): Do not generate inheritance
10863 DIEs late.
10864
10865 2019-01-15 Richard Biener <rguenther@suse.de>
10866
10867 PR tree-optimization/88855
10868 * tree-if-conv.c (combine_blocks): Collect
10869 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
10870
10871 2019-01-15 Tom de Vries <tdevries@suse.de>
10872
10873 PR target/80547
10874 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
10875 lhs == NULL_TREE for gang-level reduction.
10876
10877 2019-01-15 Richard Biener <rguenther@suse.de>
10878 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10879
10880 PR ipa/88788
10881 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
10882 return true if SSA_NAME is already marked in visited bitmap.
10883 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
10884
10885 2019-01-15 Jakub Jelinek <jakub@redhat.com>
10886
10887 PR tree-optimization/88775
10888 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
10889 equal == 0 equality pointer comparisons some more if compared in
10890 integral types and either one points to an automatic var and the
10891 other to a global, or we can prove at least one points to the middle
10892 or both point to start or both point to end.
10893
10894 2019-01-14 Andi Kleen <ak@linux.intel.com>
10895
10896 * Makefile.in: Lower autofdo sampling rate by 10x.
10897 * Makefile.tpl: Dito.
10898
10899 2019-01-14 Tom Honermann <tom@honermann.net>
10900
10901 * defaults.h: Define CHAR8_TYPE.
10902
10903 2019-01-14 Martin Sebor <msebor@redhat.com>
10904
10905 PR target/88638
10906 * doc/extend.texi (Darwin Format Checks): Clarify.
10907
10908 2019-01-14 Richard Biener <rguenther@suse.de>
10909
10910 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
10911 whether we are in (simplify ...) or (match ...) context.
10912
10913 2019-01-14 Jakub Jelinek <jakub@redhat.com>
10914
10915 PR rtl-optimization/88796
10916 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
10917 * cfgexpand.c (stack_protect_prologue): Initialize
10918 crtl->stack_protect_guard_decl.
10919 * function.c (stack_protect_epilogue): Use it instead of calling
10920 targetm.stack_protect_guard again.
10921 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
10922 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
10923 crtl->stack_protect_guard_decl.
10924 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
10925 on the returned MEM_EXPR.
10926
10927 2019-01-12 Tom de Vries <tdevries@suse.de>
10928
10929 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
10930 vector length using -fopenacc-dim.
10931
10932 2019-01-12 Tom de Vries <tdevries@suse.de>
10933
10934 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
10935 lengths into account.
10936
10937 2019-01-12 Svante Signell <svante.signell@gmail.com>
10938
10939 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
10940 (TARGET_CAN_SPLIT_STACK): Define.
10941 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10942
10943 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
10944
10945 * params.def (inline-unit-growth): Set to 40.
10946
10947 2019-01-12 Jakub Jelinek <jakub@redhat.com>
10948
10949 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
10950
10951 2019-01-12 Tom de Vries <tdevries@suse.de>
10952
10953 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
10954 region calling vector-partitionable routine, set default_vector_length
10955 to WARP_SIZE.
10956
10957 2019-01-12 Tom de Vries <tdevries@suse.de>
10958
10959 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
10960 variable default_vector_length.
10961
10962 2019-01-12 Tom de Vries <tdevries@suse.de>
10963
10964 PR middle-end/88703
10965 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
10966 from oacc_default_dims, as oacc_validate_dims would do it, and apply
10967 dimensions limits.
10968
10969 2019-01-12 Tom de Vries <tdevries@suse.de>
10970
10971 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
10972 (nvptx_goacc_validate_dims): Add used parameter.
10973 * doc/tm.texi: Regenerate.
10974 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
10975 argument to call to targetm.goacc.validate_dims.
10976 (default_goacc_validate_dims): Add used
10977 parameter.
10978 * target.def (validate_dims): Add used parameter in DEFHOOK.
10979 * targhooks.h (default_goacc_validate_dims): Add used parameter.
10980
10981 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10982
10983 PR middle-end/85956
10984 PR lto/88733
10985 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
10986 field.
10987 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
10988 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
10989 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
10990 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
10991
10992 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
10993
10994 PR rtl-optimization/87305
10995 * lra-assigns.c
10996 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
10997 for little endian pseudos used as paradoxical subreg.
10998
10999 2019-01-11 Jakub Jelinek <jakub@redhat.com>
11000
11001 PR tree-optimization/88693
11002 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
11003 for STRING_CSTs that don't contain any NUL characters in the first
11004 TREE_STRING_LENGTH bytes.
11005
11006 2019-01-11 Alan Modra <amodra@gmail.com>
11007
11008 PR 88777
11009 PR 88614
11010 * genattrtab.c (min_fn): Don't translate values.
11011 (min_attr_value): Return INT_MAX when the value can't be calculated.
11012 Return minimum among any values that can be calculated.
11013 (max_attr_value): Adjust.
11014
11015 2019-01-11 Jakub Jelinek <jakub@redhat.com>
11016
11017 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
11018
11019 2019-01-11 Steve Ellcey <sellcey@marvell.com>
11020
11021 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
11022 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
11023 (aarch64_return_call_with_max_clobbers): New function.
11024 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
11025 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
11026 argument.
11027 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
11028 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
11029 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
11030 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
11031 * cselib.c (cselib_process_insn): Add argument to
11032 targetm.hard_regno_call_part_clobbered call.
11033 * ira-conflicts.c (ira_build_conflicts): Ditto.
11034 * ira-costs.c (ira_tune_allocno_costs): Ditto.
11035 * lra-constraints.c (inherit_reload_reg): Ditto.
11036 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
11037 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
11038 argument. Call targetm.return_call_with_max_clobbers.
11039 Add argument to targetm.hard_regno_call_part_clobbered call.
11040 (calls_have_same_clobbers_p): New function.
11041 (process_bb_lives): Add call_insn and last_call_insn variables.
11042 Pass call_insn to check_pseudos_live_through_calls.
11043 Modify if stmt to check targetm.return_call_with_max_clobbers.
11044 Update setting of flush variable.
11045 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
11046 to false.
11047 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
11048 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
11049 targetm.hard_regno_call_part_clobbered call.
11050 * reginfo.c (choose_hard_reg_mode): Ditto.
11051 * regrename.c (check_new_reg_p): Ditto.
11052 * reload.c (find_equiv_reg): Ditto.
11053 * reload1.c (emit_reload_insns): Ditto.
11054 * sched-deps.c (deps_analyze_insn): Ditto.
11055 * sel-sched.c (init_regs_for_mode): Ditto.
11056 (mark_unavailable_hard_regs): Ditto.
11057 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
11058 * target.def (hard_regno_call_part_clobbered): Add insn argument.
11059 (return_call_with_max_clobbers): New target function.
11060 * doc/tm.texi: Regenerate.
11061 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
11062 * hooks.c (hook_bool_uint_mode_false): Change to
11063 hook_bool_insn_uint_mode_false.
11064 * hooks.h (hook_bool_uint_mode_false): Ditto.
11065
11066 2019-01-11 Steve Ellcey <sellcey@marvell.com>
11067
11068 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
11069 (aarch64_remove_extra_call_preserved_regs): New function.
11070 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
11071 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
11072 * doc/tm.texi: Regenerate.
11073 * final.c (get_call_reg_set_usage): Call new hook.
11074 * target.def (remove_extra_call_preserved_regs): New hook.
11075 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
11076 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
11077
11078 2019-01-11 Jakub Jelinek <jakub@redhat.com>
11079
11080 PR bootstrap/88714
11081 * passes.c (finish_optimization_passes): Call print_combine_total_stats
11082 inside of pass_combine_1 dump rather than pass_profile_1.
11083
11084 2019-01-11 Tom de Vries <tdevries@suse.de>
11085
11086 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
11087 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
11088 (PTX_NUM_PER_WORKER_BARRIERS): Define.
11089 (nvptx_apply_dim_limits): Prevent vector_length 64 and
11090 num_workers 16.
11091
11092 2019-01-11 Tom de Vries <tdevries@suse.de>
11093
11094 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
11095
11096 2019-01-11 Jan Beulich <jbeulich@suse.com>
11097
11098 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
11099 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
11100 sse2_cvtsi2sd): Add {l}.
11101 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
11102 syntax.
11103
11104 2019-01-10 Jakub Jelinek <jakub@redhat.com>
11105
11106 PR target/88785
11107 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
11108 define_expand.
11109 (*float<floatunssuffix>v2div2sf2): New define_insn.
11110 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
11111 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
11112 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
11113 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
11114 match_operands with "const0_operand" "C".
11115
11116 2019-01-10 Tamar Christina <tamar.christina@arm.com>
11117
11118 * config/aarch64/aarch64-builtins.c
11119 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
11120 (aarch64_init_simd_builtins): ...Here
11121
11122 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
11123
11124 PR rtl-optimization/87305
11125 * lra-assigns.c
11126 (setup_live_pseudos_and_spill_after_risky_transforms): Check
11127 allocation for big endian pseudos used as paradoxical subregs and
11128 spill them if it is wrong.
11129 * lra-constraints.c (lra_constraints): Add a comment.
11130
11131 2019-01-10 Richard Biener <rguenther@suse.de>
11132
11133 PR tree-optimization/88792
11134 * tree-ssa-pre.c (get_representative_for): Do not return a
11135 value-number here.
11136
11137 2019-01-10 Jakub Jelinek <jakub@redhat.com>
11138
11139 PR middle-end/84877
11140 PR bootstrap/88450
11141 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
11142 (assign_parm_setup_block): Do the argument slot realignment here
11143 instead.
11144
11145 2019-01-10 Stefan Agner <stefan@agner.ch>
11146
11147 PR target/88648
11148 * config/arm/arm.c (arm_option_override_internal): Force
11149 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
11150
11151 2019-01-10 Jakub Jelinek <jakub@redhat.com>
11152
11153 PR c/88568
11154 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
11155 DECL_EXTERNAL.
11156
11157 2019-01-10 Tamar Christina <tamar.christina@arm.com>
11158
11159 * config/arm/arm-builtins.c
11160 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
11161 (MAC_LANE_PAIR_QUALIFIERS): New.
11162 (arm_expand_builtin_args): Use it.
11163 (arm_expand_builtin_1): Likewise.
11164 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
11165 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
11166 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
11167 * config/arm/arm_neon.h:
11168 (vcadd_rot90_f16): New.
11169 (vcaddq_rot90_f16): New.
11170 (vcadd_rot270_f16): New.
11171 (vcaddq_rot270_f16): New.
11172 (vcmla_f16): New.
11173 (vcmlaq_f16): New.
11174 (vcmla_lane_f16): New.
11175 (vcmla_laneq_f16): New.
11176 (vcmlaq_lane_f16): New.
11177 (vcmlaq_laneq_f16): New.
11178 (vcmla_rot90_f16): New.
11179 (vcmlaq_rot90_f16): New.
11180 (vcmla_rot90_lane_f16): New.
11181 (vcmla_rot90_laneq_f16): New.
11182 (vcmlaq_rot90_lane_f16): New.
11183 (vcmlaq_rot90_laneq_f16): New.
11184 (vcmla_rot180_f16): New.
11185 (vcmlaq_rot180_f16): New.
11186 (vcmla_rot180_lane_f16): New.
11187 (vcmla_rot180_laneq_f16): New.
11188 (vcmlaq_rot180_lane_f16): New.
11189 (vcmlaq_rot180_laneq_f16): New.
11190 (vcmla_rot270_f16): New.
11191 (vcmlaq_rot270_f16): New.
11192 (vcmla_rot270_lane_f16): New.
11193 (vcmla_rot270_laneq_f16): New.
11194 (vcmlaq_rot270_lane_f16): New.
11195 (vcmlaq_rot270_laneq_f16): New.
11196 (vcadd_rot90_f32): New.
11197 (vcaddq_rot90_f32): New.
11198 (vcadd_rot270_f32): New.
11199 (vcaddq_rot270_f32): New.
11200 (vcmla_f32): New.
11201 (vcmlaq_f32): New.
11202 (vcmla_lane_f32): New.
11203 (vcmla_laneq_f32): New.
11204 (vcmlaq_lane_f32): New.
11205 (vcmlaq_laneq_f32): New.
11206 (vcmla_rot90_f32): New.
11207 (vcmlaq_rot90_f32): New.
11208 (vcmla_rot90_lane_f32): New.
11209 (vcmla_rot90_laneq_f32): New.
11210 (vcmlaq_rot90_lane_f32): New.
11211 (vcmlaq_rot90_laneq_f32): New.
11212 (vcmla_rot180_f32): New.
11213 (vcmlaq_rot180_f32): New.
11214 (vcmla_rot180_lane_f32): New.
11215 (vcmla_rot180_laneq_f32): New.
11216 (vcmlaq_rot180_lane_f32): New.
11217 (vcmlaq_rot180_laneq_f32): New.
11218 (vcmla_rot270_f32): New.
11219 (vcmlaq_rot270_f32): New.
11220 (vcmla_rot270_lane_f32): New.
11221 (vcmla_rot270_laneq_f32): New.
11222 (vcmlaq_rot270_lane_f32): New.
11223 (vcmlaq_rot270_laneq_f32): New.
11224 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
11225 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
11226 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
11227 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
11228 vcmlaq_lane270): New.
11229 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
11230 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
11231 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
11232 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
11233 (arm_option_reconfigure_globals): Use them.
11234 * config/arm/iterators.md (VDF, VQ_HSF): New.
11235 (VCADD, VCMLA): New.
11236 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
11237 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
11238 New.
11239 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
11240 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
11241
11242 2019-01-10 Tamar Christina <tamar.christina@arm.com>
11243
11244 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
11245 Add qualifier_lane_pair_index.
11246 (emit-rtl.h): Include.
11247 (TYPES_QUADOP_LANE_PAIR): New.
11248 (aarch64_simd_expand_args): Use it.
11249 (aarch64_simd_expand_builtin): Likewise.
11250 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
11251 New.
11252 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
11253 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
11254 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
11255 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
11256 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
11257 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
11258 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
11259 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
11260 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
11261 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
11262 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
11263 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
11264 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
11265 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
11266 Add __ARM_FEATURE_COMPLEX.
11267 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
11268 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
11269 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
11270 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
11271 fcmlaq_lane270): New.
11272 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
11273 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
11274 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
11275 * config/aarch64/arm_neon.h:
11276 (vcadd_rot90_f16): New.
11277 (vcaddq_rot90_f16): New.
11278 (vcadd_rot270_f16): New.
11279 (vcaddq_rot270_f16): New.
11280 (vcmla_f16): New.
11281 (vcmlaq_f16): New.
11282 (vcmla_lane_f16): New.
11283 (vcmla_laneq_f16): New.
11284 (vcmlaq_lane_f16): New.
11285 (vcmlaq_rot90_lane_f16): New.
11286 (vcmla_rot90_laneq_f16): New.
11287 (vcmla_rot90_lane_f16): New.
11288 (vcmlaq_rot90_f16): New.
11289 (vcmla_rot90_f16): New.
11290 (vcmlaq_laneq_f16): New.
11291 (vcmla_rot180_laneq_f16): New.
11292 (vcmla_rot180_lane_f16): New.
11293 (vcmlaq_rot180_f16): New.
11294 (vcmla_rot180_f16): New.
11295 (vcmlaq_rot90_laneq_f16): New.
11296 (vcmlaq_rot270_laneq_f16): New.
11297 (vcmlaq_rot270_lane_f16): New.
11298 (vcmla_rot270_laneq_f16): New.
11299 (vcmlaq_rot270_f16): New.
11300 (vcmla_rot270_f16): New.
11301 (vcmlaq_rot180_laneq_f16): New.
11302 (vcmlaq_rot180_lane_f16): New.
11303 (vcmla_rot270_lane_f16): New.
11304 (vcadd_rot90_f32): New.
11305 (vcaddq_rot90_f32): New.
11306 (vcaddq_rot90_f64): New.
11307 (vcadd_rot270_f32): New.
11308 (vcaddq_rot270_f32): New.
11309 (vcaddq_rot270_f64): New.
11310 (vcmla_f32): New.
11311 (vcmlaq_f32): New.
11312 (vcmlaq_f64): New.
11313 (vcmla_lane_f32): New.
11314 (vcmla_laneq_f32): New.
11315 (vcmlaq_lane_f32): New.
11316 (vcmlaq_laneq_f32): New.
11317 (vcmla_rot90_f32): New.
11318 (vcmlaq_rot90_f32): New.
11319 (vcmlaq_rot90_f64): New.
11320 (vcmla_rot90_lane_f32): New.
11321 (vcmla_rot90_laneq_f32): New.
11322 (vcmlaq_rot90_lane_f32): New.
11323 (vcmlaq_rot90_laneq_f32): New.
11324 (vcmla_rot180_f32): New.
11325 (vcmlaq_rot180_f32): New.
11326 (vcmlaq_rot180_f64): New.
11327 (vcmla_rot180_lane_f32): New.
11328 (vcmla_rot180_laneq_f32): New.
11329 (vcmlaq_rot180_lane_f32): New.
11330 (vcmlaq_rot180_laneq_f32): New.
11331 (vcmla_rot270_f32): New.
11332 (vcmlaq_rot270_f32): New.
11333 (vcmlaq_rot270_f64): New.
11334 (vcmla_rot270_lane_f32): New.
11335 (vcmla_rot270_laneq_f32): New.
11336 (vcmlaq_rot270_lane_f32): New.
11337 (vcmlaq_rot270_laneq_f32): New.
11338 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
11339 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
11340 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
11341 (FCADD, FCMLA): New.
11342 (rot): New.
11343 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
11344
11345 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
11346
11347 PR other/16615
11348
11349 * config/pa/pa.c: Change "can not" to "cannot".
11350 * gimple-ssa-evrp-analyze.c: Likewise.
11351 * ipa-icf.c: Likewise.
11352 * ipa-polymorphic-call.c: Likewise.
11353 * ipa-pure-const.c: Likewise.
11354 * lra-constraints.c: Likewise.
11355 * lra-remat.c: Likewise.
11356 * reload1.c: Likewise.
11357 * reorg.c: Likewise.
11358 * tree-ssa-uninit.c: Likewise.
11359
11360 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
11361
11362 PR other/16615
11363
11364 * Makefile.in: Mechanically replace "can not" with "cannot".
11365 * alias.c: Likewise.
11366 * builtins.c: Likewise.
11367 * calls.c: Likewise.
11368 * cgraph.c: Likewise.
11369 * cgraph.h: Likewise.
11370 * cgraphclones.c: Likewise.
11371 * cgraphunit.c: Likewise.
11372 * combine-stack-adj.c: Likewise.
11373 * combine.c: Likewise.
11374 * common/config/i386/i386-common.c: Likewise.
11375 * config/aarch64/aarch64.c: Likewise.
11376 * config/alpha/sync.md: Likewise.
11377 * config/arc/arc.c: Likewise.
11378 * config/arc/predicates.md: Likewise.
11379 * config/arm/arm-c.c: Likewise.
11380 * config/arm/arm.c: Likewise.
11381 * config/arm/arm.h: Likewise.
11382 * config/arm/arm.md: Likewise.
11383 * config/arm/cortex-r4f.md: Likewise.
11384 * config/csky/csky.c: Likewise.
11385 * config/csky/csky.h: Likewise.
11386 * config/darwin-f.c: Likewise.
11387 * config/epiphany/epiphany.md: Likewise.
11388 * config/i386/i386.c: Likewise.
11389 * config/i386/sol2.h: Likewise.
11390 * config/m68k/m68k.c: Likewise.
11391 * config/mcore/mcore.h: Likewise.
11392 * config/microblaze/microblaze.md: Likewise.
11393 * config/mips/20kc.md: Likewise.
11394 * config/mips/sb1.md: Likewise.
11395 * config/nds32/nds32.c: Likewise.
11396 * config/nds32/predicates.md: Likewise.
11397 * config/pa/pa.c: Likewise.
11398 * config/rs6000/e300c2c3.md: Likewise.
11399 * config/rs6000/rs6000.c: Likewise.
11400 * config/s390/s390.h: Likewise.
11401 * config/sh/sh.c: Likewise.
11402 * config/sh/sh.md: Likewise.
11403 * config/spu/vmx2spu.h: Likewise.
11404 * cprop.c: Likewise.
11405 * dbxout.c: Likewise.
11406 * df-scan.c: Likewise.
11407 * doc/cfg.texi: Likewise.
11408 * doc/extend.texi: Likewise.
11409 * doc/fragments.texi: Likewise.
11410 * doc/gty.texi: Likewise.
11411 * doc/invoke.texi: Likewise.
11412 * doc/lto.texi: Likewise.
11413 * doc/md.texi: Likewise.
11414 * doc/objc.texi: Likewise.
11415 * doc/rtl.texi: Likewise.
11416 * doc/tm.texi: Likewise.
11417 * dse.c: Likewise.
11418 * emit-rtl.c: Likewise.
11419 * emit-rtl.h: Likewise.
11420 * except.c: Likewise.
11421 * expmed.c: Likewise.
11422 * expr.c: Likewise.
11423 * fold-const.c: Likewise.
11424 * genautomata.c: Likewise.
11425 * gimple-fold.c: Likewise.
11426 * hard-reg-set.h: Likewise.
11427 * ifcvt.c: Likewise.
11428 * ipa-comdats.c: Likewise.
11429 * ipa-cp.c: Likewise.
11430 * ipa-devirt.c: Likewise.
11431 * ipa-fnsummary.c: Likewise.
11432 * ipa-icf.c: Likewise.
11433 * ipa-inline-transform.c: Likewise.
11434 * ipa-inline.c: Likewise.
11435 * ipa-polymorphic-call.c: Likewise.
11436 * ipa-profile.c: Likewise.
11437 * ipa-prop.c: Likewise.
11438 * ipa-pure-const.c: Likewise.
11439 * ipa-reference.c: Likewise.
11440 * ipa-split.c: Likewise.
11441 * ipa-visibility.c: Likewise.
11442 * ipa.c: Likewise.
11443 * ira-build.c: Likewise.
11444 * ira-color.c: Likewise.
11445 * ira-conflicts.c: Likewise.
11446 * ira-costs.c: Likewise.
11447 * ira-int.h: Likewise.
11448 * ira-lives.c: Likewise.
11449 * ira.c: Likewise.
11450 * ira.h: Likewise.
11451 * loop-invariant.c: Likewise.
11452 * loop-unroll.c: Likewise.
11453 * lower-subreg.c: Likewise.
11454 * lra-assigns.c: Likewise.
11455 * lra-constraints.c: Likewise.
11456 * lra-eliminations.c: Likewise.
11457 * lra-lives.c: Likewise.
11458 * lra-remat.c: Likewise.
11459 * lra-spills.c: Likewise.
11460 * lra.c: Likewise.
11461 * lto-cgraph.c: Likewise.
11462 * lto-streamer-out.c: Likewise.
11463 * postreload-gcse.c: Likewise.
11464 * predict.c: Likewise.
11465 * profile-count.h: Likewise.
11466 * profile.c: Likewise.
11467 * recog.c: Likewise.
11468 * ree.c: Likewise.
11469 * reload.c: Likewise.
11470 * reload1.c: Likewise.
11471 * reorg.c: Likewise.
11472 * resource.c: Likewise.
11473 * rtl.def: Likewise.
11474 * rtl.h: Likewise.
11475 * rtlanal.c: Likewise.
11476 * sched-deps.c: Likewise.
11477 * sched-ebb.c: Likewise.
11478 * sched-rgn.c: Likewise.
11479 * sel-sched-ir.c: Likewise.
11480 * sel-sched.c: Likewise.
11481 * shrink-wrap.c: Likewise.
11482 * simplify-rtx.c: Likewise.
11483 * symtab.c: Likewise.
11484 * target.def: Likewise.
11485 * toplev.c: Likewise.
11486 * tree-call-cdce.c: Likewise.
11487 * tree-cfg.c: Likewise.
11488 * tree-complex.c: Likewise.
11489 * tree-core.h: Likewise.
11490 * tree-eh.c: Likewise.
11491 * tree-inline.c: Likewise.
11492 * tree-loop-distribution.c: Likewise.
11493 * tree-nrv.c: Likewise.
11494 * tree-profile.c: Likewise.
11495 * tree-sra.c: Likewise.
11496 * tree-ssa-alias.c: Likewise.
11497 * tree-ssa-dce.c: Likewise.
11498 * tree-ssa-dom.c: Likewise.
11499 * tree-ssa-forwprop.c: Likewise.
11500 * tree-ssa-loop-im.c: Likewise.
11501 * tree-ssa-loop-ivcanon.c: Likewise.
11502 * tree-ssa-loop-ivopts.c: Likewise.
11503 * tree-ssa-loop-niter.c: Likewise.
11504 * tree-ssa-phionlycprop.c: Likewise.
11505 * tree-ssa-phiopt.c: Likewise.
11506 * tree-ssa-propagate.c: Likewise.
11507 * tree-ssa-threadedge.c: Likewise.
11508 * tree-ssa-threadupdate.c: Likewise.
11509 * tree-ssa-uninit.c: Likewise.
11510 * tree-ssanames.c: Likewise.
11511 * tree-streamer-out.c: Likewise.
11512 * tree.c: Likewise.
11513 * tree.h: Likewise.
11514 * vr-values.c: Likewise.
11515
11516 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
11517
11518 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
11519 (ix86_split_xorsign): Ditto.
11520 * config/i386/i386.c (ix86_expand_xorsign): New function.
11521 (ix86_split_xorsign): Ditto.
11522 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
11523 (xorsign<mode>3): New expander.
11524 (xorsign<mode>3_1): New insn_and_split pattern.
11525 * config/i386/sse.md (xorsign<mode>3): New expander.
11526
11527 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11528
11529 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
11530 (*tablejump_sp64): Likewise.
11531 (*tablejump<P:mode>): ...this.
11532 (*call_address_sp32): Merge into...
11533 (*call_address_sp64): Likewise.
11534 (*call_address<P:mode>): ...this.
11535 (*call_symbolic_sp32): Merge into...
11536 (*call_symbolic_sp64): Likewise.
11537 (*call_symbolic<P:mode>): ...this.
11538 (call_value): Remove constraint and add predicate.
11539 (*call_value_address_sp32): Merge into...
11540 (*call_value_address_sp64): Likewise.
11541 (*call_value_address<P:mode>): ...this.
11542 (*call_value_symbolic_sp32): Merge into...
11543 (*call_value_symbolic_sp64): Likewise.
11544 (*call_value_symbolic<P:mode>): ...this.
11545 (*sibcall_symbolic_sp32): Merge into...
11546 (*sibcall_symbolic_sp64): Likewise.
11547 (*sibcall_symbolic<P:mode>): ...this.
11548 (sibcall_value): Remove constraint and add predicate.
11549 (*sibcall_value_symbolic_sp32): Merge into...
11550 (*sibcall_value_symbolic_sp64): Likewise.
11551 (*sibcall_value_symbolic<P:mode>): ...this.
11552 (window_save): Minor tweak.
11553 (*branch_sp32): Merge into...
11554 (*branch_sp64): Likewise.
11555 (*branch<P:mode>): ...this.
11556
11557 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11558 James Clarke <jrtc27@jrtc27.com>
11559
11560 PR target/84010
11561 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
11562 consistently in TLS address generation and adjust code to the renaming
11563 of patterns. Mark calls to __tls_get_addr as const.
11564 * config/sparc/sparc.md (tgd_hi22): Turn into...
11565 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
11566 (tgd_lo10): Turn into...
11567 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
11568 (tgd_add32): Merge into...
11569 (tgd_add64): Likewise.
11570 (tgd_add<P:mode>): ...this and use Pmode throughout.
11571 (tldm_hi22): Turn into...
11572 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
11573 (tldm_lo10): Turn into...
11574 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
11575 (tldm_add32): Merge into...
11576 (tldm_add64): Likewise.
11577 (tldm_add<P:mode>): ...this and use Pmode throughout.
11578 (tldm_call32): Merge into...
11579 (tldm_call64): Likewise.
11580 (tldm_call<P:mode>): ...this and use Pmode throughout.
11581 (tldo_hix22): Turn into...
11582 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
11583 (tldo_lox10): Turn into...
11584 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
11585 (tldo_add32): Merge into...
11586 (tldo_add64): Likewise.
11587 (tldo_add<P:mode>): ...this and use Pmode throughout.
11588 (tie_hi22): Turn into...
11589 (tie_hi22<P:mode>): ...this and use Pmode throughout.
11590 (tie_lo10): Turn into...
11591 (tie_lo10<P:mode>): ...this and use Pmode throughout.
11592 (tie_ld64): Use DImode throughout.
11593 (tie_add32): Merge into...
11594 (tie_add64): Likewise.
11595 (tie_add<P:mode>): ...this and use Pmode throughout.
11596 (tle_hix22_sp32): Merge into...
11597 (tle_hix22_sp64): Likewise.
11598 (tle_hix22<P:mode>): ...this and use Pmode throughout.
11599 (tle_lox22_sp32): Merge into...
11600 (tle_lox22_sp64): Likewise.
11601 (tle_lox22<P:mode>): ...this and use Pmode throughout.
11602 (*tldo_ldub_sp32): Merge into...
11603 (*tldo_ldub_sp64): Likewise.
11604 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
11605 (*tldo_ldub1_sp32): Merge into...
11606 (*tldo_ldub1_sp64): Likewise.
11607 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
11608 (*tldo_ldub2_sp32): Merge into...
11609 (*tldo_ldub2_sp64): Likewise.
11610 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
11611 (*tldo_ldsb1_sp32): Merge into...
11612 (*tldo_ldsb1_sp64): Likewise.
11613 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
11614 (*tldo_ldsb2_sp32): Merge into...
11615 (*tldo_ldsb2_sp64): Likewise.
11616 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
11617 (*tldo_ldub3_sp64): Use DImode throughout.
11618 (*tldo_ldsb3_sp64): Likewise.
11619 (*tldo_lduh_sp32): Merge into...
11620 (*tldo_lduh_sp64): Likewise.
11621 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
11622 (*tldo_lduh1_sp32): Merge into...
11623 (*tldo_lduh1_sp64): Likewise.
11624 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
11625 (*tldo_ldsh1_sp32): Merge into...
11626 (*tldo_ldsh1_sp64): Likewise.
11627 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
11628 (*tldo_lduh2_sp64): Use DImode throughout.
11629 (*tldo_ldsh2_sp64): Likewise.
11630 (*tldo_lduw_sp32): Merge into...
11631 (*tldo_lduw_sp64): Likewise.
11632 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
11633 (*tldo_lduw1_sp64): Use DImode throughout.
11634 (*tldo_ldsw1_sp64): Likewise.
11635 (*tldo_ldx_sp64): Likewise.
11636 (*tldo_stb_sp32): Merge into...
11637 (*tldo_stb_sp64): Likewise.
11638 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
11639 (*tldo_sth_sp32): Merge into...
11640 (*tldo_sth_sp64): Likewise.
11641 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
11642 (*tldo_stw_sp32): Merge into...
11643 (*tldo_stw_sp64): Likewise.
11644 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
11645 (*tldo_stx_sp64): Use DImode throughout.
11646
11647 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11648
11649 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
11650 check configure option to set BTI and Return Address Signing.
11651 * configure.ac: Add --enable-standard-branch-protection and
11652 --disable-standard-branch-protection.
11653 * configure: Regenerated.
11654 * doc/install.texi: Document the same.
11655
11656 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11657 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11658
11659 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
11660 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
11661 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
11662 if bti is enabled.
11663 * config/aarch64/aarch64-bti-insert.c: New file.
11664 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
11665 pass.
11666 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
11667 new bti pass.
11668 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
11669 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
11670 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
11671 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
11672
11673 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11674
11675 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
11676 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
11677 Disable bti for -mbranch-protection=none.
11678 (aarch64_handle_standard_branch_protection): Enable bti for
11679 -mbranch-protection=standard.
11680 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
11681 -mbranch-protection.
11682 (aarch64_bti_enabled): Check if bti is enabled.
11683 * config/aarch64/aarch64.opt: Declare target variable.
11684 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
11685
11686 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11687
11688 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
11689 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
11690 (aarch64_expand_epilogue): Likewise.
11691 (aarch64_output_mi_thunk): Likewise
11692 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
11693 TAILCALL_ADDR_REGS to x16 and x17.
11694 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
11695
11696 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11697
11698 * config/aarch64/aarch64-option-extensions.def: Define
11699 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
11700 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
11701 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
11702 (AARCH64_FL_PREDRES): New.
11703 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
11704 AARCH64_FL_PREDRES by default.
11705 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
11706
11707 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11708
11709 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
11710 ARMv8.5-A.
11711 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
11712 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
11713 * doc/invoke.texi: Document ARMv8.5-A.
11714
11715 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11716
11717 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
11718 (xorsign<mode>3): Likewise.
11719
11720 2019-01-09 Jelinek <jakub@redhat.com>
11721
11722 PR middle-end/88758
11723 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
11724 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
11725
11726 PR rtl-optimization/88331
11727 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
11728 not currently_expanding_to_rtl.
11729
11730 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11731
11732 * doc/invoke.texi (-Os): Remove trailing spaces.
11733 (-finline-functions): Remove reference to -O2.
11734
11735 2019-01-08 Jakub Jelinek <jakub@redhat.com>
11736
11737 PR rtl-optimization/79593
11738 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
11739
11740 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
11741 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
11742
11743 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
11744
11745 PR bootstrap/88721
11746 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
11747 to -1 on entry.
11748
11749 PR debug/88723
11750 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
11751 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
11752
11753 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
11754
11755 PR target/88717
11756 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
11757 ix86_avx_u128_mode_entry.
11758
11759 2019-01-08 Martin Liska <mliska@suse.cz>
11760
11761 PR tree-optimization/88753
11762 * tree-switch-conversion.c (switch_conversion::build_one_array):
11763 Come up with local variable constructor. Convert first to
11764 type of constructor values.
11765
11766 2019-01-08 Richard Biener <rguenther@suse.de>
11767
11768 PR tree-optimization/86554
11769 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
11770 rpo_avail): Move earlier.
11771 (visit_nary_op): When value-numbering to expressions
11772 with different overflow behavior make sure there's an
11773 available expression on the path.
11774
11775 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
11776
11777 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
11778 aarch64_parse_branch_protection,
11779 struct aarch64_branch_protect_type,
11780 aarch64_handle_no_branch_protection,
11781 aarch64_handle_standard_branch_protection,
11782 aarch64_validate_mbranch_protection,
11783 aarch64_handle_pac_ret_protection,
11784 aarch64_handle_attr_branch_protection,
11785 accepted_branch_protection_string,
11786 aarch64_pac_ret_subtypes,
11787 aarch64_branch_protect_types,
11788 aarch64_handle_pac_ret_leaf): Define.
11789 (aarch64_override_options_after_change_1, aarch64_override_options):
11790 Add check for accepted_branch_protection_string.
11791 (aarch64_option_save): Save accepted_branch_protection_string.
11792 (aarch64_option_restore): Save accepted_branch_protection_string.
11793 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
11794 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
11795 msign-return-address.
11796 * doc/invoke.texi: Add mbranch-protection.
11797
11798 2019-01-08 Alan Modra <amodra@gmail.com>
11799
11800 PR target/88614
11801 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
11802 Delete "unknownp" parameter. Adjust callers. Handle
11803 CONST_INT, PLUS, MINUS, and MULT.
11804 (attr_value_aligned): Renamed from or_attr_value.
11805 (min_attr_value): Return INT_MIN for unhandled rtl case..
11806 (min_fn): ..and translate to INT_MAX here.
11807 (write_length_unit_log): Modify to cope without "unknown".
11808 (write_attr_value): Handle IF_THEN_ELSE.
11809
11810 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11811
11812 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
11813 optimization for masked stores.
11814
11815 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11816
11817 PR middle-end/88567
11818 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
11819 output vector directly to duplicate_and_interleave instead of
11820 going through a temporary. Postpone insertion of ctor_seq to
11821 the end of the loop.
11822
11823 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
11824
11825 PR target/86891
11826 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
11827 unsigned_p. Handle signed and unsigned overflow correction as
11828 required.
11829 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
11830 prototype.
11831 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
11832 for operand 2.
11833 (add<mode>3_compareV_imm): Make this callable for expanding.
11834 (subv<GPI:mode>4): Use register_operand for operand 1. Use
11835 aarch64_plus_operand for operand 2.
11836 (subv<GPI:mode>_insn): New insn pattern.
11837 (subv<GPI:mode>_imm): Likewise.
11838 (negv<GPI:mode>3): New expand pattern.
11839 (negv<GPI:mode>_insn): New insn pattern.
11840 (negv<GPI:mode>_cmp_only): Likewise.
11841 (cmpv<GPI:mode>_insn): Likewise.
11842 (subvti4): Use register_operand for operand 1. Update call to
11843 aarch64_expand_subvti.
11844 (usubvti4): Likewise.
11845 (negvti3): New expand pattern.
11846 (negdi_carryout): New insn pattern.
11847 (negvdi_carryinV): New insn pattern.
11848 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
11849 version the named version.
11850 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
11851 operands.
11852 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
11853 patterns.
11854 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
11855 patterns.
11856 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
11857 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
11858 (sub<mode>3_carryinCV): Delete.
11859 (sub<GPI:mode>3_carryinV): New expand pattern.
11860 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
11861
11862 2019-01-07 Richard Biener <rguenther@suse.de>
11863
11864 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
11865 of tree_operand_hash.
11866
11867 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11868
11869 PR tree-optimization/88598
11870 * tree.h (single_nonzero_element): Declare.
11871 * tree.c (single_nonzero_element): New function.
11872 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
11873 if I is the only nonzero element of CST.
11874
11875 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11876
11877 PR tree-optimization/88598
11878 * tree.h (initializer_each_zero_or_onep): Declare.
11879 * tree.c (initializer_each_zero_or_onep): New function.
11880 (signed_or_unsigned_type_for): Handle float types too.
11881 (unsigned_type_for, signed_type_for): Update comments accordingly.
11882 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
11883 x & { 0 or -1, 0 or -1, ... }.
11884
11885 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
11886
11887 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
11888 with x86_64-pc-linux-gnu.
11889
11890 2019-01-07 Tom de Vries <tdevries@suse.de>
11891
11892 PR target/85486
11893 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
11894 function.
11895 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
11896 routines.
11897
11898 2019-01-07 Jakub Jelinek <jakub@redhat.com>
11899
11900 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
11901 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
11902 TARGET_AVX512F as condition.
11903
11904 PR debug/88723
11905 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
11906 const_not_ok_for_debug_p target hook.
11907 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
11908 on UNSPEC and subexpressions thereof if all subexpressions of the
11909 UNSPEC are CONSTANT_P.
11910
11911 PR tree-optimization/88676
11912 * tree-ssa-phiopt.c (two_value_replacement): New function.
11913 (tree_ssa_phiopt_worker): Call it.
11914
11915 PR sanitizer/88619
11916 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
11917 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
11918
11919 PR c++/85052
11920 * tree-vect-generic.c: Include insn-config.h and recog.h.
11921 (expand_vector_piecewise): Add defaulted ret_type argument,
11922 if non-NULL, use that in preference to type for the result type.
11923 (expand_vector_parallel): Formatting fix.
11924 (do_vec_conversion, do_vec_narrowing_conversion,
11925 expand_vector_conversion): New functions.
11926 (expand_vector_operations_1): Call expand_vector_conversion
11927 for VEC_CONVERT ifn calls.
11928 * internal-fn.def (VEC_CONVERT): New internal function.
11929 * internal-fn.c (expand_VEC_CONVERT): New function.
11930 * fold-const-call.c (fold_const_vec_convert): New function.
11931 (fold_const_call): Use it for CFN_VEC_CONVERT.
11932 * doc/extend.texi (__builtin_convertvector): Document.
11933
11934 2019-01-07 Tom de Vries <tdevries@suse.de>
11935
11936 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
11937 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
11938 vector_red_partition, vector_red_sym): New global variables.
11939 (nvptx_option_override): Initialize vector_red_sym.
11940 (nvptx_declare_function_name): Restore red_partition register.
11941 (nvptx_file_end): Emit code to declare the vector reduction variables.
11942 (nvptx_output_red_partition): New function.
11943 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
11944 large vector reductions.
11945 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
11946 (nvptx_init_builtins): Add VECTOR_ADDR.
11947 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
11948 Handle nvptx_expand_shared_addr.
11949 (nvptx_get_shared_red_addr): Add vector argument and handle large
11950 vectors.
11951 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
11952 large vectors.
11953 (nvptx_goacc_reduction_init): Likewise.
11954 (nvptx_goacc_reduction_fini): Likewise.
11955 (nvptx_goacc_reduction_teardown): Likewise.
11956 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
11957 init,fini,teardown}.
11958 (nvptx_init_axis_predicate): Initialize vector_red_partition.
11959 (nvptx_set_current_function): Init vector_red_partition.
11960 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
11961 (nvptx_red_partition): New insn.
11962 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
11963
11964 2019-01-07 Tom de Vries <tdevries@suse.de>
11965
11966 PR target/85381
11967 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
11968 empty loops.
11969
11970 2019-01-07 Tom de Vries <tdevries@suse.de>
11971
11972 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
11973 (nvptx_option_override): Init oacc_bcast_partition.
11974 (nvptx_init_oacc_workers): New function.
11975 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
11976 (nvptx_needs_shared_bcast): New function.
11977 (nvptx_find_par): Generalize to enable vectors to use shared-memory
11978 to propagate state.
11979 (nvptx_shared_propagate): Initialize vector bcast partition and
11980 synchronization state.
11981 (nvptx_single): Generalize to enable vectors to use shared-memory
11982 to propagate state.
11983 (nvptx_process_pars): Likewise.
11984 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
11985 * config/nvptx/nvptx.h (struct machine_function): Add
11986 bcast_partition and sync_bar members.
11987
11988 2019-01-07 Tom de Vries <tdevries@suse.de>
11989
11990 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
11991 (nvptx_apply_dim_limits): New function.
11992 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
11993 PTX_WARP_SIZE.
11994
11995 2019-01-07 Tom de Vries <tdevries@suse.de>
11996
11997 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
11998 as late as possible.
11999
12000 2019-01-07 Tom de Vries <tdevries@suse.de>
12001
12002 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
12003 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
12004 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
12005 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
12006 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
12007
12008 2019-01-07 Tom de Vries <tdevries@suse.de>
12009
12010 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
12011
12012 2019-01-07 Tom de Vries <tdevries@suse.de>
12013
12014 * omp-offload.c (oacc_get_min_dim): New function.
12015 * omp-offload.h (oacc_get_min_dim): Declare.
12016
12017 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
12018
12019 PR target/88521
12020 * config/i386/i386.c (function_value_ms_64): Return small sturct in
12021 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
12022
12023 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
12024
12025 PR tree-opt/86020
12026 Revert:
12027 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
12028
12029 * ipa-inline.c (edge_badness): Use inlined_time instead of
12030 inline_summaries->get.
12031
12032 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
12033
12034 * opts.c (enable_fdo_optimizations): Enable
12035 version-loops-for-strides, loop-interchange, unrol-and-jam
12036 and tree-loop-distribution.
12037 * invoke.texi: Document newly enabled options.
12038
12039 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
12040
12041 * doc/invoke.texi (max-inline-insns-small): New parameters.
12042 * ipa-inline.c (want_early_inline_function_p): simplify.
12043 (want_inline_small_function_p): Fix pasto from previous patch;
12044 use max-inline-insns-small bound.
12045 * params.def (max-inline-insns-small): New param.
12046 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
12047 variables correctly.
12048
12049 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
12050
12051 * doc/invoke.texi: Document max-inline-insns-size,
12052 uninlined-function-insns, uninlined-function-time,
12053 uninlined-thunk-insns and uninlined-thunk-time.
12054 * params.def: Add max-inline-insns-size,
12055 uninlined-function-insns, uninlined-function-time,
12056 uninlined-thunk-insns and uninlined-thunk-time.
12057 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
12058 new parameters.
12059 * ipa-inline.c (can_inline_edge_by_limits_p,
12060 want_inline_small_function_p): Use new parameters.
12061
12062 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
12063
12064 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
12065
12066 2019-01-05 Jakub Jelinek <jakub@redhat.com>
12067
12068 PR middle-end/82564
12069 PR target/88620
12070 * expr.c (expand_assignment): For calls returning VLA structures
12071 if to_rtx is not a MEM, force it into a stack temporary.
12072
12073 PR debug/88635
12074 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
12075 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
12076 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
12077 subexpressions of both operands.
12078 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
12079 subrtxes are CONSTANT_P.
12080 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
12081 2018-11-09 changes.
12082
12083 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
12084
12085 * params.def (hot-bb-count-ws-permille): Set to 990.
12086
12087 2019-01-04 Martin Sebor <msebor@redhat.com>
12088
12089 PR c/88546
12090 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
12091 leaf.
12092
12093 2019-01-04 Martin Sebor <msebor@redhat.com>
12094
12095 PR c/88363
12096 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
12097
12098 2019-01-04 Jakub Jelinek <jakub@redhat.com>
12099
12100 * gdbinit.in: Turn off pagination for the skip commands, restore
12101 it to previous state afterwards.
12102
12103 2019-01-04 Jakub Jelinek <jakub@redhat.com>
12104
12105 PR target/88594
12106 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
12107 of GET_MODE (opN) as modes of the libcall arguments.
12108
12109 2019-01-04 Jan Beulich <jbeulich@suse.com>
12110
12111 * config/i386/sse.md
12112 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
12113 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
12114 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
12115 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
12116 avx512f_vmcmp<mode>3<round_saeonly_name>,
12117 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
12118 avx512f_maskcmp<mode>3,
12119 <avx512>_cvt<ssemodesuffix>2mask<mode>,
12120 <avx512>_cvt<ssemodesuffix>2mask<mode>,
12121 *<avx512>_cvtmask2<ssemodesuffix><mode>,
12122 *<avx512>_cvtmask2<ssemodesuffix><mode>,
12123 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
12124 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
12125 <avx512>_gt<mode>3<mask_scalar_merge_name>,
12126 <avx512>_gt<mode>3<mask_scalar_merge_name>,
12127 <avx512>_testm<mode>3<mask_scalar_merge_name>,
12128 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
12129 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
12130 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
12131 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
12132 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
12133 avx512cd_maskb_vec_dup<mode>,
12134 avx512cd_maskw_vec_dup<mode>,
12135 avx512dq_fpclass<mode><mask_scalar_merge_name>,
12136 avx512dq_vmfpclass<mode>,
12137 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
12138 instead of =Yk.
12139
12140 2019-01-03 Martin Sebor <msebor@redhat.com>
12141
12142 PR tree-optimization/88659
12143 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
12144
12145 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
12146
12147 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
12148 unaligned vsx and avoid lxvd2x/stxvd2x.
12149 (gen_lvx_v4si_move): New function.
12150
12151 2019-01-03 Tom de Vries <tdevries@suse.de>
12152
12153 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
12154 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
12155 function.
12156 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
12157
12158 2019-01-03 Tom de Vries <tdevries@suse.de>
12159
12160 * config/nvptx/nvptx.c (struct offload_attrs): New.
12161 (populate_offload_attrs): New function. Factor mask extraction out of
12162 nvptx_reorg. Add extraction of dimensions.
12163 (nvptx_reorg): Use populate_offload_attrs.
12164
12165 2019-01-03 Tom de Vries <tdevries@suse.de>
12166
12167 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
12168 cases for oacc_min_dims_p and routine_p. Add asserts for
12169 oacc_default_dims_p and offload_region_p.
12170
12171 2019-01-03 Tom de Vries <tdevries@suse.de>
12172
12173 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
12174 factored out of ...
12175 (nvptx_goacc_validate_dims): ... here.
12176
12177 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
12178
12179 PR tree-optimization/85574
12180 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
12181 structure.
12182 (struct ssa_equip_hash_traits): Declare.
12183 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
12184
12185 2019-01-03 Jakub Jelinek <jakub@redhat.com>
12186
12187 PR debug/88644
12188 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
12189 change it to qualified_type.
12190
12191 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
12192
12193 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
12194 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
12195
12196 2019-01-02 Martin Sebor <msebor@redhat.com>
12197 Jeff Law <law@redhat.com>
12198
12199 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
12200 (get_range_strlen_tree): Update appropriately.
12201 (get_range_strlen)
12202 * gimple-fold.h (get_range_strlen): Drop unused last argument.
12203
12204 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
12205 rather than set_range_info.
12206 * tree-ssa-strlen.c (set_strlen_range): Extracted from
12207 maybe_set_strlen_range. Handle potentially boundary crossing
12208 cases more conservatively.
12209 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
12210 Call set_strlen_range.
12211 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
12212
12213 PR middle-end/88663
12214 * gimple-fold.c (get_range_strlen): Update prototype to no longer
12215 need the flexp argument.
12216 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
12217 from calls to get_range_strlen. Update comments. Just update
12218 VAL for an unterminated const char array and let the reset of the
12219 code handle it normally. No longer try to set *flexp. Adjust
12220 return value.
12221 (get_range_strlen): Update for the new get_range_strlen API.
12222 (get_maxval_strlen): Similarly.
12223 (gimple_fold_builtin_strlen): Handle update meaning of return value
12224 from get_range_strlen.
12225 * gimple-ssa-sprintf.c (get_string_length): Update for the new
12226 get_range_strlen API.
12227
12228 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
12229
12230 PR lto/88130
12231 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
12232 false at WPA time when body was removed.
12233
12234 2019-01-02 Martin Liska <mliska@suse.cz>
12235
12236 PR tree-optimization/88650
12237 * predict.c (set_even_probabilities): Calculate probability
12238 remainer only when really used.
12239
12240 2019-01-02 Richard Biener <rguenther@suse.de>
12241
12242 PR middle-end/88651
12243 * tree-data-ref.c (analyze_subscript_affine_affine): Use
12244 widest_ints when mangling max_stmt_execution results.
12245
12246 2019-01-02 Richard Biener <rguenther@suse.de>
12247
12248 PR tree-optimization/88621
12249 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
12250 bitfields when canoncalizing.
12251
12252 2019-01-02 Richard Biener <rguenther@suse.de>
12253
12254 PR target/87545
12255 * config/i386/x86-tune-costs.h (intel_cost): Adjust
12256 cost of cheap SSE instruction.
12257
12258 2019-01-02 Richard Biener <rguenther@suse.de>
12259
12260 PR ipa/85574
12261 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
12262 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
12263 function.
12264 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
12265 set after UIDs before splitting them.
12266
12267 2019-01-01 Martin Sebor <msebor@redhat.com>
12268 Jeff Law <law@redhat.com>
12269
12270 * gimple-fold.c (get_range_strlen_tree): Record if the computed
12271 length is optimistic. If it is, then arrange to compute the
12272 conservative length as well.
12273
12274 * gimple-fold.h (get_range_strlen): Update prototype.
12275 * builtins.c (check_access): Update call to get_range_strlen to use
12276 c_strlen_data pointer. Change various variable accesses to instead
12277 pull data from the c_strlen_data structure.
12278 (check_strncat_sizes, expand_builtin_strncat): Likewise.
12279 * calls.c (maybe_warn_nonstring_arg): Likewise.
12280 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
12281 minimum length if maximum lengh is unknown.
12282 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
12283 that used c_strlen, it's no longer needed. Restructure slightly.
12284 (format_string): Set unlikely range appropriately.
12285 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
12286 formatting issues.
12287 (get_range_strlen): Accept c_strlen_data pointer for external
12288 call sites as well. Pass through to call to internal get_range_strlen.
12289 Adjust minlen, maxlen and maxbound as needed.
12290 (get_maxval_strlen): Update comments.
12291 (gimple_fold_builtin_strlen): Update call to get_range_strlen
12292 to use c_strlen_data pointer. Change variable accesses to instead
12293 use c_strlen_data data members.
12294
12295 * gimple-fold.c (get_range_strlen): Update prototype.
12296 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
12297 local variables. Use pdata to return information to caller.
12298 Update calls to get_range_strlen. Update pdata->maxbound.
12299 (get_range_strlen -- static version): Similarly.
12300 (get_range_strlen -- extern version): Update for internal
12301 get_range_strlen API change. Convert to external data format.
12302 (get_maxval_strlen): Similarly.
12303
12304 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
12305
12306 * coverage.c (get_coverage_counts): Use current_function_decl.
12307 * profile.c (read_thunk_profile): New function.
12308 (branch_prob): Add THUNK parameter.
12309 * tree-profile.c (tree_profiling): Handle thunks.
12310 * value-prof.c (init_node_map): Handle thunks.
12311 * value-prof.h (branch_prob): Upate prototype.
12312 (read_thunk_profile): Declare.
12313
12314 2019-01-01 Jakub Jelinek <jakub@redhat.com>
12315
12316 Update copyright years.
12317
12318 * gcc.c (process_command): Update copyright notice dates.
12319 * gcov-dump.c (print_version): Ditto.
12320 * gcov.c (print_version): Ditto.
12321 * gcov-tool.c (print_version): Ditto.
12322 * gengtype.c (create_file): Ditto.
12323 * doc/cpp.texi: Bump @copying's copyright year.
12324 * doc/cppinternals.texi: Ditto.
12325 * doc/gcc.texi: Ditto.
12326 * doc/gccint.texi: Ditto.
12327 * doc/gcov.texi: Ditto.
12328 * doc/install.texi: Ditto.
12329 * doc/invoke.texi: Ditto.
12330 \f
12331 Copyright (C) 2019 Free Software Foundation, Inc.
12332
12333 Copying and distribution of this file, with or without modification,
12334 are permitted in any medium without royalty provided the copyright
12335 notice and this notice are preserved.