]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
fix ARM --with-fpu option checking and error message
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-06-20 Alexandre Oliva <oliva@adacore.com>
2
3 * config.gcc: Fix ARM --with-fpu checking and error message.
4
5 2019-06-19 Marek Polacek <polacek@redhat.com>
6
7 PR c++/60364 - noreturn after first decl not diagnosed.
8 * attribs.c (get_attribute_namespace): No longer static.
9 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
10 attributes.
11 (attr_noreturn_exclusions): Make it extern.
12 * attribs.h (get_attribute_namespace): Declare.
13 * tree-inline.c (function_attribute_inlinable_p): Use
14 get_attribute_name.
15
16 2019-06-19 Martin Sebor <msebor@redhat.com>
17
18 PR tree-optimization/90626
19 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
20
21 PR tree-optimization/90626
22 * tree-ssa-strlen.c (strxcmp_unequal): New function.
23 (handle_builtin_string_cmp): Call it.
24
25 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
26
27 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
28 and DARWIN_NOPIE_SPEC.
29 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
30 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
31 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
32 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
33 (DARWIN_EXPORT_DYNAMIC): Delete.
34 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
35 and pie options processing to darwin.h.
36 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
37
38 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
39
40 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
41 in computing the number of options to be moved.
42
43 2019-06-19 Maya Rashish <coypu@sdf.org>
44
45 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
46 (CLEAR_INSN_CACHE) Use it.
47
48 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
49
50 * config/i386/i386.md (cmpstrnsi): Remove dead code.
51
52 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
53
54 PR middle-end/84521
55 * builtins.c (expand_builtin_setjmp_setup): Save
56 hard_frame_pointer_rtx.
57 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
58 restore fp.
59 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
60 non-local goto.
61 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
62 elimination code.
63 (remove_reg_equal_offset_note): Remove unused function.
64 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
65 code.
66 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
67 (arc_builtin_setjmp_frame_value): Remove function.
68 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
69 (avr_builtin_setjmp_frame_value): Remove function.
70 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
71 (ix86_builtin_setjmp_frame_value): Remove function.
72 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
73 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
74 (sparc_builtin_setjmp_frame_value): Remove function.
75 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
76 (vax_builtin_setjmp_frame_value): Remove function.
77 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
78 pointer if has_nonlocal_label.
79
80 2019-06-19 Jakub Jelinek <jakub@redhat.com>
81
82 * doc/md.texi: Document vec_shl_<mode> pattern.
83 * optabs.def (vec_shl_optab): New optab.
84 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
85 argument, if == vec_shl_optab, check for left whole vector shift
86 pattern rather than right shift.
87 (expand_vec_perm_const): Add vec_shl_optab support.
88 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
89 in the comment.
90 * tree-vect-generic.c (lower_vec_perm): Support permutations which
91 can be handled by vec_shl_optab.
92 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
93 (check_scan_store): Use it.
94 (vectorizable_scan_store): If target can't do normal permutations,
95 try to use whole vector left shifts and if needed a VEC_COND_EXPR
96 after it.
97 * config/i386/sse.md (vec_shl_<mode>): New expander.
98
99 * omp-low.c (lower_rec_input_clauses): Handle references properly
100 in inscan clauses.
101 (lower_omp_scan): Likewise.
102
103 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
104
105 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
106 mem_mode is BLKmode.
107
108 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
109
110 PR target/90922
111 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
112 pointer adjustment for the case of no callee-saved registers and
113 stack frame bigger than 128 bytes.
114
115 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
116
117 PR middle-end/90862
118 * omp-low.c (check_omp_nesting_restrictions): Handle
119 GF_OMP_TARGET_KIND_OACC_DECLARE.
120
121 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
122
123 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
124 (@add<mode>3_carry): Rename from add<mode>3_carry.
125 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
126 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
127 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
128 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
129 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
130 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
131 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
132 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
133 (cmpstrnsi): Use gen_cmp_1.
134 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
135 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
136 (@umonitor_<mode>): Rename from umonitor_<mode>.
137 * config/i386/i386-expand.c (ix86_expand_copysign):
138 Use gen_copysign3_const and gen_copysign3_var.
139 (ix86_expand_xorsign): Use gen_xorsign3_1.
140 (ix86_expand_branch): Use gen_sub3_carry_ccc,
141 gen_sub3_carry_ccgz and gen_cmp1.
142 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
143 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
144 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
145 (ix86_split_lshr): Ditto.
146 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
147
148 2019-06-18 Jason Merrill <jason@redhat.com>
149
150 * tree.c (build_constructor): Add MEM_STAT_DECL.
151
152 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
153
154 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
155 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
156 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
157 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
158 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
159 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
160 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
161 Use CC_NZC instead of CC.
162 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
163 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
164 (aarch64_print_operand): Handle E_CC_NZCmode.
165 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
166 of gen_set_clobber_cc.
167
168 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
169
170 * config/aarch64/aarch64-sve.md: Tabify file.
171
172 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
173
174 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
175 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
176 * config/aarch64/aarch64-sve.md: Use it.
177
178 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
179
180 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
181 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
182 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
183 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
184 (aarch64_expand_sve_vec_cmp_int): Use it.
185 (aarch64_expand_sve_vec_cmp_float): Likewise.
186 * config/aarch64/aarch64-sve.md: Likewise throughout.
187
188 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
189
190 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
191 (*cond_<optab><mode>_z): Fold into...
192 (*cond_<optab><mode>_any): ...here. Also handle cases in which
193 operand 4 can be tied to operand 0 (either inherently or via RA).
194
195 2019-06-18 Richard Biener <rguenther@suse.de>
196
197 PR debug/90900
198 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
199 as if optimized away.
200
201 2019-06-18 Tom de Vries <tdevries@suse.de>
202
203 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
204 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
205 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
206 Rename to ...
207 (define_insn "@set_softstack_<mode>"): ... this.
208 (define_insn "omp_simt_enter_<mode>"): Rename to ...
209 (define_insn "@omp_simt_enter_<mode>"): ... this.
210 (define_insn "omp_simt_exit_<mode>"): Rename to ...
211 (define_insn "@omp_simt_exit_<mode>"): ... this.
212
213 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
214
215 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
216 vf parameter. Restore the previous iv step of nscalars_step,
217 but give it iv_type rather than compare_type. Tweak code order
218 to match the comments.
219 (vect_set_loop_condition_masked): Update accordingly.
220 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
221 for iv_precision. Tweak comment formatting.
222
223 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
224
225 * config/darwin.c: Strip trailing whitespace.
226
227 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
228
229 * config/darwin.c (darwin_emit_unwind_label): New default to false.
230 (darwin_override_options): Set darwin_emit_unwind_label as needed.
231
232 2019-06-18 Martin Jambor <mjambor@suse.cz>
233
234 PR ipa/90889
235 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
236 caller does not have flag_ipa_cp set.
237
238 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
239
240 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
241 from "*fold_left_plus_<mode>", updated operands order.
242 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
243 * internal-fn.c (mask_fold_left_direct): New define.
244 (expand_mask_fold_left_optab_fn): Likewise.
245 (direct_mask_fold_left_optab_supported_p): Likewise.
246 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
247 * optabs.def (mask_fold_left_plus_optab): New optab.
248 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
249 masked internal_fn for a reduction ifn.
250 (vectorize_fold_left_reduction): Add support for masking reductions.
251
252 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
253
254 PR middle-end/80791
255 * target.def (predict_doloop_p): New hook.
256 * targhooks.h (default_predict_doloop_p): New declaration.
257 * targhooks.c (default_predict_doloop_p): New function.
258 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
259 * doc/tm.texi: Regenerate.
260 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
261 (TARGET_PREDICT_DOLOOP_P): New macro.
262 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
263
264 2019-06-17 Jakub Jelinek <jakub@redhat.com>
265
266 * omp-low.c (struct omp_context): Add scan_inclusive field.
267 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
268 if inclusive scan.
269 (struct omplow_simd_context): Add lastlane member.
270 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
271 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
272 1 or 2 argument.
273 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
274 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
275 (lower_omp_scan): New function.
276 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
277 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
278 check 3rd argument if present rather than 2nd.
279 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
280 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
281 2-bit bitfield.
282 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
283 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
284 than 2nd.
285 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
286 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
287 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
288 init.
289 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
290 IFN_GOMP_SIMD_LANE argument.
291 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
292 encoded ->aux value.
293 * tree-vect-stmts.c: Include attribs.h.
294 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
295 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
296 functions.
297 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
298 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
299
300 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
301
302 PR target/62055
303 * config/i386/i386.md (*nabstf2_1): New insn pattern.
304 (*nabs<mode>2_1): Ditto.
305 (nabs sse-reg splitter): New splitter.
306 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
307
308 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
309
310 PR bootstrap/90873.
311 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
312 TMR index check.
313
314 2019-06-17 Tom de Vries <tdevries@suse.de>
315
316 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
317 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
318 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
319 ...
320 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
321 match_operand 0.
322 (define_insn "omp_simt_enter_insn"): Rename to ...
323 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
324 match_operand 0, 1 and 2, as well as the unspec_volatile result.
325 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
326 gen_omp_simt_enter_si.
327 (define_expand "omp_simt_exit"): New.
328 (define_insn "omp_simt_exit"): Rename to ...
329 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
330 match_operand 0.
331
332 2019-06-17 Matthew Green <mrg@eterna.com.au>
333 Maya Rashish <coypu@sdf.org>
334
335 * config.gcc (aarch64*-*-netbsd*): New target.
336 * config/aarch64/aarch64-netbsd.h: New file.
337 * config/aarch64/t-aarch64-netbsd: Likewise.
338
339 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
340
341 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
342 the access path from base to first VIEW_CONVERT_EXPR or
343 BIT_FIELD_REF.
344
345 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
346
347 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
348 access path on BIT_FIELD_REFs.
349
350 2019-06-17 Martin Liska <mliska@suse.cz>
351
352 PR ipa/90874
353 * ipa-utils.h (odr_type_p): Remove dead code.
354
355 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
356
357 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
358 alternative Solaris 11.4 format.
359 * configure: Regenerate.
360
361 2019-06-17 Tom de Vries <tdevries@suse.de>
362
363 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
364 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
365 match_operand 0.
366 (define_insn "call_value_insn"): Rename to ...
367 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
368 match_operand 0.
369 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
370 DI.
371
372 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
373
374 PR middle-end/64242
375 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
376 frame clobbers and schedule block.
377 (builtin_longjmp): Likewise.
378
379 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
380
381 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
382 describe how to perform MSPABI compliant 64-bit shift.
383 * config/msp430/msp430.md (ashldi3): New define_expand.
384 (ashrdi3): New define_expand.
385 (lshrdi3): New define_expand.
386
387 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
388
389 * doc/sourcebuild.texi: Document new effective target keyword
390 longlong64.
391
392 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
393
394 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
395 indirect_refs_may_alias_p): Revert accidental commits.
396
397 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
398 at the end of structures.
399
400 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
401
402 * config/darwin.c (machopic_indirect_call_target): Use renamed
403 darwin_picsymbol_stubs to decide on output.
404 (darwin_override_options): Handle darwin_picsymbol_stubs.
405 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
406 (LD64_VERSION): Revise default.
407 * config/darwin.opt: (mpic-symbol-stubs): New option.
408 (darwin_picsymbol_stubs): New variable.
409 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
410 rename to TARGET_MACHO_PICSYM_STUBS.
411 * config/i386/i386.c (output_pic_addr_const): Likewise.
412 * config/i386/i386.h Likewise.
413 * config/rs6000/darwin.h: Likewise.
414 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
415 darwin_picsymbol_stubs.
416
417 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
418
419 * config/darwin.opt (prebind, noprebind, seglinkedit,
420 noseglinkedit): Add RejectNegative.
421
422 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
423
424 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
425 in my previous patch.
426
427 2019-06-16 Tom de Vries <tdevries@suse.de>
428
429 PR tree-optimization/89376
430 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
431
432 2019-06-15 Maya Rashish <coypu@sdf.org>
433
434 * doc/invoke.texi (Spec Files): Update location of the
435 Fortran spec file.
436
437 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
438
439 * doc/extend.texi (Common Function Attributes): Clarify
440 no_sanitize. Fix grammar.
441
442 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
443
444 * tree-ssa-alias.c (alias_stats): Add
445 nonoverlapping_component_refs_p_may_alias,
446 nonoverlapping_component_refs_p_no_alias,
447 nonoverlapping_component_refs_of_decl_p_may_alias,
448 nonoverlapping_component_refs_of_decl_p_no_alias.
449 (dump_alias_stats): Dump them.
450 (nonoverlapping_component_refs_of_decl_p): Add stats.
451 (nonoverlapping_component_refs_p): Add stats; do not stop on first
452 ARRAY_REF.
453
454 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
455
456 * config/i386/i386.md (and<mode>3): Generate zero-extends for
457 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
458 only.
459 (*anddi3_doubleword): Split before reload. Merge with
460 anddi->zext pre-reload splitter.
461 (*andndi3_doubleword): Split before reload.
462 (*<code>di3_doubleword): Ditto.
463 (*one_cmpldi2_doubleword): Ditto.
464
465 2019-06-15 Jakub Jelinek <jakub@redhat.com>
466
467 PR middle-end/90779
468 * gimplify.c: Include omp-offload.h and context.h.
469 (gimplify_bind_expr): Add "omp declare target" attributes
470 to static block scope variables inside of target region or target
471 functions.
472
473 2019-06-15 Tom de Vries <tdevries@suse.de>
474
475 PR tree-optimization/90009
476 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
477 Return NULL if bb contains IFN_UNIQUE.
478
479 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
480
481 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
482 (un): New define_mode_attr.
483 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
484 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
485 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
486 merge into ...
487 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
488
489 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
490
491 * config/darwin.opt: Add RejectNegative where needed, reorder
492 and add minimal functional descriptions.
493
494 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
495
496 PR rtl-optimization/90765
497 * calls.c (update_stack_alignment_for_call): New function.
498 (expand_call): Call update_stack_alignment_for_call when
499 outgoing parameter is passed in the stack.
500 (emit_library_call_value_1): Likewise.
501 * function.c (locate_and_pad_parm): Don't update
502 stack_alignment_needed and preferred_stack_boundary.
503
504 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
505
506 PR target/90877
507 * config/i386/i386-features.c
508 (dimode_scalar_chain::compute_convert_gain): Replace
509 mmxsse_to_integer with sse_to_integer.
510 * config/i386/i386.c (ix86_register_move_cost): Verify that
511 moves between MMX and non-MMX units require secondary memory.
512 Correct costs of moves between SSE and integer units.
513 * config/i386/i386.h (processor_costs): Rename cost of moving
514 SSE register to integer to sse_to_integer. Rename cost of
515
516 2019-06-14 Matt Thomas <matt@3am-software.com>
517 Matthew Green <mrg@eterna.com.au>
518 Nick Hudson <skrll@netbsd.org>
519 Maya Rashish <coypu@sdf.org>
520 Richard Earnshaw <rearnsha@arm.com>
521
522 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
523 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
524 * config/arm/netbsd-eabi.h: New file.
525 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
526 redefining.
527 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
528 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
529 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
530 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
531
532 2019-06-14 Richard Biener <rguenther@suse.de>
533
534 * tree-loop-distribution.c (classify_partition): Return
535 whether a reduction appeared in all partitions and do not
536 stop builtin detection because of this.
537 (distribute_loop): Sort a non-builtin partition last if
538 there's a reduction in all partitions and make sure the
539 partition prevailing as last is not a builtin.
540
541 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
542
543 PR ipa/90401
544 * ipa-prop.c (add_to_agg_contents_list): New function.
545 (clobber_by_agg_contents_list_p): Likewise.
546 (extract_mem_content): Likewise.
547 (get_place_in_agg_contents_list): Delete.
548 (determine_known_aggregate_parts): Renamed from
549 determine_locally_known_aggregate_parts. New parameter
550 aa_walk_budget_p.
551
552 2019-06-13 Martin Sebor <msebor@redhat.com>
553
554 PR tree-optimization/90662
555 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
556 to the same type.
557
558 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
559
560 PR bootstrap/90873
561 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
562 dbase is not TARGET_MEM_REF.
563
564 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
565
566 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
567 Update all uses.
568 (and<mode>3): Use gen_extend_insn instead of indirect functions.
569 Do not generate DImode extends for 32bit targets.
570 (and->zext post-reload splitter): Use gen_extend_insn
571 instead of indirect functions.
572 (anddi->zext pre-reload splitter): New.
573 (*zext<mode>_doubleword_and): Remove.
574 (*zext<mode>_doubleword): Ditto.
575 (*zextsi_doubleword): Dittto.
576
577 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
578
579 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
580 Use gen_sub3_insn instead of indirect function.
581 (ix86_expand_ashl_const): Use gen_add2_insn instead of
582 indirect function.
583 (ix86_adjust_counter): Ditto.
584
585 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
586 Lijia He <helijia@linux.ibm.com>
587
588 PR tree-optimization/77820
589 * tree-ssa-threadedge.c
590 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
591 function.
592 (thread_across_edge): Add call to
593 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
594
595 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
596
597 * config/darwin-driver.c (validate_macosx_version_min): New.
598 (darwin_default_min_version): Cleanup and validate supplied version.
599 (darwin_driver_init): Likewise and push cleaned version into opts.
600
601 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
602
603 PR tree-optimization/90869
604 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
605 converts in MEM_REF referencing decl rather than view converts
606 from decl type to MEM_REF type.
607
608 2019-06-13 Richard Biener <rguenther@suse.de>
609
610 PR tree-optimization/90856
611 * tree-sra.c (build_ref_for_model): Only use
612 build_reconstructed_reference when address-spaces are the same.
613
614 2019-06-13 Jakub Jelinek <jakub@redhat.com>
615
616 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
617 wrap ei variable name in the declaration in ()s.
618 (nvptx_single): Actually use mode_label variable. Formatting fix.
619
620 2019-06-13 Richard Biener <rguenther@suse.de>
621
622 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
623 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
624 also return the condition stmt.
625 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
626 loop we can version and version that, reusing the loop version
627 created by if-conversion instead of versioning again.
628
629 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
630
631 * gimple-loop-versioning.cc (prune_loop_conditions): Use
632 may_contain_p.
633 * tree-vrp (value_range_base::may_contain_p): Call into
634 value_inside_range.
635 (value_inside_range): Make private inside value_range_base class.
636 Take min/max from *this.
637 (range_includes_p): Remove.
638 * tree-vrp.h (value_range_base): Add value_inside_range.
639 (range_includes_p): Remove.
640 (range_includes_zero_p): Call may_contain_p.
641 * vr-values.c (compare_range_with_value): Same.
642
643 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
644
645 * doc/extend.texi (ARC Function Attributes): Update info.
646
647 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
648
649 PR tree-optimization/89713
650 * doc/invoke.texi (-ffinite-loops): Document new option.
651 * common.opt (-ffinite-loops): New option.
652 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
653 IFN_GOACC_LOOP calls as necessary.
654 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
655 is finite.
656 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
657 IFN_GOACC_LOOP call is not used.
658 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
659
660 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
661
662 PR target/88838
663 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
664 compare_type is not with Pmode size, we will create an IV with
665 Pmode size with truncated use (i.e. converted to the correct type).
666 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
667 (vect_iv_limit_for_full_masking): New. Factored out of
668 vect_set_loop_condition_masked.
669 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
670 (vect_iv_limit_for_full_masking): Declare.
671
672 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
673
674 PR target/88834
675 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
676 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
677 (get_alias_ptr_type_for_ptr_address): Likewise.
678 (add_iv_candidate_for_use): Add scaled index candidate if useful.
679 * tree-ssa-address.c (preferred_mem_scale_factor): New.
680 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
681 allow_reg_index_p.
682
683 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
684
685 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
686
687 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
688
689 * common/config/pru/pru-common.c: New file.
690 * config.gcc: Add PRU target.
691 * config/pru/alu-zext.md: New file.
692 * config/pru/constraints.md: New file.
693 * config/pru/predicates.md: New file.
694 * config/pru/pru-opts.h: New file.
695 * config/pru/pru-passes.c: New file.
696 * config/pru/pru-pragma.c: New file.
697 * config/pru/pru-protos.h: New file.
698 * config/pru/pru.c: New file.
699 * config/pru/pru.h: New file.
700 * config/pru/pru.md: New file.
701 * config/pru/pru.opt: New file.
702 * config/pru/t-pru: New file.
703 * doc/extend.texi: Document PRU pragmas.
704 * doc/invoke.texi: Document PRU-specific options.
705 * doc/md.texi: Document PRU asm constraints.
706
707 2019-06-12 Martin Sebor <msebor@redhat.com>
708
709 PR middle-end/90676
710 * tree-pretty-print.c (dump_mem_ref): New function. Include
711 MEM_REF type in output when different size than operand.
712 (dump_generic_node): Move code to dump_mem_ref and call it.
713
714 2019-06-12 Martin Sebor <msebor@redhat.com>
715
716 PR tree-optimization/90662
717 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
718 to arrays.
719
720 2019-06-12 Tom de Vries <tdevries@suse.de>
721
722 PR tree-optimization/90009
723 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
724
725 2019-06-12 Martin Liska <mliska@suse.cz>
726
727 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
728 the created map.
729 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
730 * mem-stats.h (mem_alloc_description::mem_alloc_description):
731 Do not sanitize created maps.
732
733 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
734
735 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
736 value_range::singleton_p.
737 * tree-vrp.c (value_range_constant_singleton): Remove.
738 * tree-vrp.h (value_range_constant_singleton): Remove.
739 * vr-values.c (vr_values::singleton): Use
740 value_range::singleton_p.
741
742 2019-06-12 Jakub Jelinek <jakub@redhat.com>
743
744 PR target/90811
745 * cfgexpand.c (align_local_variable): Add really_expand argument,
746 don't SET_DECL_ALIGN if it is false.
747 (add_stack_var): Add really_expand argument, pass it through to
748 align_local_variable.
749 (expand_one_stack_var_1): Pass true as really_expand to
750 align_local_variable.
751 (expand_one_ssa_partition): Pass true as really_expand to
752 add_stack_var.
753 (expand_one_var): Pass really_expand through to add_stack_var.
754
755 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
756
757 * config/arm/iterators.md (VABAL): New int iterator.
758 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
759 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U
760 values.
761
762 2019-06-12 Martin Liska <mliska@suse.cz>
763
764 * value-prof.c (stream_out_histogram_value): Only first value
765 can't be negative.
766
767 2019-06-12 Jakub Jelinek <jakub@redhat.com>
768
769 PR c/90760
770 * symtab.c (symtab_node::set_section): Allow being called on aliases
771 as long as they aren't analyzed yet.
772
773 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
774
775 * config/mips/mips.c (mips_final_postscan_insn): Modify call
776 to `mips_set_text_contents_type' to indicate whether a
777 non-debug insn follows.
778
779 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
780
781 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
782 enabling -mpcrel by default.
783 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
784 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
785 that the test against -mcpu=future is done first. Then test if
786 -mprefixed-addr is on for -mpcrel.
787 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
788
789 2019-06-11 Jakub Jelinek <jakub@redhat.com>
790
791 PR target/90811
792 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
793 instead of and.u%d.
794
795 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
796
797 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
798
799 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
800
801 PR c++/90449 - add -Winaccessible-base option.
802 * doc/invoke.texi (Winaccessible-base): Document.
803
804 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
805
806 PR tree-optimization/62041
807 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
808
809 2019-06-11 Jason Merrill <jason@redhat.com>
810
811 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
812 * tree.c (get_tree_code_name): Likewise.
813 * print-tree.c (print_node): Only briefly print a node with an
814 invalid code.
815
816 2019-06-11 Jakub Jelinek <jakub@redhat.com>
817
818 PR bootstrap/90819
819 * trans-mem.c (tm_memopt_compute_available): Add assertion
820 that blocks is not empty. Formatting fix.
821
822 2019-06-11 Martin Liska <mliska@suse.cz>
823
824 PR c++/87847
825 * hash-table.h: Extend create_gcc, add one parameter
826 that is passed into hash_table::hash_table.
827
828 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
829
830 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
831 New prototype.
832 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
833 Emit clobber also for non-sse operations.
834 (ix86_split_fp_absneg_operator): New function.
835 * config/i386/i386.md (SSEMODEF): New mode iterator.
836 (ssevecmodef): New mode attribute.
837 (<code>tf2): Use absneg code iterator.
838 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
839 Add three-operand AVX alternatives.
840 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
841 Use absneg code iterator and X87MODEF mode iterator.
842 (absneg fp_reg non-sse splitter): Call absneg code iterator
843 and X87MODEF mode iterator.
844 (absneg general_reg non-sse splitter): Use absneg code iterator
845 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
846 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
847 code iterator. Add three-operand AVX alternative.
848 (absneg sse_reg splitter): Use absneg code iterator
849 and SSEMODEF mode iterator. Handle AVX operands.
850 (absneg fp_reg splitter): Use absneg code iterator
851 and MODEF mode iterator.
852 (absneg general_reg splitter): Merge splitters using MODEF mode
853 iterator. Use absneg code iterator. Call
854 ix86_split_fp_absneg_operator.
855 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
856 Do not enable for non-sse modes before reload.
857 (CSGNMODE): Remove.
858 (CSGNVMODE): Ditto.
859 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
860 ssevecmodef mode attribute instaed of CSGNVMODE.
861 (copysign<mode>3_const): Ditto.
862 (copysign<mode>3_var): Ditto.
863 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
864 Use absneg code iterator. Simplify code using std::swap.
865 * config/i386/predicates.md (absneg_operator): Remove.
866
867 2019-06-10 Martin Sebor <msebor@redhat.com>
868
869 * gimple-fold.c (get_range_strlen): Update comment that didn't
870 make it into r267503 or related commits.
871
872 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
873
874 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
875 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
876
877 2019-06-10 Jakub Jelinek <jakub@redhat.com>
878
879 * tree.def (OMP_SCAN): New tree code.
880 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
881 OMP_CLAUSE_EXCLUSIVE.
882 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
883 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
884 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
885 OMP_CLAUSE_{IN,EX}CLUSIVE.
886 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
887 * tree-nested.c (convert_nonlocal_reference_stmt,
888 convert_local_reference_stmt, convert_gimple_call): Handle
889 GIMPLE_OMP_SCAN.
890 * tree-pretty-print.c (dump_omp_clause): Handle
891 OMP_CLAUSE_{IN,EX}CLUSIVE.
892 (dump_generic_node): Handle OMP_SCAN.
893 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
894 * gimple.h (gomp_scan): New type.
895 (is_a_helper <gomp_scan *>::test,
896 is_a_helper <const gomp_scan *>::test): New templates.
897 (gimple_build_omp_scan): Declare.
898 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
899 gimple_omp_scan_set_clauses): New inline functions.
900 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
901 * gimple.c (gimple_build_omp_scan): New function.
902 (gimple_copy): Handle GIMPLE_OMP_SCAN.
903 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
904 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
905 GIMPLE_OMP_TASKGROUP.
906 (dump_gimple_omp_scan): New function.
907 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
908 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
909 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
910 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
911 (is_gimple_stmt): Handle OMP_SCAN.
912 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
913 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
914 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
915 mentioned in nested #pragma omp scan. Handle
916 OMP_CLAUSE_{IN,EX}CLUSIVE.
917 (gimplify_expr): Handle OMP_SCAN.
918 * omp-low.c (check_omp_nesting_restrictions): For parent context,
919 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
920 simd constructs.
921 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
922 GIMPLE_OMP_SCAN.
923
924 2019-06-10 Martin Liska <mliska@suse.cz>
925
926 * ipa-cp.c (ignore_edge_p): New function.
927 (build_toporder_info): Use it.
928 * ipa-inline.c (ignore_edge_p): New function.
929 (inline_small_functions): Use it.
930 * ipa-pure-const.c (ignore_edge_for_nothrow):
931 Verify opt_for_fn for caller and callee.
932 (ignore_edge_for_pure_const): Likewise.
933 * ipa-reference.c (ignore_edge_p): Extend to check
934 for opt_for_fn.
935 * ipa-utils.c (searchc): Refactor.
936 * ipa-utils.h: Fix coding style.
937
938 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
939
940 * config/arc/arc.c (arc_rtx_costs): Update costs.
941
942 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
943
944 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
945 (arc_split_ior): Likewise.
946 (arc_check_mov_const): Likewise.
947 (arc_split_mov_const): Likewise.
948 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
949 (arc_rtx_costs): Replace check Crr with Cax constraint.
950 (prepare_move_operands): Cleanup, remove unused code.
951 (arc_split_ior): New function.
952 (arc_check_ior_const): Likewise.
953 (arc_split_mov_const): Likewise.
954 (arc_check_mov_const): Likewise.
955 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
956 in define_insn_and_split pattern.
957 (iorsi3): Likewise.
958 (mulsi3_v2): Add new matching variant.
959 (andsi3_i): Cleanup pattern.
960 (rotrsi3_cnt1): Update pattern.
961 (rotrsi3_cnt8): New pattern.
962 (ashlsi2_cnt8): Likewise.
963 (ashlsi2_cnt16): Likewise.
964 * config/arc/constraints.md (C0p): Update constraint.
965 (Crr): Remove it.
966 (C0x): New pattern.
967 (Cax): New pattern.
968
969 2019-06-10 Martin Liska <mliska@suse.cz>
970
971 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
972 Update coding style.
973 (sem_item_optimizer::dump_cong_classes):
974 Print how many items are in a non-singular class. Improve
975 coding style.
976
977 2019-06-10 Martin Liska <mliska@suse.cz>
978
979 * value-prof.c (dump_histogram_value): Change dump format.
980 (gimple_mod_subtract_transform): Remove legacy comment.
981
982 2019-06-10 Martin Liska <mliska@suse.cz>
983
984 * value-prof.c (dump_histogram_value): Print histogram values
985 only if present.
986
987 2019-06-10 Martin Liska <mliska@suse.cz>
988
989 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
990 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
991 * ipa-profile.c (ipa_profile_generate_summary):
992 Use get_most_common_single_value.
993 * tree-profile.c (gimple_init_gcov_profiler):
994 Instrument with __gcov_one_value_profiler_v2
995 and __gcov_indirect_call_profiler_v4.
996 * value-prof.c (dump_histogram_value):
997 Print all values for HIST_TYPE_SINGLE_VALUE.
998 (stream_out_histogram_value): Update assert for
999 N values.
1000 (stream_in_histogram_value): Set number of
1001 counters for HIST_TYPE_SINGLE_VALUE.
1002 (get_most_common_single_value): New.
1003 (gimple_divmod_fixed_value_transform):
1004 Use get_most_common_single_value.
1005 (gimple_ic_transform): Likewise.
1006 (gimple_stringops_transform): Likewise.
1007 (gimple_find_values_to_profile): Set number
1008 of counters for HIST_TYPE_SINGLE_VALUE.
1009 * value-prof.h (get_most_common_single_value):
1010 New.
1011
1012 2019-06-10 Martin Liska <mliska@suse.cz>
1013
1014 * hash-map.h: Pass default value to hash_table ctor.
1015 * hash-table.h: Add default value to call of a ctor.
1016
1017 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
1018
1019 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
1020 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
1021
1022 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
1023
1024 PR target/90751
1025 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
1026 Call pa_output_function_label.
1027 (TARGET_ASM_FUNCTION_PROLOGUE): define.
1028 * config/pa/pa-protos.h (pa_output_function_label): Declare.
1029 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
1030 to declaration.
1031 (pa_linux_output_function_prologue): Declare.
1032 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
1033 (pa_output_function_label): New.
1034 (pa_output_function_prologue): Revise to use pa_output_function_label.
1035 (pa_linux_output_function_prologue): New.
1036 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
1037
1038 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
1039
1040 * tree-vrp.h (value_range_base::intersect): New.
1041 (value_range::intersect_helper): Move from here...
1042 (value_range_base::intersect_helper): ...to here.
1043 * tree-vrp.c (value_range::intersect_helper): Rename to...
1044 (value_range_base::intersect_helper): ...this, and rewrite to
1045 return a value instead of modifying THIS in place.
1046 Also, move equivalence handling...
1047 (value_range::intersect): ...here, while calling intersect_helper.
1048 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
1049 calling intersect.
1050 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
1051 Same.
1052 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
1053
1054 2019-06-07 Jakub Jelinek <jakub@redhat.com>
1055
1056 * Makefile.in (genprogerr): Add condmd.
1057 (genprog): Remove it here.
1058
1059 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
1060
1061 * doc/invoke.texi (AMD GCN Options): Add gfx906.
1062
1063 2019-06-07 Richard Biener <rguenther@suse.de>
1064
1065 PR debug/90574
1066 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
1067 that appear after user labels.
1068
1069 2019-06-07 Martin Liska <mliska@suse.cz>
1070
1071 * cselib.c (cselib_init): Disable hash table
1072 sanitization.
1073 * hash-set.h: Pass new default argument to m_table.
1074 * hash-table.c: Add global variable with hash table
1075 sanitization limit.
1076 * hash-table.h (Allocator>::hash_table): Add new argument
1077 to ctor.
1078 (hashtab_chk_error): New.
1079 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
1080 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
1081 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
1082
1083 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
1084
1085 * common.opt (flto-odr-type-merging): Ignore.
1086 * invoke.texi (-flto-odr-type-merging): Remove.
1087 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
1088 (can_be_vtable_hashed_p): Remove.
1089 (hash_odr_vtable): Remove.
1090 (odr_vtable_hasher::hash): Remove.
1091 (types_same_for_odr): Remove.
1092 (types_odr_comparable): Remove.
1093 (odr_vtable_hasher::equal): Remove.
1094 (odr_vtable_hash_type, odr_vtable_hash): Remove.
1095 (add_type_duplicate): Do not synchronize vtable and name hashtables.
1096 (get_odr_type): Do not use vtable hash.
1097 (dump_odr_type): Remove commented out code.
1098 (build_type_inheritance_graph): Do not allocate vtable hash.
1099 (rebuild_type_inheritance_graph): Do not delete vtable hash.
1100 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
1101 (odr_type_p): Likewise.
1102 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
1103 test.
1104
1105 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
1106
1107 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
1108 immediately after same_types_for_tbaa_p returns -1 and continue
1109 looking for possible exact match; if matching types are arrays
1110 watch for partial overlaps.
1111 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
1112 (indirect_refs_may_alias_p): Do type based disambiguation first;
1113 update comment.
1114
1115 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
1116
1117 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
1118
1119 2019-06-07 Martin Liska <mliska@suse.cz>
1120
1121 * doc/invoke.texi: Remove param.
1122 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
1123 Remove.
1124 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
1125 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
1126 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
1127 * profile.c (instrument_values): Remove
1128 HIST_TYPE_INDIR_CALL_TOPN.
1129 * tree-profile.c (init_ic_make_global_vars):
1130 Always build __gcov_indirect_call only.
1131 (gimple_init_gcov_profiler): Remove usage
1132 of PARAM_INDIR_CALL_TOPN_PROFILE.
1133 (gimple_gen_ic_profiler): Likewise.
1134 * value-prof.c (dump_histogram_value): Likewise.
1135 (stream_in_histogram_value): Likewise.
1136 (gimple_indirect_call_to_profile): Likewise.
1137 (gimple_find_values_to_profile): Likewise.
1138 * value-prof.h (enum hist_type): Likewise.
1139
1140 2019-06-07 Martin Liska <mliska@suse.cz>
1141
1142 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
1143 function.
1144
1145 2019-06-07 Martin Liska <mliska@suse.cz>
1146
1147 PR tree-optimization/78902
1148 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
1149 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
1150 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
1151 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
1152 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
1153 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
1154 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
1155 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
1156 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
1157 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
1158 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
1159 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
1160 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
1161 New.
1162 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
1163 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
1164 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
1165 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
1166 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
1167 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
1168 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
1169 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
1170 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
1171 warn_unused_result attribute.
1172 (BUILT_IN_STRDUP): Likewise.
1173 (BUILT_IN_STRNDUP): Likewise.
1174 (BUILT_IN_ALLOCA): Likewise.
1175 (BUILT_IN_CALLOC): Likewise.
1176 (BUILT_IN_MALLOC): Likewise.
1177 (BUILT_IN_REALLOC): Likewise.
1178
1179 2019-06-06 Jim Wilson <jimw@sifive.com>
1180
1181 PR target/89955
1182 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
1183 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
1184 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
1185
1186 2019-06-06 Martin Sebor <msebor@redhat.com>
1187
1188 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
1189 (handle_builtin_malloc): Remove trailing spaces.
1190 (handle_builtin_memset): Same.
1191 (handle_builtin_memcmp): Same.
1192 (compute_string_length): Same.
1193 (determine_min_objsize): Same.
1194 (handle_builtin_string_cmp): Same.
1195 (handle_char_store): Same. Break up excessively long line.
1196
1197 2019-06-06 Martin Jambor <mjambor@suse.cz>
1198
1199 * tree-sra.c (build_reconstructed_reference): Drop the alignment
1200 check.
1201
1202 2019-06-06 Martin Jambor <mjambor@suse.cz>
1203
1204 * tree-sra.c (struct access): New field grp_same_access_path.
1205 (dump_access): Dump it.
1206 (build_reconstructed_reference): New function.
1207 (build_ref_for_model): Use it if possible.
1208 (path_comparable_for_same_access): New function.
1209 (same_access_path_p): Likewise.
1210 (sort_and_splice_var_accesses): Set the new flag.
1211 (analyze_access_subtree): Likewise.
1212 (propagate_subaccesses_across_link): Propagate zero value of the new
1213 flag down the access tree.
1214
1215 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
1216
1217 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
1218 * config/gcn/gcn.opt (gpu_type): Add gfx906.
1219 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
1220 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
1221 Add gfx906.
1222
1223 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1224
1225 PR tree-optimization/90332
1226 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
1227 Handle VALS containing two vectors.
1228 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
1229 to...
1230 (@aarch64_combinez<mode>): ... This.
1231 (*aarch64_combinez_be<mode>): Rename to...
1232 (@aarch64_combinez_be<mode>): ... This.
1233 (vec_init<mode><Vhalf>): New define_expand.
1234 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
1235
1236 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1237
1238 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
1239 library functions only when not optimizing for size.
1240 (ashlsi3): Likewise.
1241 (ashrhi3): Likewise.
1242 (ashrsi3): Likewise.
1243 (lshrhi3): Likewise.
1244 (lshrsi3): Likewise.
1245
1246 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
1247
1248 PR rtl-optimization/88751
1249 * ira.c (ira): Use the number of the actually referenced registers
1250 when calculating the threshold.
1251
1252 2019-06-06 Jakub Jelinek <jakub@redhat.com>
1253
1254 * configure: Regenerate.
1255
1256 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1257
1258 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
1259 register if it is in memory, so the shift can be emulated with a rotate
1260 instruction.
1261 (ashrhi3): Likewise.
1262 (lshrhi3): Likewise.
1263
1264 2019-06-06 Martin Liska <mliska@suse.cz>
1265
1266 PR tree-optimization/87954
1267 * match.pd: Simplify mult where both arguments are 0 or 1.
1268
1269 2019-06-06 Richard Biener <rguenther@suse.de>
1270
1271 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
1272 put equivalences on UNDEFINED ranges.
1273 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
1274 Make sure to drop defs of stmts added during simplification
1275 to VARYING.
1276
1277 2019-06-06 Richard Biener <rguenther@suse.de>
1278
1279 * tree-ssa-structalias.c: Include tree-cfg.h.
1280 (make_heapvar): Do not make heap vars artificial.
1281 (find_func_aliases_for_builtin_call): Handle stack allocation
1282 functions.
1283 (find_func_aliases): Delay processing of simple enough returns
1284 in non-IPA mode.
1285 (set_uids_in_ptset): Adjust.
1286 (find_what_var_points_to): Likewise.
1287 (solve_constraints): Do not dump points-to sets here.
1288 (compute_points_to_sets): Post-process return statements,
1289 amending the escaped solution. Dump points-to sets afterwards.
1290 (ipa_pta_execute): Dump points-to sets.
1291
1292 2019-06-06 Martin Liska <mliska@suse.cz>
1293
1294 PR web/87933
1295 * doc/install.texi: Fix HTML headers and
1296 titles for 'Installing GCC' pages.
1297
1298 2019-06-06 Martin Liska <mliska@suse.cz>
1299
1300 * ipa-icf-gimple.h (dump_message_1): Remove.
1301 (dump_message): Likewise.
1302 (return_false_with_message_1): Print also file.
1303 (return_false_with_msg): Likewise.
1304 (return_with_result): Likewise.
1305 (return_with_debug): Likewise.
1306 * ipa-icf.c (sem_function::equals_private): Remove call
1307 to dump_message.
1308
1309 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
1310
1311 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
1312 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
1313 memory operand for it.
1314 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
1315
1316 2019-06-05 Martin Sebor <msebor@redhat.com>
1317
1318 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
1319 Adjust quoting and hyphenation.
1320 * convert.c (convert_to_real_1): Same.
1321 * gcc.c (driver_wrong_lang_callback): Same.
1322 (driver::handle_unrecognized_options): Same.
1323 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
1324 * opts-common.c (cmdline_handle_error): Same.
1325 (read_cmdline_option): Same.
1326 * opts-global.c (complain_wrong_lang): Same.
1327 (print_ignored_options): Same.
1328 (handle_common_deferred_options): Same.
1329 * pretty-print.h: Same.
1330 * print-rtl.c (debug_bb_n_slim): Same.
1331 * sched-rgn.c (make_pass_sched_fusion): Same.
1332 * tree-cfg.c (verify_gimple_assign_unary): Same.
1333 (verify_gimple_label): Same.
1334 * tree-ssa-operands.c (verify_ssa_operands): Same.
1335 * varasm.c (do_assemble_alias): Same.
1336 (assemble_alias): Same.
1337
1338 2019-06-05 Richard Henderson <rth@twiddle.net>
1339
1340 * config/alpha/alpha.c (direct_return): Move down after
1341 struct machine_function definition; use saved frame_size;
1342 return bool.
1343 (struct machine_function): Add sa_mask, sa_size, frame_size.
1344 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
1345 (alpha_compute_frame_layout): ... new function.
1346 (TARGET_COMPUTE_FRAME_LAYOUT): New.
1347 (alpha_initial_elimination_offset): Use saved sa_size.
1348 (alpha_vms_initial_elimination_offset): Likewise.
1349 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
1350 (alpha_expand_prologue): Use saved frame data. Merge integer
1351 and fp register save loops.
1352 (alpha_expand_epilogue): Likewise.
1353 (alpha_start_function): Use saved frame data.
1354 * config/alpha/alpha-protos.h (direct_return): Update.
1355 (alpha_sa_size): Remove.
1356
1357 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
1358
1359 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
1360 multiplication by a power-of-two value.
1361 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
1362 and turn the modulo operation into a masking operation.
1363
1364 2019-06-05 Jakub Jelinek <jakub@redhat.com>
1365
1366 PR debug/90733
1367 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
1368 with VOIDmode inner operands.
1369
1370 2019-06-05 Richard Biener <rguenther@suse.de>
1371
1372 PR middle-end/90726
1373 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
1374 turn an expression graph into a tree.
1375
1376 2019-06-05 Jakub Jelinek <jakub@redhat.com>
1377
1378 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
1379 member.
1380 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
1381 treat it like explicit monotonic schedule modifier.
1382 (expand_omp_for): Initialize has_lastprivate_conditional.
1383 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
1384 schedule modifier.
1385
1386 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
1387 references, lookup in in hash map MEM_REF operand instead of the
1388 MEM_REF itself.
1389 (lower_omp_1): When looking for lastprivate conditional assignments,
1390 handle MEM_REFs with REFERENCE_TYPE operands.
1391
1392 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
1393 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
1394 and references a VLA. Handle references to non-VLAs if is_simd
1395 all privatization clauses like reductions.
1396 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
1397 If omp_is_reference, use always omp simd arrays and set
1398 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
1399 fails, emit reference initialization.
1400
1401 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
1402
1403 PR target/89803
1404 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
1405 _mm_mask_fpclass_sd_mask): New intrinsics.
1406 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
1407 * config/i386/i386-builtin.def
1408 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
1409 New builtins.
1410 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
1411 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
1412 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
1413 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
1414 case QI_FTYPE_V2SF_INT): Ditto.
1415 * config/i386/sse.md
1416 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
1417 Extended to insnstructions with mask operands.
1418
1419 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1420
1421 * config/rs6000/constraints.md (define_register_constraint "wp"):
1422 Delete.
1423 (define_register_constraint "wq"): Delete.
1424 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1425 (rs6000_init_hard_regno_mode_ok): Adjust.
1426 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1427 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
1428 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
1429 (define_mode_attr VSa): Delete.
1430 (define_mode_attr VSisa): New.
1431 (rest of file): Adjust.
1432 * doc/md.texi (Machine Constraints): Adjust.
1433
1434 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1435
1436 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
1437 (define_attr "enabled"): Handle those new isa values.
1438
1439 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1440
1441 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
1442 (define_mode_attr VSr5): Delete.
1443 (define_mode_attr VStype_sqrt): Delete.
1444 (define_mode_iterator VSX_SPDP): Delete.
1445 (define_mode_attr VS_spdp_res): Delete.
1446 (define_mode_attr VS_spdp_insn): Delete.
1447 (define_mode_attr VS_spdp_type): Delete.
1448 (*vsx_sqrt<mode>2): Adjust.
1449 (vsx_<VS_spdp_insn>): Delete, split to...
1450 (vsx_xscvdpsp): ... this. New. And...
1451 (vsx_xvcvspdp): ... this. New. And...
1452 (vsx_xvcvdpsp): ... this. New.
1453
1454 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1455
1456 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
1457 and V2DF.
1458 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
1459 (rest of file): Adjust.
1460
1461 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1462
1463 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
1464 (vsx_extract_<mode>_var): Ditto.
1465
1466 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1467
1468 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
1469 with just "wa".
1470
1471 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1472
1473 * config/rs6000/constraints.md (define_register_constraint "ww"):
1474 Delete.
1475 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1476 (rs6000_init_hard_regno_mode_ok): Adjust.
1477 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1478 RS6000_CONSTRAINT_ww.
1479 * config/rs6000/rs6000.md: Adjust.
1480 * config/rs6000/vsx.md: Adjust.
1481 * doc/md.texi (Machine Constraints): Adjust.
1482
1483 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1484
1485 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
1486 (define_mode_attr sd): New.
1487 (define_mode_attr s): New.
1488 (define_mode_attr Ftrad): Delete.
1489 (define_mode_attr Fvsx): Delete.
1490 (define_mode_attr Fs): Delete.
1491 (rest of file): Use the new mode attributes.
1492 * config.rs6000/vsx.md: Use the new mode attributes.
1493
1494 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1495
1496 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
1497 with just "wa".
1498
1499 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1500
1501 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
1502 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
1503 used with VSX_B, VSX_D, or VSX_F, with just "wa".
1504
1505 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
1506
1507 PR target/78263
1508 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
1509 C++ with strict ANSI requirements.
1510
1511 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
1512
1513 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
1514 computations when step is 1.
1515
1516 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1517
1518 * config/rs6000/constraints.md (define_register_constraint "wf"):
1519 Delete.
1520 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1521 (rs6000_init_hard_regno_mode_ok): Adjust.
1522 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1523 RS6000_CONSTRAINT_wf.
1524 * config/rs6000/rs6000.md: Adjust.
1525 * config/rs6000/vsx.md: Adjust.
1526 * doc/md.texi (Machine Constraints): Adjust.
1527
1528 2019-06-04 Andrew Pinski <apinski@marvell.com>
1529
1530 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
1531 Fix ILP32 value.
1532
1533 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1534
1535 * config/rs6000/constraints.md (define_register_constraint "wd"):
1536 Delete.
1537 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1538 (rs6000_init_hard_regno_mode_ok): Adjust.
1539 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1540 RS6000_CONSTRAINT_wd.
1541 * config/rs6000/rs6000.md: Adjust.
1542 * config/rs6000/vsx.md: Adjust.
1543 * doc/md.texi (Machine Constraints): Adjust.
1544
1545 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1546
1547 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
1548 (rest of file): Adjust.
1549
1550 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1551
1552 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
1553 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
1554 (vsx_splat_<mode>_reg): Adjust.
1555
1556 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1557
1558 * config/rs6000/constraints.md (define_register_constraint "ws"):
1559 Delete.
1560 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1561 (rs6000_init_hard_regno_mode_ok): Adjust.
1562 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1563 RS6000_CONSTRAINT_ws.
1564 * config/rs6000/rs6000.md: Adjust.
1565 * config/rs6000/vsx.md: Adjust.
1566 * doc/md.texi (Machine Constraints): Adjust.
1567
1568 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1569
1570 * config/rs6000/constraints.md (define_register_constraint "wv"):
1571 Delete.
1572 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1573 (rs6000_init_hard_regno_mode_ok): Adjust.
1574 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1575 RS6000_CONSTRAINT_wv.
1576 * config/rs6000/rs6000.md: Adjust.
1577 * config/rs6000/vsx.md: Adjust.
1578 * doc/md.texi (Machine Constraints): Adjust.
1579
1580 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1581
1582 * config/rs6000/constraints.md (define_register_constraint "wi"):
1583 Delete.
1584 (define_register_constraint "wt"): Delete.
1585 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1586 (rs6000_init_hard_regno_mode_ok): Adjust.
1587 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1588 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
1589 * config/rs6000/rs6000.md: Adjust.
1590 * config/rs6000/vsx.md: Adjust.
1591 * doc/md.texi (Machine Constraints): Adjust.
1592
1593 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
1594
1595 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
1596 const.
1597 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
1598 default_elf_asm_output_external.
1599
1600 2019-06-04 Martin Liska <mliska@suse.cz>
1601
1602 * ipa-icf.c (INCLUDE_LIST): Remove.
1603 (sem_item_optimizer::execute): Remove call to init_wpa.
1604 * ipa-icf.h (init_wpa): Remove.
1605
1606 2019-06-04 Jakub Jelinek <jakub@redhat.com>
1607
1608 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
1609 conditional on combined for simd.
1610 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
1611 member.
1612 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
1613 constructs, don't remove lastprivate_conditional_map, but instead set
1614 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
1615 to parent construct temporaries.
1616 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
1617 like !ctx->lastprivate_conditional_map.
1618 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
1619 use up->outer context instead of up.
1620 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
1621 gimple_omp_for_combined_p.
1622 (expand_omp_for_static_nochunk): Likewise.
1623 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
1624 probably moved over into expand_omp_for_generic rather than being copied
1625 there.
1626
1627 2019-06-04 Martin Liska <mliska@suse.cz>
1628
1629 * value-prof.c (dump_histogram_value): Fix typo.
1630 (gimple_mod_subtract_transform): Likewise.
1631
1632 2019-06-04 Richard Biener <rguenther@suse.de>
1633
1634 PR middle-end/90726
1635 * tree-chrec.c (chrec_contains_symbols): Add to visited.
1636 (tree_contains_chrecs): Likewise.
1637 (chrec_contains_symbols_defined_in_loop): Move here and avoid
1638 exponential behaivor from ...
1639 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
1640 ... here.
1641 (expression_expensive_p): Avoid exponential behavior and compute
1642 expanded size, rejecting any expansion.
1643 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
1644 (idx_contains_abnormal_ssa_name_p): Likewise.
1645 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
1646 (contains_abnormal_ssa_name_p): Simplify and use
1647 walk_tree_without_duplicates.
1648
1649 2019-06-04 Richard Biener <rguenther@suse.de>
1650
1651 PR tree-optimization/90738
1652 Revert
1653 2019-06-03 Richard Biener <rguenther@suse.de>
1654
1655 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
1656 full reference tree and record in ref->ref.
1657 (vn_reference_lookup_3): Pass in original ref to
1658 ao_ref_init_from_vn_reference.
1659 (vn_reference_lookup): Likewise.
1660 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
1661 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1662 Handle non-decl bases in the original reference.
1663
1664 2019-06-04 Martin Liska <mliska@suse.cz>
1665
1666 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
1667 number of references.
1668 (sem_item_optimizer::do_congruence_step):
1669 (sem_item_optimizer::worklist_push): Dump how references
1670 a class has.
1671 (sem_item_optimizer::worklist_pop): Use heap.
1672 (sem_item_optimizer::process_cong_reduction): Likewise.
1673 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
1674
1675 2019-06-04 Martin Liska <mliska@suse.cz>
1676
1677 * ipa-icf.h (struct sem_usage_pair_hash): New.
1678 (sem_usage_pair_hash::hash): Likewise.
1679 (sem_usage_pair_hash::equal): Likewise.
1680 (struct sem_usage_hash): Likewise.
1681 * ipa-icf.c (sem_item::sem_item): Initialize
1682 referenced_by_count.
1683 (sem_item::add_reference): Register a reference
1684 in ref_map and not in target->usages.
1685 (sem_item::setup): Remove initialization of
1686 dead vectors.
1687 (sem_item::~sem_item): Remove usage of dead vectors.
1688 (sem_item::dump): Remove dump of references.
1689 (sem_item_optimizer::sem_item_optimizer): Initialize
1690 m_references.
1691 (sem_item_optimizer::read_section): Remove useless
1692 dump.
1693 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
1694 (sem_item_optimizer::build_graph): Pass m_references
1695 to ::add_reference.
1696 (sem_item_optimizer::verify_classes): Remove usage of dead
1697 vectors.
1698 (sem_item_optimizer::traverse_congruence_split): Return true
1699 when a class is split.
1700 (sem_item_optimizer::do_congruence_step_for_index): Use
1701 hash_map for look up of (sem_item *, index). That brings
1702 significant speed up.
1703 (sem_item_optimizer::do_congruence_step): Return true
1704 when a split is done.
1705 (congruence_class::is_class_used): Use referenced_by_count.
1706
1707 2019-06-04 Alan Modra <amodra@gmail.com>
1708
1709 PR target/90689
1710 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
1711 error.
1712
1713 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
1714
1715 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
1716 * config/rs6000/rs6000.c (direct_move_p): Adjust.
1717 (rs6000_secondary_reload_simple_move): Adjust.
1718 (rs6000_opt_masks): Neuter the "mfpgpr" option.
1719 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
1720 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
1721 comment.
1722 (power6x): Adjust.
1723 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
1724 (floatunssi<mode>2_lfiwzx): Adjust.
1725 (fix_trunc<mode>si2_stfiwx): Adjust.
1726 (fixuns_trunc<mode>si2_stfiwx): Adjust.
1727 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
1728 (mfpgpr): Mark as deprecated.
1729 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
1730 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
1731 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
1732
1733 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
1734
1735 * config/rs6000/constraints.md (define_register_constraint "wg"):
1736 Delete.
1737 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1738 RS6000_CONSTRAINT_wg.
1739 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1740 (rs6000_init_hard_regno_mode_ok): Adjust.
1741 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
1742 Delete "wg" alternatives.
1743 * doc/md.texi (Machine Constraints): Adjust.
1744
1745 2019-06-03 Alan Modra <amodra@gmail.com>
1746
1747 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
1748 (get_uncond_jump_length): Assert length less than INT_MAX and
1749 non-negative.
1750
1751 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
1752
1753 PR middle-end/64242
1754 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
1755 block.
1756 (expand_builtin_nonlocal_goto): Likewise.
1757
1758 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
1759
1760 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
1761 (aarch64_asm_output_external): Declare.
1762 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
1763 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
1764 (aarch64_asm_output_alias): New.
1765 (aarch64_asm_output_external): New.
1766 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1767 (ASM_OUTPUT_EXTERNAL): Define.
1768
1769 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
1770 * tree-vrp.h (value_range_base::nonzero_p): New.
1771 (value_range_base::set_nonnull): Rename to...
1772 (value_range_base::set_nonzero): ...this.
1773 (value_range_base::set_null): Rename to...
1774 (value_range_base::set_zero): ...this.
1775 (value_range::set_nonnull): Remove.
1776 (value_range::set_null): Remove.
1777 * tree-vrp.c (range_is_null): Remove.
1778 (range_is_nonnull): Remove.
1779 (extract_range_from_binary_expr): Use value_range_base::*zero_p
1780 instead of range_is_*null.
1781 (extract_range_from_unary_expr): Same.
1782 (value_range_base::set_nonnull): Rename to...
1783 (value_range_base::set_nonzero): ...this.
1784 (value_range::set_nonnull): Remove.
1785 (value_range_base::set_null): Rename to...
1786 (value_range_base::set_zero): ...this.
1787 (value_range::set_null): Remove.
1788 (extract_range_from_binary_expr): Rename set_*null uses to
1789 set_*zero.
1790 (extract_range_from_unary_expr): Same.
1791 (union_helper): Same.
1792 * vr-values.c (get_value_range): Use set_*zero instead of
1793 set_*null.
1794 (vr_values::extract_range_from_binary_expr): Same.
1795 (vr_values::extract_range_basic): Same.
1796
1797 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
1798
1799 PR driver/90684
1800 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
1801
1802 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1803
1804 * config/aarch64/iterators.md (MAX_OPP): New code attr.
1805 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to...
1806 (aarch64_<su>abd<mode>_3): ... This.
1807 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
1808
1809 2019-06-03 Richard Biener <rguenther@suse.de>
1810
1811 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
1812 full reference tree and record in ref->ref.
1813 (vn_reference_lookup_3): Pass in original ref to
1814 ao_ref_init_from_vn_reference.
1815 (vn_reference_lookup): Likewise.
1816 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
1817 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1818 Handle non-decl bases in the original reference.
1819
1820 2019-06-03 Martin Liska <mliska@suse.cz>
1821
1822 * doc/generic.texi: Remove Java Trees.
1823
1824 2019-06-03 Martin Liska <mliska@suse.cz>
1825
1826 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
1827 returns 0 when operands are equal.
1828
1829 2019-06-03 Richard Biener <rguenther@suse.de>
1830
1831 PR tree-optimization/90716
1832 * tree-loop-distribution.c (destroy_loop): Process blocks in
1833 correct order.
1834
1835 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1836
1837 PR target/88837
1838 * vector-builder.h (vector_builder::count_dups): New method.
1839 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
1840 Declare prototype.
1841 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
1842 (vec_init<mode><Vel>): New pattern.
1843 * config/aarch64/aarch64.c (emit_insr): New function.
1844 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
1845 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
1846 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
1847 (aarch64_sve_expand_vector_init): Define two overloaded functions.
1848
1849 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1850
1851 PR tree-optimization/90681
1852 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
1853 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
1854 special case for SLP, but fail on non-groupped loads.
1855
1856 2019-06-03 Martin Liska <mliska@suse.cz>
1857
1858 * cfg.c (debug): Use TDF_DETAILS for debug and
1859 print edge info only once.
1860
1861 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1862
1863 PR fortran/90539
1864 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
1865
1866 2019-06-01 Martin Sebor <msebor@redhat.com>
1867
1868 PR middle-end/90694
1869 * tree-pretty-print.c (dump_generic_node): Add parentheses.
1870
1871 2019-05-31 Jan Hubicka <jh@suse.cz>
1872
1873 * alias.c: Include ipa-utils.h.
1874 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
1875 * ipa-devirt.c (prevailing_odr_type): New.
1876 * ipa-utils.h (previaling_odr_type): Declare.
1877
1878 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
1879 Hongtao Liu <hongtao.liu@intel.com>
1880
1881 PR target/89355
1882 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
1883 NOTE_INSN_DELETED_LABEL check.
1884
1885 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
1886 Robert Suchanek <robert.suchanek@mips.com>
1887
1888 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
1889 and 3rd operands of the fmadd/fmsub/maddv builtin.
1890
1891 2019-05-31 Jakub Jelinek <jakub@redhat.com>
1892
1893 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
1894 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
1895 on OMP_SIMD if not nested inside of worksharing loop that also has
1896 lastprivate conditional clause for the same decl.
1897 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
1898 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
1899 on simd.
1900 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
1901 on simd construct.
1902 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
1903 on simd construct.
1904 (lower_lastprivate_clauses): Likewise.
1905 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
1906 calling lower_rec_input_clauses.
1907 (lower_omp_for): Likewise.
1908 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
1909 clause on simd construct.
1910 * omp-expand.c (expand_omp_simd): Initialize cond_var if
1911 OMP_CLAUSE__CONDTEMP_ clause is present.
1912
1913 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
1914 ivar and lvar.
1915
1916 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
1917
1918 PR c/43673
1919 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
1920 TEX_D32, TEX_D64 or TEX_D128.
1921
1922 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
1923
1924 * match.pd (~(vec?cst1:cst2)): New transformation.
1925
1926 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
1927
1928 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
1929 ((size_t)(A /[ex] B) CMP C): New transformation.
1930
1931 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
1932
1933 * doc/md.texi: Document define_insn_and_rewrite.
1934 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
1935 * gensupport.c (queue_elem): Update comment.
1936 (replace_operands_with_dups): New function.
1937 (gen_rewrite_sequence): Likewise.
1938 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
1939 * read-rtl.c (apply_subst_iterator): Likewise.
1940 (add_condition_to_rtx, named_rtx_p): Likewise.
1941 (rtx_reader::read_rtx_operand): Likewise.
1942 * config/aarch64/aarch64-sve.md
1943 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
1944 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
1945 define_insn_and_rewrite.
1946 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
1947 Remove separate define_split.
1948
1949 2019-05-31 Jan Hubicka <jh@suse.cz>
1950
1951 * tree-ssa-alias.c (type_has_components_p): New function.
1952 (aliasing_component_refs_p): Use it.
1953
1954 2019-05-31 Martin Liska <mliska@suse.cz>
1955
1956 * gdbhooks.py: Add const_tree to TreePrinter.
1957
1958 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
1959
1960 PR debug/86964
1961 * common.opt (feliminate-unused-debug-symbols): Enable by default.
1962 * doc/invoke.texi (Debugging Options): Document new default of
1963 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
1964
1965 2019-05-31 Jakub Jelinek <jakub@redhat.com>
1966
1967 PR tree-optimization/90671
1968 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
1969 template_block used to be empty on the first call, don't use
1970 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
1971 seq with bb_seq and set it with set_bb_seq.
1972
1973 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
1974
1975 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1976
1977 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
1978 Michael Meissner <meissner@linux.ibm.com>
1979
1980 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
1981 (prefixed_mem_operand): Likewise.
1982 (non_prefixed_mem_operand): Likewise.
1983 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
1984 prototype.
1985 * config/rs6000/rs6000.c (print_operand_address): Handle
1986 PC-relative addresses.
1987 (mode_supports_prefixed_address_p): New function.
1988 (rs6000_prefixed_address): New function.
1989 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
1990 (SYMBOL_REF_PCREL_P): Likewise.
1991
1992 2019-05-30 Jakub Jelinek <jakub@redhat.com>
1993
1994 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
1995 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
1996 (gimplify_omp_for): If worksharing loop with lastprivate conditional
1997 is nested inside of parallel region, add _condtemp_ clause to both.
1998 * tree-nested.c (convert_nonlocal_omp_clauses,
1999 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
2000 assertion failure.
2001 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
2002 member.
2003 * omp-general.c (omp_extract_for_data): Compute it.
2004 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
2005 (lower_rec_input_clauses): Likewise.
2006 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
2007 clause is already present, just add one further one after it.
2008 (lower_lastprivate_clauses): Handle cond_ptr with array type.
2009 (lower_send_shared_vars): Clear _condtemp_ vars.
2010 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
2011 or section or taskgroup.
2012 * omp-expand.c (determine_parallel_type): Disallow combining only if
2013 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
2014 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
2015 (expand_omp_for_generic, expand_omp_for_static_nochunk,
2016 expand_omp_for_static_chunk, expand_omp_for): Use
2017 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
2018 determine if a special set of API routines are needed and if condtemp
2019 needs to be initialized, while always initialize cond_var if
2020 fd->lastprivate_conditional is non-zero.
2021
2022 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
2023 Michael Meissner <meissner@linux.ibm.com>
2024
2025 * config/rs6000/constraints.md (eI): New constraint.
2026 * config/rs6000/predicates.md (cint34_operand): New predicate.
2027 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
2028 (SIGNED_34BIT_OFFSET_P): Likewise.
2029 * doc/md.texi (eI): Document constraint.
2030
2031 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
2032
2033 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
2034
2035 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
2036 Michael Meissner <meissner@linux.ibm.com>
2037
2038 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
2039 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
2040 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
2041 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
2042 (OTHER_FUTURE_MASKS): Likewise.
2043 (POWERPC_MASKS): Likewise.
2044 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
2045 specified without -mprefixed-addr or -mcpu=future. Error if
2046 -mprefixed-addr is specified without -mcpu=future.
2047 (rs6000_opt_masks): Add entry for prefixed-addr.
2048 * rs6000.opt (mprefixed-addr): New option.
2049
2050 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
2051
2052 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
2053 cfun->is_thunk check.
2054
2055 2019-05-30 Jakub Jelinek <jakub@redhat.com>
2056
2057 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
2058 to length.
2059
2060 2019-05-30 Martin Liska <mliska@suse.cz>
2061
2062 * gdbinit.in: Fix 'ptc' command. Add trt
2063 that prints TREE_TYPE($).
2064
2065 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
2066 Alan Modra <amodra@gmail.com>
2067
2068 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
2069 calls here...
2070 (rs6000_indirect_call_template_1): ...and here.
2071 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
2072 plt16_ha, plt16_lo, mtctr indirect calls. Use
2073 rs6000_pltseq_enum.
2074 (rs6000_decl_ok_for_sibcall): New function.
2075 (rs6000_function_ok_for_sibcall): Refactor.
2076 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
2077 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
2078 when pcrel. Reorganize.
2079 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
2080 * rs6000.h (rs6000_pltseq_enum): New enum.
2081 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
2082 (*pltseq_tocsave): Use rs6000_pltseq_enum.
2083 (*pltseq_plt16_ha): Likewise.
2084 (*pltseq_plt16_lo): Likewise.
2085 (*pltseq_mtctr): Likewise.
2086 (*pltseq_plt_pcrel): New insn.
2087 (*call_local_aix): Handle @notoc calls.
2088 (*call_value_local_aix): Likewise.
2089 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
2090 (*call_value_nonlocal_aix): Likewise.
2091 (*call_indirect_pcrel): New insn.
2092 (*call_value_indirect_pcrel): Likewise.
2093
2094
2095 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
2096
2097 * config/i386/sse.md (*save_multiple<mode>): Rename from
2098 save_multiple<mode>.
2099 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
2100 (*restore_multiple_and_return<mode>): Rename from
2101 restore_multiple_and_return<mode>.
2102 (*restore_multiple_leave_return<mode>): Rename from
2103 restore_multiple_leave_return<mode>.
2104
2105 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
2106
2107 * config.gcc (rx-*-linux*): New target.
2108 * config/rx/elf.opt: New file.
2109 * config/rx/linux.h: Likewise.
2110 * config/rx/t-linux: Likewise.
2111 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
2112 make it zero.
2113 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
2114 (ASM_APP_OFF): Likewise.
2115 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
2116 moved elsewhere.
2117
2118 2019-05-29 Jan Hubicka <jh@suse.cz>
2119
2120 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
2121 variants are pointer equivalent.
2122
2123 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2124
2125 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
2126 * config/aarch64/aarch64-sve2.md: New file.
2127 (<u>avg<mode>3_floor): New pattern.
2128 (<u>avg<mode>3_ceil): Likewise.
2129 (*<sur>h<addsub><mode>): Likewise.
2130 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
2131 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
2132
2133 2019-05-29 Jakub Jelinek <jakub@redhat.com>
2134
2135 PR bootstrap/90543
2136 * optc-save-gen.awk: In cl_optimization_print, use correct condition
2137 for var_opt_string printing. In cl_optimization_print_diff, print
2138 (null) instead of invoking undefined behavior if one of the
2139 var_opt_string pointers is NULL and use && instead of first || in the
2140 guarding condition. For var_target_other options, handle const char *
2141 target variables similarly to const char * optimize node variables.
2142
2143 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
2144
2145 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
2146 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
2147 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
2148 Add autib1716 and pacib1716 initialisation.
2149 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
2150 for autib1716 and pacib1716.
2151 * config/aarch64/aarch64-protos.h (aarch64_key_type,
2152 aarch64_post_cfi_startproc): Define.
2153 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
2154 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
2155 aarch64_handle_pac_ret_protection): Set default sign key to A.
2156 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
2157 aarch64_expand_prologue): Add check for b-key.
2158 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
2159 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
2160 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
2161 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
2162 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
2163 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
2164 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
2165 * config/aarch64/aarch64.md (do_return): Add check for b-key.
2166 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
2167 pauth_hint_num_a with pauth_hint_num.
2168 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
2169 pauth_hint_num_a with pauth_hint_num.
2170 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
2171 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
2172 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
2173 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
2174 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
2175 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
2176 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
2177 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
2178 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
2179 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
2180 UNSPEC_AUTIA1716 respectively.
2181 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
2182 and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
2183 * doc/invoke.texi (-mbranch-protection): Add b-key type.
2184 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
2185 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
2186
2187 2019-05-29 Jakub Jelinek <jakub@redhat.com>
2188
2189 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
2190 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
2191 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
2192 explicit clause on combined parallel into implicit shared clause.
2193 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
2194 and firstprivate if the decl has one too from combined parallel to
2195 the worksharing construct.
2196
2197 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
2198 Michael Meissner <meissner@linux.ibm.com>
2199
2200 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
2201
2202 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
2203
2204 * rtl.h (LABEL_REF_P): New #define.
2205
2206 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
2207
2208 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
2209
2210 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2211
2212 * internal-fn.c: Marked mask_load_direct as vectorizable.
2213 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
2214 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
2215 combined even if masks different with allow_slp_p param.
2216 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
2217 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
2218 dissolve SLP-only vectorizable groups when SLP has been discarded.
2219 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
2220 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
2221 masks.
2222 (vect_build_slp_tree_1): Fixed comment typo.
2223 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
2224 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
2225 loads for SLP only.
2226 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
2227 vectorizable.
2228 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
2229
2230 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2231
2232 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
2233 Remove obsolete use_thunk reference.
2234 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
2235 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2236 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
2237 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
2238 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2239 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2240 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2241 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
2242 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
2243
2244 2019-05-28 Nathan Sidwell <nathan@acm.org>
2245
2246 * tree.h (IDENTIFIER_ANON_P): New.
2247 (anon_aggrname_format, anon_aggname_p): Don't declare.
2248 (make_anon_name): Declare.
2249 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
2250 (hash_tree): Likewise.
2251 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
2252 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
2253 (anon_cnt, make_anon_name): New.
2254
2255 2019-05-28 Martin Liska <mliska@suse.cz>
2256
2257 PR other/90315
2258 * opts-global.c (decode_options): Print help for all
2259 help_option_arguments.
2260 * opts.c (print_help): Add new argument.
2261 (common_handle_option): Remember all values into
2262 help_option_arguments.
2263 * opts.h (print_help): Add new argument.
2264
2265 2019-05-28 Martin Liska <mliska@suse.cz>
2266
2267 PR ipa/90555
2268 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
2269 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
2270 (func_checker::compare_bb): Call compare_loops.
2271
2272 2019-05-27 Jakub Jelinek <jakub@redhat.com>
2273
2274 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
2275 on sections construct.
2276 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
2277 construct.
2278 (lower_omp_sections): Handle lastprivate conditional.
2279 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
2280 lastprivate_conditional_map.
2281 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
2282
2283 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
2284 critical, taskgroup and section regions when looking for a region
2285 with non-NULL lastprivate_conditional_map.
2286
2287 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
2288
2289 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
2290 (*ix86_gen_sub3): Ditto.
2291 (*ix86_gen_sub3_carry): Ditto.
2292 (*ix86_gen_one_cmpl2): Ditto.
2293 (*ix86_gen_andsp): Ditto.
2294 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
2295 (gen_and2_insn): New static function.
2296 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
2297 Use gen_add3_insn instead of ix86_gen_add3.
2298 (ix86_expand_split_stack_prologue): Use gen_add2_insn
2299 instead of ix86_gen_add3.
2300 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
2301 Use gen_sub3_insn instead of ix86_gen_sub3.
2302 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
2303 instead of ix86_gen_add3.
2304 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
2305 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
2306 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
2307 * config/i386/i386-options.c (ix86_option_override_internal):
2308 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2309 ix86_gen_one_cmpl2 and ix86_gen_andsp.
2310
2311 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2312
2313 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
2314 and DW_OP_GNU_const_index opcodes.
2315
2316 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
2317
2318 * config/i386/i386.h (STACK_SIZE_MODE): Define.
2319
2320 2019-05-27 Richard Biener <rguenther@suse.de>
2321
2322 PR tree-optimization/90637
2323 * tree-ssa-sink.c (statement_sink_location): Honor the
2324 computed sink location for single-uses.
2325
2326 2019-05-27 Richard Biener <rguenther@suse.de>
2327
2328 PR middle-end/90610
2329 * match.pd (vec_perm): Avoid clobbering op0 when not generating
2330 a bit-insert.
2331
2332 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2333
2334 * config/i386/i386.md (@sub<mode>3_carry): Rename
2335 from sub<mode>3_carry.
2336 (@leave_<mode>): New expander.
2337 (*leave): Rename from leave.
2338 (*leave_rex64): Rename from leave_rex64.
2339 (@monitorx_<mode>): Rename from monitorx_<mode>.
2340 (@clzero_<mode>): Rename from clzero_<mode>.
2341 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
2342 from sse3_monitor_<mode>.
2343 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
2344 (*ix86_gen_leave): Ditto.
2345 (*ix86_gen_monitor): Ditto.
2346 (*ix86_gen_monitorx): Ditto.
2347 (*ix86_gen_clzero): Ditto.
2348 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
2349 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
2350 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
2351 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
2352 Use gen_sse3_monitor instead of ix86_gen_monitor.
2353 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
2354 instead of ix86_gen_monitorx.
2355 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
2356 instead of ix86_gen_clzero.
2357 * config/i386/i386-options.c (ix86_option_override_internal):
2358 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
2359 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
2360
2361 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2362
2363 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
2364 Rename from tls_global_dynamic_64_<mode>.
2365 (@tls_local_dynamic_base_64_<mode>): Rename from
2366 tls_local_dynamic_base_64_<mode>.
2367 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
2368 Remove indirect function.
2369 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
2370 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
2371 instead of ix86_gen_tls_global_dynamic_64.
2372 Use gen_tls_local_dynamic_base_64 instead of
2373 ix86_gen_tls_local_dynamic_base_64.
2374 * config/i386/i386-options.c (ix86_option_override_internal):
2375 Do not initialize ix86_gen_tls_global_dynamic_64 and
2376 ix86_gen_tls_local_dynamic_base_64.
2377
2378 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2379
2380 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
2381 Rename from pro_epilogue_adjust_stack_<mode>_add.
2382 (@pro_epilogue_adjust_stack_sub_<mode>)
2383 Rename from pro_epilogue_adjust_stack_<mode>_sub.
2384 (@allocate_stack_worker_probe_<mode>):
2385 Rename from allocate_stack_worker_probe_<mode>.
2386 (allocate_stack): Use gen_allocate_stack_worker_probe.
2387 (probe_stack): Use gen_probe_stack_1.
2388 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
2389 (@adjust_stack_and_probe_<mode>): Rename from
2390 adjust_stack_and_probe<mode>.
2391 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
2392 (stack_protect_set): Use gen_stack_protect_set_1.
2393 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
2394 (stack_protect_test): Use gen_stack_protect_test_1.
2395 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
2396 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
2397 Remove indirect function.
2398 (*ix86_gen_adjust_stack_and_probe): Ditto.
2399 (*ix86_gen_probe_stack_range): Ditto.
2400 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
2401 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
2402 (ix86_adjust_stack_and_probe_stack_clash): Use
2403 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
2404 (ix86_adjust_stack_and_probe): Ditto.
2405 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
2406 of ix86_gen_probe_stack_range.
2407 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
2408 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
2409 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
2410 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
2411 CODE_FOR_stack_protect_test_{si,di}.
2412 * config/i386/i386-options.c (ix86_option_override_internal):
2413 Do not initialize ix86_gen_allocate_stack_worker,
2414 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
2415
2416 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
2417
2418 * doc/invoke.texi (Link Options): Many editorial changes around
2419 -flinker-output.
2420
2421 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2422
2423 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
2424 pre-Solaris 11 referene and most Studio compiler details.
2425
2426 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
2427
2428 PR target/90530
2429 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
2430 DImode to SImode in floating-point registers on 64-bit target.
2431 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
2432 register_operand in xmpyu patterns.
2433
2434 2019-05-24 Jakub Jelinek <jakub@redhat.com>
2435
2436 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
2437 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
2438 OMP_CLAUSE__REDUCTEMP_.
2439 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
2440 OMP_CLAUSE__CONDTEMP_.
2441 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
2442 * tree-pretty-print.c (dump_omp_clause): Likewise.
2443 * tree-nested.c (convert_nonlocal_omp_clauses,
2444 convert_local_omp_clauses): Likewise.
2445 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
2446 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
2447 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
2448 on OMP_FOR.
2449 (gimplify_omp_for): Warn and disable conditional modifier from
2450 lastprivate on loop iterators.
2451 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
2452 member.
2453 * omp-general.c (omp_extract_for_data): Initialize it.
2454 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
2455 member.
2456 (delete_omp_context): Delete it.
2457 (lower_lastprivate_conditional_clauses): New function.
2458 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
2459 handle lastprivate conditional clauses.
2460 (lower_reduction_clauses): Add CLIST argument, emit it into
2461 the critical section if any.
2462 (lower_omp_sections): Adjust lower_lastprivate_clauses and
2463 lower_reduction_clauses callers.
2464 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
2465 to lower_lastprivate_clauses.
2466 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
2467 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
2468 clist into a critical section if not emitted there already by
2469 lower_reduction_clauses.
2470 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
2471 callers.
2472 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
2473 conditional variables.
2474 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
2475 clause is present.
2476 (expand_omp_for_generic, expand_omp_for_static_nochunk,
2477 expand_omp_for_static_chunk): Handle lastprivate conditional.
2478 (expand_omp_for): Handle fd.lastprivate_conditional like
2479 fd.have_reductemp.
2480
2481 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
2482
2483 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
2484 kernel does not exit cleanly.
2485 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
2486
2487 2019-05-24 Jason Merrill <jason@redhat.com>
2488
2489 Revert:
2490 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2491
2492 2019-05-24 Richard Biener <rguenther@suse.de>
2493
2494 PR testsuite/90607
2495 * tree-loop-distribution.c (struct partition): Add location
2496 member.
2497 (partition_alloc): Initialize all fields.
2498 (generate_memset_builtin): Use the location recorded in the
2499 partition for the generated call.
2500 (generate_memcpy_builtin): Likewise.
2501 (classify_partition): Record the location of a single store
2502 as location for the partition.
2503
2504 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
2505
2506 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
2507 for lo-part.
2508
2509 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
2510
2511 PR target/90588
2512 * common/config/aarch64/aarch64-common.c
2513 (aarch64_rewrite_selected_cpu): Change local temporary variable
2514 type from unsigned long to uint64_t.
2515 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
2516 aarch64_get_extension_string_for_isa_flags): Change declaration to
2517 match new definition by replacing unsigned long with uint64_t.
2518
2519 2019-05-24 Jakub Jelinek <jakub@redhat.com>
2520
2521 PR target/90568
2522 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
2523 gen_attr_type just once instead of 4-7 times. Formatting fixes.
2524 Handle stack_protect_test_<mode> codegen similarly to corresponding
2525 sub instruction.
2526
2527 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
2528
2529 * config/i386/darwin.h: Reject -mfentry*.
2530 * doc/sourcebuild.texi: Document mfentry target support.
2531
2532 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2533
2534 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
2535 Rename to rs6000_global_entry_point_prologue_needed_p. Return
2536 false for PC-relative functions.
2537 (rs6000_output_function_prologue): Change called function name to
2538 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
2539 name,1" for PC-relative functions.
2540 (rs6000_elf_declare_function_name): Change called function name to
2541 rs6000_global_entry_point_prologue_needed_p.
2542
2543 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
2544
2545 PR target/90552
2546 * config/i386/i386.c (gen_rtx_cost):
2547 Use ix86_tune_cost instead of ix86_cost.
2548
2549 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2550 Michael Meissner <meissner@linux.ibm.com>
2551 Segher Boessenkool <segher@kernel.crashing.org>
2552
2553 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
2554 OPTION_MASK_PCREL.
2555 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
2556 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
2557 (rs6000_fndecl_pcrel_p): Likewise.
2558 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
2559 error if -mpcrel is requested without -mcpu=future.
2560 (rs6000_opt_masks): Add entry for pcrel.
2561 (rs6000_fndecl_pcrel_p): New function.
2562 (rs6000_pcrel_p): Likewise.
2563 * config/rs6000/rs6000.opt (mpcrel): New option.
2564 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
2565
2566 2019-05-23 Jan Hubicka <jh@suse.cz>
2567 Martin Liska <mliska@suse.cz>
2568
2569 PR tree-optimization/90576
2570 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
2571 poly_int_tree_p.
2572 (aliasing_component_refs_p): Fix three way size compare conditional;
2573 give up earlier in case we can not decide on equivalence.
2574
2575 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2576 Michael Meissner <meissner@linux.ibm.com>
2577 Segher Boessenkool <segher@kernel.crashing.org>
2578
2579 * config.gcc: Add future cpu.
2580 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
2581 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
2582 #define.
2583 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
2584 (RS6000_CPU): New instantiation for future cpu.
2585 * config/rs6000/rs6000-opts.h (enum processor_type): Add
2586 PROCESSOR_FUTURE.
2587 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
2588 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
2589 * config/rs6000/rs6000-tables.opt: Regenerate.
2590 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
2591 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
2592 (rs6000_machine_from_flags): Handle future cpu.
2593 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
2594 PROCESSOR_POWER9 for now.
2595 (rs6000_adjust_cost): Likewise.
2596 (rs6000_issue_rate): Likewise.
2597 (rs6000_register_move_cost): Likewise.
2598 (rs6000_opt_masks): Add entry for future.
2599 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
2600 (MASK_FUTURE): New #define.
2601 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
2602 * config/rs6000/rs6000.opt (mfuture): New target option.
2603 * doc/invoke.texi (mcpu): Add future cpu.
2604
2605 2019-05-23 Martin Liska <mliska@suse.cz>
2606
2607 PR c++/90587
2608 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
2609 operation points to a temporary (pointed via tree_to_wide_ref)
2610 that is out of scope after the &.
2611
2612 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
2613
2614 PR c++/90592
2615 * doc/extend.texi (Function Names): Add missing word.
2616
2617 2019-05-23 Richard Biener <rguenther@suse.de>
2618
2619 PR tree-optimization/88440
2620 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
2621 at -O[2s]+.
2622 * tree-loop-distribution.c (generate_memset_builtin): Fold the
2623 generated call.
2624 (generate_memcpy_builtin): Likewise.
2625 (distribute_loop): Pass in whether to only distribute patterns.
2626 (prepare_perfect_loop_nest): Also allow size optimization.
2627 (pass_loop_distribution::execute): When optimizing a loop
2628 nest for size allow pattern replacement.
2629
2630 2019-05-23 Jakub Jelinek <jakub@redhat.com>
2631
2632 PR target/90568
2633 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
2634 of xor.
2635
2636 2019-05-23 Martin Liska <mliska@suse.cz>
2637
2638 PR sanitizer/90570
2639 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
2640 expression similarly to gimplify_decl_expr.
2641
2642 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2643
2644 * cse.c (cse_dump_path): s/dump_file/f.
2645
2646 2019-05-22 David Malcolm <dmalcolm@redhat.com>
2647
2648 PR c++/90462
2649 * diagnostic-format-json.cc: Include "selftest.h".
2650 (json_from_expanded_location): Only add "file" key for non-NULL
2651 file strings.
2652 (json_from_location_range): Don't add "start" and "finish"
2653 children if they are UNKNOWN_LOCATION.
2654 (selftest::test_unknown_location): New selftest.
2655 (selftest::test_bad_endpoints): New selftest.
2656 (selftest::diagnostic_format_json_cc_tests): New function.
2657 * json.cc (json::object::get): New function.
2658 (selftest::test_object_get): New selftest.
2659 (selftest::json_cc_tests): Call it.
2660 * json.h (json::object::get): New decl.
2661 * selftest-run-tests.c (selftest::run_tests): Call
2662 selftest::diagnostic_format_json_cc_tests.
2663 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
2664 decl.
2665
2666 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
2667 Andrew Stubbs <amd@codesourcery.com>
2668
2669 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
2670 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
2671 (kernel): Rename to...
2672 (main_kernel): ... this.
2673 (load_image): Load _init_array and _fini_array kernels.
2674 (run): Add argument for kernel to run.
2675 (main): Run init_array_kernel before main_kernel, and
2676 fini_array_kernel after.
2677 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
2678 amdgpu_hsa_kernel attribute on functions.
2679 (gcn_disable_constructors): Delete.
2680 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
2681 * config/gcn/crt0.c (size_t): Define.
2682 (_init_array, _fini_array): New.
2683 (__preinit_array_start, __preinit_array_end,
2684 __init_array_start, __init_array_end,
2685 __fini_array_start, __fini_array_end): Declare weak references.
2686
2687 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
2688
2689 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
2690
2691 2019-05-22 Jason Merrill <jason@redhat.com>
2692
2693 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2694
2695 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
2696
2697 PR target/88483
2698 * config/i386/i386-options.c (ix86_init_machine_status): Set
2699 stack_frame_required to true.
2700 * config/i386/i386.c (ix86_get_frame_size): New function.
2701 (ix86_frame_pointer_required): Replace get_frame_size with
2702 ix86_get_frame_size.
2703 (ix86_compute_frame_layout): Likewise.
2704 (ix86_find_max_used_stack_alignment): Changed to void. Set
2705 stack_frame_required.
2706 (ix86_finalize_stack_frame_flags): Always call
2707 ix86_find_max_used_stack_alignment. Replace get_frame_size with
2708 ix86_get_frame_size.
2709 * config/i386/i386.h (machine_function): Add stack_frame_required.
2710
2711 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
2712
2713 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
2714
2715 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
2716
2717 * common/config/aarch64/aarch64-common.c
2718 (struct aarch64_option_extension, struct processor_name_to_arch,
2719 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
2720 aarch64_contains_opt,
2721 aarch64_get_extension_string_for_isa_flags): Change type of
2722 variables storing flags to uint64_t.
2723 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
2724 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
2725 * config/aarch64/aarch64.c (struct processor,
2726 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
2727 aarch64_validate_march, aarch64_override_options,
2728 aarch64_option_print, aarch64_handle_attr_isa_flags,
2729 aarch64_declare_function_name, aarch64_start_file): Make flag
2730 variables uint64_t.
2731 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
2732 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
2733 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
2734 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
2735 * config/aarch64/driver-aarch64.c
2736 (struct aarch64_arch_extension, struct aarch64_core_data,
2737 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
2738 flag variables uint64_t.
2739 * doc/invoke.texi: Add documentation for new arguments.
2740
2741 2019-05-22 Richard Biener <rguenther@suse.de>
2742
2743 * alias.c (ao_ref_from_mem): Move stack-slot sharing
2744 rewrite ...
2745 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
2746
2747 2019-05-22 Martin Liska <mliska@suse.cz>
2748
2749 PR lto/90500
2750 * doc/extend.texi: Document the change.
2751
2752 2019-05-22 Richard Biener <rguenther@suse.de>
2753
2754 PR tree-optimization/90450
2755 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
2756 (mem_ref_hasher::equal): Check it.
2757 (mem_ref_alloc): Initialize it.
2758 (gather_mem_refs_stmt): Set it.
2759
2760 2019-05-22 Richard Biener <rguenther@suse.de>
2761
2762 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
2763 Add ABS_EXPR.
2764 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
2765 as ABSU_EXPR.
2766
2767 2019-05-22 Alan Modra <amodra@gmail.com>
2768
2769 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
2770 (ASM_CPU_SPEC): Conditionally add -many.
2771 * config/rs6000/rs6000.c (rs6000_machine): New static var.
2772 (rs6000_machine_from_flags, emit_asm_machine): New functions..
2773 (rs6000_file_start): ..extracted from here, and modified to
2774 test all ISA bits.
2775 (rs6000_output_function_prologue): Emit .machine as necessary.
2776 * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
2777 power mnemonics.
2778 * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
2779 added by check_vect_support_and_set_flags.
2780 * testsuite/gcc.dg/vect/pr48765.c: Likewise.
2781 * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
2782
2783 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
2784
2785 PR middle-end/90553
2786 * ira-lives.c (process_bb_node_lives): Consider defs
2787 for a call insn to be die before the call, not after.
2788
2789 * function.c (assign_parm_setup_block): Raise alignment of
2790 stacked parameter only for STRICT_ALIGNMENT targets.
2791
2792 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2793
2794 * config/rs6000/constraints.md (define_register_constraint "wz"):
2795 Delete.
2796 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2797 RS6000_CONSTRAINT_wz.
2798 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2799 (rs6000_init_hard_regno_mode_ok): Adjust.
2800 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
2801 * doc/md.texi (Machine Constraints): Adjust.
2802
2803 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2804
2805 * config/rs6000/constraints.md (define_register_constraint "wl"):
2806 Delete.
2807 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2808 RS6000_CONSTRAINT_wl.
2809 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2810 (rs6000_init_hard_regno_mode_ok): Adjust.
2811 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
2812 * doc/md.texi (Machine Constraints): Adjust.
2813
2814 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2815
2816 * config/rs6000/constraints.md (define_register_constraint "wm"):
2817 Delete.
2818 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2819 RS6000_CONSTRAINT_wm.
2820 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2821 (rs6000_init_hard_regno_mode_ok): Adjust.
2822 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
2823 * doc/md.texi (Machine Constraints): Adjust.
2824
2825 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2826
2827 * config/rs6000/constraints.md (define_register_constraint "wk"):
2828 Delete.
2829 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2830 RS6000_CONSTRAINT_wk.
2831 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2832 (rs6000_init_hard_regno_mode_ok): Adjust.
2833 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
2834 * doc/md.texi (Machine Constraints): Adjust.
2835
2836 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2837
2838 * config/rs6000/constraints.md (define_register_constraint "wj"):
2839 Delete.
2840 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2841 RS6000_CONSTRAINT_wj.
2842 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2843 (rs6000_init_hard_regno_mode_ok): Adjust.
2844 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
2845 (VS_64dm): Delete.
2846 * config/rs6000/vsx.md: Ditto.
2847 * doc/md.texi (Machine Constraints): Adjust.
2848
2849 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2850
2851 * config/rs6000/constraints.md (define_register_constraint "wh"):
2852 Delete.
2853 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2854 RS6000_CONSTRAINT_wh.
2855 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2856 (rs6000_init_hard_regno_mode_ok): Adjust.
2857 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
2858 * doc/md.texi (Machine Constraints): Adjust.
2859
2860 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2861
2862 PR target/90547
2863 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
2864 Avoid calling gen_lowpart with CONST operand.
2865
2866 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
2867
2868 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
2869 field template_last_to_copy.
2870 (ssa_create_duplicates): Set it, and use it. Attempt to
2871 preserve more debug stmts.
2872
2873 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2874
2875 * config/i386/sse.md (VF1_AVX2): New mode iterator.
2876 (signbit<mode>2): New expander
2877
2878 2019-05-21 James Clarke <jrtc27@jrtc27.com>
2879
2880 PR bootstrap/87338
2881 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
2882 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
2883
2884 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2885
2886 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
2887 %ebx and %ecx bafore calling cpuid with leaf 1 or
2888 non-constant leaf argument.
2889
2890 2019-05-21 Alan Modra <amodra@gmail.com>
2891
2892 PR target/90545
2893 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
2894 power9 direct move cost.
2895 * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
2896 Correct comments and rename functions to suit parameters.
2897
2898 2019-05-21 Richard Biener <rguenther@suse.de>
2899
2900 PR middle-end/90510
2901 * fold-const.c (fold_read_from_vector): New function.
2902 * fold-const.h (fold_read_from_vector): Declare.
2903 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
2904 single-element insert permutations. Canonicalize selector
2905 further and fix issue with last commit.
2906
2907 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
2908
2909 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
2910 parameter with default value false to declaration.
2911 (split_edges_for_insertion): New inline function. Wrapper for
2912 split_critical_edges with for_edge_insertion_p = true.
2913 * tree-cfg.c (split_critical_edges): Don't split non-critical
2914 edges if for_edge_insertion_p is false. Fix whitespace.
2915 * tree-ssa-pre.c (pass_pre::execute): Call
2916 split_edges_for_insertion instead of split_critical_edges.
2917 * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
2918 * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
2919 (pass_data_sink_code): Update function name in the comment.
2920
2921 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
2922
2923 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
2924 around is_value_included_in that knows how to handle BIT_AND_EXPR.
2925 (is_pred_expr_subset_of): Use the new function. Handle more cases where
2926 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
2927 positives.
2928
2929 2019-05-21 Martin Liska <mliska@suse.cz>
2930
2931 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
2932 an extra newline.
2933 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
2934 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
2935 vec_lvsr.
2936 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2937 Quote a C type.
2938 (rs6000_function_arg): Likewise.
2939 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
2940 (rs6000_expand_ternop_builtin): Use interval syntax.
2941 (get_element_number): Likewise.
2942 (altivec_expand_builtin): Likewise.
2943 (rs6000_get_function_versions_dispatcher): Quote target_clones.
2944
2945 Fix test-suite.
2946
2947 2019-05-20 Jakub Jelinek <jakub@redhat.com>
2948
2949 PR c++/59813
2950 PR target/90418
2951 * function.h (struct function): Add calls_eh_return member.
2952 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
2953 gimplifying __builtin_eh_return call.
2954 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
2955 to cfun.
2956 (expand_call_inline): Or in src_cfun->calls_eh_return into
2957 dst_cfun->calls_eh_return.
2958 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
2959 cfun->calls_eh_return.
2960 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
2961 * lto-streamer-out.c (output_struct_function_base): Write
2962 calls_eh_return.
2963
2964 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
2965
2966 PR rtl-optimization/43147
2967 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
2968 IX86_BUILTIN_SHUFPD.
2969
2970 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
2971
2972 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
2973 (refs_may_alias_p_1): ... here; update stats.
2974 (refs_may_alias_p): Do not update stats here.
2975
2976 2019-05-20 Richard Biener <rguenther@suse.de>
2977
2978 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
2979 doesn't produce pointers.
2980 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
2981 the first operand points to.
2982
2983 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
2984
2985 * tree-ssa-alias.c (compare_sizes): New function.
2986 (sompare_type_sizes): New function
2987 (aliasing_component_refs_p): Use it.
2988 (indirect_ref_may_alias_decl_p): Likewise.
2989
2990 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2991
2992 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
2993
2994 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2995
2996 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
2997 (LIBLSAN_EARLY_SPEC): Likewise.
2998 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
2999
3000 2019-05-20 Martin Liska <mliska@suse.cz>
3001
3002 * config/i386/i386.c (ix86_libc_has_fast_function):
3003 Add ATTRIBUTE_UNUSED for the argument.
3004
3005 2019-05-20 Richard Biener <rguenther@suse.de>
3006
3007 * gimple-match-head.c: Include vec-perm-indices.h.
3008 * generic-match-head.c: Likewise.
3009 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
3010 is included.
3011 * fold-const.c (fold_vec_perm): Export.
3012 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
3013 (match.pd): ...here.
3014
3015 2019-05-20 Jakub Jelinek <jakub@redhat.com>
3016
3017 * cfgloop.h (struct loop): Add simdlen member.
3018 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
3019 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
3020 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
3021 as new argument to autovectorize_vector_sizes target hook. If
3022 loop->simdlen, pick up vector size where the vectorization factor
3023 is equal to loop->simd, and if there is none, fall back to the first
3024 successful one.
3025 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
3026 caller.
3027 * omp-low.c (omp_clause_aligned_alignment): Likewise.
3028 * omp-general.c (omp_max_vf): Likewise.
3029 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
3030 * tree-vect-slp.c (vect_slp_bb): Likewise.
3031 * target.def (autovectorize_vector_sizes): Add ALL argument and
3032 document it.
3033 * doc/tm.texi: Adjust documentation.
3034 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
3035 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
3036 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
3037 bool argument.
3038 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
3039 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
3040 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
3041 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
3042 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
3043 preferred vector size is not 512-bit or 256-bit, just put those
3044 unpreferred ones last.
3045
3046 2019-05-20 Martin Liska <mliska@suse.cz>
3047
3048 * targhooks.c (default_libc_has_fast_function): New function.
3049 * targhooks.h (default_libc_has_fast_function): Likewise.
3050
3051 2019-05-20 Martin Liska <mliska@suse.cz>
3052
3053 PR middle-end/90263
3054 * builtins.c (expand_builtin_memory_copy_args): When having a
3055 target with fast mempcpy implementation do now use memcpy.
3056 * config/i386/i386.c (ix86_libc_has_fast_function): New.
3057 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
3058 * doc/tm.texi: Likewise.
3059 * doc/tm.texi.in: Likewise.
3060 * target.def:
3061 * expr.c (emit_block_move_hints): Add 2 new arguments.
3062 * expr.h (emit_block_move_hints): Bail out when libcall
3063 to memcpy would be used.
3064
3065 2019-05-20 Martin Liska <mliska@suse.cz>
3066
3067 * profile-count.c: Add vertical spacing in order
3068 to separate functions.
3069 * profile-count.h: Likewise.
3070
3071 2019-05-20 Martin Liska <mliska@suse.cz>
3072
3073 * profile-count.h: Do not use full qualified
3074 names if possible.
3075 * profile-count.c (profile_count::to_frequency): Likewise.
3076
3077 2019-05-20 Martin Liska <mliska@suse.cz>
3078
3079 * profile-count.h (enum profile_quality): Use capital letters
3080 for enum value names. Use the adjusted names.
3081 * profile-count.c: Use the adjusted names.
3082
3083 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3084
3085 * config/rs6000/constraints.md (define_register_constraint "wH"):
3086 Delete.
3087 (define_register_constraint "wI"): Delete.
3088 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3089 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
3090 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3091 (rs6000_init_hard_regno_mode_ok): Adjust.
3092 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
3093 resp. "d", or with "wa" as appropriate, all with "p8v".
3094 * config/rs6000/vsx.md: Ditto.
3095 * doc/md.texi (Machine Constraints): Adjust.
3096
3097 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3098
3099 * config/rs6000/constraints.md (define_register_constraint "wy"):
3100 Delete.
3101 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3102 RS6000_CONSTRAINT_wy.
3103 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3104 (rs6000_init_hard_regno_mode_ok): Adjust.
3105 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
3106 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
3107 (define_mode_attr Fisa): New.
3108 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
3109 * doc/md.texi (Machine Constraints): Adjust.
3110
3111 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3112
3113 * config/rs6000/constraints.md (define_register_constraint "wu"):
3114 Delete.
3115 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3116 RS6000_CONSTRAINT_wu.
3117 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3118 (rs6000_init_hard_regno_mode_ok): Adjust.
3119 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
3120 both with "p8v".
3121 (define_mode_attr Fa): Delete.
3122 * config/rs6000/vsx.md: Ditto.
3123 * doc/md.texi (Machine Constraints): Adjust.
3124
3125 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3126
3127 * config/rs6000/constraints.md (define_register_constraint "wJ"):
3128 Delete.
3129 (define_register_constraint "wK"): Delete.
3130 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3131 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
3132 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3133 (rs6000_init_hard_regno_mode_ok): Adjust.
3134 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
3135 Replace "wK" constraint by "wH" with "p9v".
3136 * config/rs6000/vsx.md: Ditto.
3137 * doc/md.texi (Machine Constraints): Adjust.
3138
3139 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3140
3141 * config/rs6000/constraints.md (define_register_constraint "wb"):
3142 Delete.
3143 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3144 RS6000_CONSTRAINT_wb.
3145 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3146 (rs6000_init_hard_regno_mode_ok): Adjust.
3147 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
3148 * config/rs6000/vsx.md: Ditto.
3149 * doc/md.texi (Machine Constraints): Adjust.
3150
3151 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
3152
3153 * config/rs6000/constraints.md (define_register_constraint "wo"):
3154 Delete.
3155 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3156 RS6000_CONSTRAINT_wo.
3157 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3158 (rs6000_init_hard_regno_mode_ok): Adjust.
3159 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
3160 * config/rs6000/altivec.md: Ditto.
3161 * doc/md.texi (Machine Constraints): Adjust.
3162
3163 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
3164
3165 * config/darwin-c.c (darwin_register_objc_includes): Do not
3166 prepend the sysroot when building gnu-runtime header search
3167 paths.
3168
3169 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
3170
3171 * config/darwin.c (darwin_file_end): Use switch_to_section ()
3172 instead of direct output of the asm.
3173
3174 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
3175
3176 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
3177 argument to be type bool (was int before).
3178 (rs6000_emit_epilogue): Simplify some code. Declare some variables
3179 at first use. Use type bool for some variables. Fix a theoretical
3180 eh_return bug for svr4.
3181
3182 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
3183
3184 * config/rs6000/rs6000.md (isa): New attribute.
3185 (enabled): New attribute.
3186
3187 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
3188
3189 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
3190 assemble_start_function and assemble_end_function.
3191
3192 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
3193
3194 PR middle-end/89433
3195 * omp-general.c (oacc_verify_routine_clauses): Change formal
3196 parameters. Add checking if already marked with an OpenACC
3197 'routine' directive. Adjust all users.
3198
3199 PR middle-end/89433
3200 * omp-general.c (oacc_build_routine_dims): Move some of its
3201 processing into...
3202 (oacc_verify_routine_clauses): ... this new function.
3203 * omp-general.h (oacc_verify_routine_clauses): New prototype.
3204
3205 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
3206
3207 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
3208 formating of picbase labels to match other ports.
3209
3210 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
3211
3212 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
3213 in the generated code.
3214
3215 2019-05-16 Martin Sebor <msebor@redhat.com>
3216
3217 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
3218 identifiers, keywords, operators, and types in diagnostics. Correct
3219 quoting, spelling, and sentence capitalization issues.
3220 (expand_builtin_atomic_is_lock_free): Same.
3221 (fold_builtin_next_arg): Same.
3222 * cfgexpand.c (expand_one_var): Same.
3223 (tree_conflicts_with_clobbers_p): Same.
3224 (expand_asm_stmt): Same.
3225 (verify_loop_structure): Same.
3226 * cgraphunit.c (process_function_and_variable_attributes): Same.
3227 * collect-utils.c (collect_execute): Same.
3228 * collect2.c (maybe_run_lto_and_relink): Same.
3229 (is_lto_object_file): Same.
3230 (scan_prog_file): Same.
3231 * convert.c (convert_to_real_1): Same.
3232 * dwarf2out.c (dwarf2out_begin_prologue): Same.
3233 * except.c (verify_eh_tree): Same.
3234 * gcc.c (execute): Same.
3235 (eval_spec_function): Same.
3236 (run_attempt): Same.
3237 (driver::set_up_specs): Same.
3238 (compare_debug_auxbase_opt_spec_function): Same.
3239 * gcov-tool.c (unlink_gcda_file): Same.
3240 (do_merge): Same.
3241 (do_rewrite): Same.
3242 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
3243 * gimplify.c (gimplify_asm_expr): Same.
3244 (gimplify_adjust_omp_clauses): Same.
3245 * hsa-gen.c (gen_hsa_addr_insns): Same.
3246 (gen_hsa_insns_for_load): Same.
3247 (gen_hsa_cmp_insn_from_gimple): Same.
3248 (gen_hsa_insns_for_operation_assignment): Same.
3249 (gen_get_level): Same.
3250 (gen_hsa_alloca): Same.
3251 (omp_simple_builtin::generate): Same.
3252 (gen_hsa_atomic_for_builtin): Same.
3253 (gen_hsa_insns_for_call): Same.
3254 * input.c (dump_location_info): Same.
3255 * ipa-devirt.c (compare_virtual_tables): Same.
3256 * ira.c (ira_setup_eliminable_regset): Same.
3257 * lra-assigns.c (lra_assign): Same.
3258 * lra-constraints.c (lra_constraints): Same.
3259 * lto-streamer-in.c (lto_input_mode_table): Same.
3260 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
3261 (merge_and_complain): Same.
3262 (compile_offload_image): Same.
3263 (compile_images_for_offload_targets): Same.
3264 (debug_objcopy): Same.
3265 (run_gcc): Same.
3266 (main): Same.
3267 * opts.c (print_specific_help): Same.
3268 (parse_no_sanitize_attribute): Same.
3269 (print_help): Same.
3270 (handle_param): Same.
3271 * plugin.c (add_new_plugin): Same.
3272 (parse_plugin_arg_opt): Same.
3273 (try_init_one_plugin): Same.
3274 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
3275 operators, and types in diagnostics. Correct quoting and spelling
3276 issues.
3277 * read-rtl-function.c (parse_edge_flag_token): Same.
3278 (function_reader::parse_enum_value): Same.
3279 * reg-stack.c (check_asm_stack_operands): Same.
3280 * regcprop.c (validate_value_data): Same.
3281 * sched-rgn.c (make_pass_sched_fusion): Same.
3282 * stmt.c (check_unique_operand_names): Same.
3283 * targhooks.c (default_target_option_pragma_parse): Same.
3284 * tlink.c (recompile_files): Same.
3285 * toplev.c (process_options): Same.
3286 (do_compile): Same.
3287 * trans-mem.c (diagnose_tm_1): Same.
3288 (ipa_tm_scan_irr_block): Same.
3289 (ipa_tm_diagnose_transaction): Same.
3290 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
3291 format a tree code name in a diagnostic.
3292 (verify_types_in_gimple_min_lval): Same.
3293 (verify_types_in_gimple_reference): Same.
3294 (verify_gimple_call): Same.
3295 (verify_gimple_assign_unary): Same.
3296 (verify_gimple_assign_binary): Same.
3297 (verify_gimple_assign_ternary): Same.
3298 (verify_gimple_assign_single): Same.
3299 (verify_gimple_switch): Same.
3300 (verify_gimple_label): Same.
3301 (verify_gimple_phi): Same.
3302 (verify_gimple_in_seq): Same.
3303 (verify_eh_throw_stmt_node): Same.
3304 (collect_subblocks): Same.
3305 (gimple_verify_flow_info): Same.
3306 (do_warn_unused_result): Same.
3307 * tree-inline.c (expand_call_inline): Same.
3308 * tree-into-ssa.c (update_ssa): Same.
3309 * tree.c (tree_int_cst_elt_check_failed): Same.
3310 (tree_vec_elt_check_failed): Same.
3311 (omp_clause_operand_check_failed): Same.
3312 (verify_type_variant): Same.
3313 (verify_type): Same.
3314 * value-prof.c (verify_histograms): Same.
3315 * varasm.c (assemble_start_function): Same.
3316
3317 2019-05-16 Martin Sebor <msebor@redhat.com>
3318
3319 * config/i386/i386-expand.c (get_element_number): Quote keywords
3320 and other internal names in diagnostics. Adjust other diagnostic
3321 formatting issues noted by -Wformat-diag.
3322 * config/i386/i386-features.c
3323 (ix86_mangle_function_version_assembler_name): Same.
3324 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
3325 * config/i386/i386.c (ix86_function_type_abi): Same.
3326 (ix86_function_ms_hook_prologue): Same.
3327 (classify_argument): Same.
3328 (ix86_expand_prologue): Same.
3329 (ix86_md_asm_adjust): Same.
3330 (ix86_memmodel_check): Same.
3331
3332 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
3333
3334 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
3335 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
3336 and fpxx modes.
3337
3338 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
3339
3340 PR target/90497
3341 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
3342 intrinsics without SSE/SSE2/SSSE3.
3343 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
3344 check.
3345 (*mmx_uavgv8qi3): Likewise.
3346
3347 2019-05-17 Richard Biener <rguenther@suse.de>
3348
3349 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
3350 VEC_PERM_EXPR as __VEC_PERM with -gimple.
3351
3352 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
3353
3354 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
3355 vec_sldw insn pattern.
3356
3357 2019-05-17 Richard Biener <rguenther@suse.de>
3358
3359 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
3360
3361 2019-05-17 Martin Liska <mliska@suse.cz>
3362
3363 PR driver/90496
3364 * toplev.c (output_stack_usage): With LTO and sanitizer it
3365 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
3366 has no file location.
3367
3368 2019-05-16 Jakub Jelinek <jakub@redhat.com>
3369
3370 PR c++/90484
3371 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
3372 sz0 is equal to sz1, instead return false in that case.
3373
3374 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
3375 has non-constant expression, force sctx.lane and use two
3376 argument IFN_GOMP_SIMD_LANE instead of single argument.
3377 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
3378 two argument IFN_GOMP_SIMD_LANE without lhs.
3379 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
3380 member.
3381 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
3382 Define.
3383 (LOOP_REQUIRES_VERSIONING): Or in
3384 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
3385 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
3386 simd_if_cond.
3387 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
3388 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
3389 from simd if clause if needed.
3390
3391 2019-05-16 Richard Biener <rguenther@suse.de>
3392
3393 * tree-affine.c (expr_to_aff_combination): New function split
3394 out from...
3395 (tree_to_aff_combination): ... here.
3396 (aff_combination_expand): Avoid building a GENERIC tree.
3397
3398 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
3399
3400 * cgraphunit.c (cgraph_node::expand_thunk): Remove
3401 assemble_start_function and assemble_end_function calls.
3402 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
3403 assemble_start_function and assemble_end_function.
3404 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
3405 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
3406 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
3407 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
3408 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
3409 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
3410 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
3411 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
3412 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
3413 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3414 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3415 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
3416 Likewise.
3417 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
3418 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
3419 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
3420 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
3421 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
3422 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
3423 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
3424 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
3425 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
3426 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3427 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3428 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3429 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
3430 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
3431 Likewise.
3432 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
3433 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
3434 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
3435
3436 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
3437
3438 * tree-ssa-alias.c (alias_stats): Add
3439 aliasing_component_refs_p_may_alias and
3440 aliasing_component_refs_p_no_alias.
3441 (dump_alias_stats): Print aliasing_component_refs_p stats.
3442 (aliasing_component_refs_p): Update stats.
3443
3444 2019-05-16 Martin Liska <mliska@suse.cz>
3445
3446 PR lto/90500
3447 * multiple_target.c (expand_target_clones): Do not allow
3448 target_clones being used with a symbol that is an alias.
3449
3450 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
3451
3452 PR tree-optimization/90394
3453 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
3454 positives rather than ICE for cases where (code2 == NE_EXPR
3455 && code1 == BIT_AND_EXPR).
3456
3457 2019-05-16 Jakub Jelinek <jakub@redhat.com>
3458
3459 PR fortran/90329
3460 * tree-core.h (struct tree_decl_common): Document
3461 decl_nonshareable_flag for PARM_DECLs.
3462 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
3463 * calls.c (expand_call): Don't try tail call if caller
3464 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
3465 passed on the stack and callee needs to pass any arguments on the
3466 stack.
3467 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
3468 else if instead of series of mutually exclusive ifs. Handle
3469 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
3470 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3471
3472 * lto-streamer.h (LTO_major_version): Bump to 9.
3473
3474 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
3475
3476 PR tree-optimization/90106
3477 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
3478 new parameter as new internal function call, also move it to new
3479 basic block.
3480 (use_internal_fn): Pass internal function call to
3481 shrink_wrap_one_built_in_call_with_conds.
3482
3483 2019-05-15 Jakub Jelinek <jakub@redhat.com>
3484
3485 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
3486 max_vf to 1.
3487 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
3488 safelen_int and set loop->dont_vectorize.
3489
3490 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3491
3492 PR target/89021
3493 * config/i386/i386-builtin.def: Enable MMX intrinsics with
3494 SSE/SSE2/SSSE3.
3495 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
3496 Likewise.
3497 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
3498 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
3499 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
3500 is defined.
3501
3502 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3503
3504 PR target/89021
3505 * config/i386/mmx.md (*vec_dupv2sf): Changed to
3506 define_insn_and_split to support SSE emulation.
3507 (*vec_extractv2sf_0): Likewise.
3508 (*vec_extractv2sf_1): Likewise.
3509 (*vec_extractv2si_0): Likewise.
3510 (*vec_extractv2si_1): Likewise.
3511 (*vec_extractv2si_zext_mem): Likewise.
3512 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
3513 (vec_extractv2sf_1 splitter): Likewise.
3514 (vec_extractv2sfsf): Likewise.
3515 (vec_setv2si): Likewise.
3516 (vec_extractv2si_1 splitter): Likewise.
3517 (vec_extractv2sisi): Likewise.
3518 (vec_setv4hi): Likewise.
3519 (vec_extractv4hihi): Likewise.
3520 (vec_setv8qi): Likewise.
3521 (vec_extractv8qiqi): Likewise.
3522 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
3523 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
3524 (vec_extractv2sisi): Likewise.
3525 (vec_extractv4hihi): Likewise.
3526 (vec_extractv8qiqi): Likewise.
3527 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
3528 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
3529 (vec_initv2sisi): Likewise.
3530 (vec_initv4hihi): Likewise.
3531 (vec_initv8qiqi): Likewise.
3532 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
3533 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
3534 (vec_setv4hi): Likewise.
3535 (vec_setv8qi): Likewise.
3536
3537 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3538
3539 PR target/89021
3540 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
3541 TARGET_MMX_WITH_SSE.
3542 (MMXMODE:*mov<mode>_internal): Likewise.
3543 (MMXMODE:movmisalign<mode>): Likewise.
3544
3545 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
3546
3547 PR target/89021
3548 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
3549 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
3550 (sse2_cvtpd2pi): Ditto.
3551 (sse2_cvttpd2pi): Ditto.
3552 (*vec_concatv2sf_sse4_1): Ditto.
3553 (*vec_concatv2sf_sse): Ditto.
3554 (*vec_concatv2si_sse4_1): Ditto.
3555 (*vec_concatv2si): Ditto.
3556 (*vec_concatv4si_0): Ditto.
3557 (*vec_concatv2di_0): Ditto.
3558
3559 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3560
3561 PR target/89021
3562 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
3563
3564 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3565
3566 PR target/89021
3567 * config/i386/sse.md (ssse3_palignrdi): Changed to
3568 define_insn_and_split to support SSE emulation.
3569
3570 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3571
3572 PR target/89021
3573 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
3574
3575 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3576
3577 PR target/89021
3578 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
3579 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3580 SSE emulation.
3581
3582 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3583
3584 PR target/89021
3585 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
3586 or TARGET_MMX_WITH_SSE.
3587 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
3588
3589 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3590
3591 PR target/89021
3592 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
3593
3594 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3595
3596 PR target/89021
3597 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
3598 Changed to define_insn_and_split to support SSE emulation.
3599
3600 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3601
3602 PR target/89021
3603 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
3604 Changed to define_insn_and_split to support SSE emulation.
3605
3606 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3607
3608 PR target/89021
3609 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
3610 (*mmx_<emms>): This.
3611 (mmx_<emms>): New expander.
3612
3613 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3614
3615 PR target/89021
3616 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
3617 support.
3618 (*sse2_umulv1siv1di3): Add SSE2 emulation.
3619
3620 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3621
3622 PR target/89021
3623 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
3624
3625 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3626
3627 PR target/89021
3628 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
3629
3630 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3631
3632 PR target/89021
3633 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
3634 TARGET_MMX_WITH_SSE.
3635 (*mmx_uavgv4hi3): Add SSE emulation.
3636
3637 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3638
3639 PR target/89021
3640 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
3641 and TARGET_MMX_WITH_SSE.
3642 (*mmx_uavgv8qi3): Add SSE emulation.
3643
3644 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3645
3646 PR target/89021
3647 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
3648 maskmovdqu for __MMX_WITH_SSE__.
3649
3650 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3651
3652 PR target/89021
3653 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
3654 TARGET_MMX and TARGET_MMX_WITH_SSE.
3655 (*mmx_umulv4hi3_highpart): Add SSE emulation.
3656
3657 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3658
3659 PR target/89021
3660 * config/i386/mmx.md (mmx_pmovmskb): Changed to
3661 define_insn_and_split to support SSE emulation.
3662
3663 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3664
3665 PR target/89021
3666 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
3667 and TARGET_MMX_WITH_SSE.
3668 (mmx_<code>v8qi3): Likewise.
3669 (smaxmin:<code>v4hi3): New.
3670 (umaxmin:<code>v8qi3): Likewise.
3671 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
3672 (umaxmin:*mmx_<code>v8qi3): Likewise.
3673
3674 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3675
3676 PR target/89021
3677 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
3678 TARGET_MMX_WITH_SSE.
3679 (*mmx_pinsrw): Add SSE emulation.
3680
3681 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3682
3683 PR target/89021
3684 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
3685
3686 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3687
3688 PR target/89021
3689 * config/i386/sse.md (sse_cvtpi2ps): Changed to
3690 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3691 SSE emulation.
3692
3693 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3694
3695 PR target/89021
3696 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
3697 (sse_cvttps2pi): Likewise.
3698
3699 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3700
3701 PR target/89021
3702 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
3703 TARGET_MMX_WITH_SSE.
3704 (mmx_pshufw_1): Add SSE emulation.
3705 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
3706 TARGET_MMX_WITH_SSE to support SSE emulation.
3707
3708 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3709
3710 PR target/89021
3711 * config/i386/constraints.md (Yw): New constraint.
3712 * config/i386/mmx.md (*vec_dupv2si): Changed to
3713 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
3714 support SSE emulation.
3715
3716 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3717
3718 PR target/89021
3719 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
3720 TARGET_MMX_WITH_SSE.
3721 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
3722 support.
3723 (mmx_gt<mode>3): Likewise.
3724
3725 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3726
3727 PR target/89021
3728 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
3729 TARGET_MMX_WITH_SSE. Add SSE support.
3730
3731 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3732
3733 PR target/89021
3734 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
3735 TARGET_MMX_WITH_SSE.
3736 (any_logic:<code><mode>3): New.
3737 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
3738 Add SSE support.
3739
3740 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3741
3742 PR target/89021
3743 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
3744 TARGET_MMX_WITH_SSE. Add SSE emulation.
3745 (mmx_<shift_insn><mode>3): Likewise.
3746 (ashr<mode>3): New.
3747 (<shift_insn><mode>3): Likewise.
3748
3749 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3750
3751 PR target/89021
3752 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
3753 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
3754
3755 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3756
3757 PR target/89021
3758 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
3759 TARGET_MMX_WITH_SSE.
3760 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
3761 SSE support.
3762
3763 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3764
3765 PR target/89021
3766 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
3767 TARGET_MMX_WITH_SSE.
3768 (mulv4hi3): New.
3769 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
3770 support.
3771
3772 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3773
3774 PR target/89021
3775 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
3776 (plusminus:mmx_<plusminus_insn><mode>3): Check
3777 TARGET_MMX_WITH_SSE.
3778 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
3779 (<plusminus_insn><mode>3): New.
3780 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
3781 (*mmx_<plusminus_insn><mode>3): Likewise.
3782
3783 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3784
3785 PR target/89021
3786 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
3787 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
3788 prototype.
3789 * config/i386/mmx.m (mmx_punpckhbw): Changed to
3790 define_insn_and_split to support SSE emulation.
3791 (mmx_punpcklbw): Likewise.
3792 (mmx_punpckhwd): Likewise.
3793 (mmx_punpcklwd): Likewise.
3794 (mmx_punpckhdq): Likewise.
3795 (mmx_punpckldq): Likewise.
3796
3797 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3798 Uros Bizjak <ubizjak@gmail.com>
3799
3800 PR target/89021
3801 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
3802 New function.
3803 (ix86_split_mmx_pack): Likewise.
3804 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
3805 New prototype.
3806 (ix86_split_mmx_pack): Likewise.
3807 * config/i386/i386.md (mmx_isa): New.
3808 (enabled): Also check mmx_isa.
3809 * config/i386/mmx.md (any_s_truncate): New code iterator.
3810 (s_trunsuffix): New code attr.
3811 (mmx_packsswb): Removed.
3812 (mmx_packssdw): Likewise.
3813 (mmx_packuswb): Likewise.
3814 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
3815 MMX packsswb/packuswb with SSE2.
3816 (mmx_packssdw): Likewise.
3817 * config/i386/predicates.md (register_mmxmem_operand): New.
3818
3819 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3820
3821 PR target/89021
3822 * config/i386/i386-c.c (ix86_target_macros_internal): Define
3823 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
3824 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
3825 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
3826 (ix86_vector_mode_supported_p): Likewise.
3827 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
3828
3829 2019-05-15 Martin Liska <mliska@suse.cz>
3830
3831 PR middle-end/90478
3832 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
3833 Check for overflow.
3834
3835 2019-05-15 Richard Biener <rguenther@suse.de>
3836
3837 * tree-into-ssa.c (pass_build_ssa::execute): Run
3838 update_address_taken before going into SSA.
3839
3840 2019-05-15 Richard Biener <rguenther@suse.de>
3841
3842 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
3843 as __BIT_FIELD_REF with type with -gimple.
3844
3845 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
3846
3847 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
3848 semantically equivalent branches (left over after prior refactorings).
3849
3850 2019-05-15 Richard Biener <rguenther@suse.de>
3851
3852 PR tree-optimization/88828
3853 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
3854 bogus check.
3855
3856 2019-05-14 Richard Biener <rguenther@suse.de>
3857
3858 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
3859 as __VIEW_CONVERT with -gimple.
3860
3861 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
3862
3863 PR target/82920
3864 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
3865 Darwin.
3866
3867 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
3868
3869 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
3870 define_split to become a define_insn_and_split.
3871
3872 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
3873
3874 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
3875 arguments.
3876 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
3877 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
3878 (sibcall_epilogue): Adjust.
3879 (epilogue): Adjust.
3880
3881 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3882
3883 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
3884 to unsupported ones.
3885 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
3886 * config.host: Likewise.
3887 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
3888 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
3889 __svr4__]: Remove "brand" fallback.
3890 [!KSTAT_DATA_STRING]: Remove.
3891 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
3892 to *-*-solaris2*.
3893 (comdat_group): Likewise.
3894 (set_have_as_tls): Likewise.
3895 (gcc_cv_target_dl_iterate_phdr): Likewise.
3896 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
3897 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
3898 * configure: Regenerate.
3899 * doc/install.texi: Simplify Solaris target triplets.
3900 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
3901 (Specific, *-*-solaris2*): Document Solaris 10 removal.
3902 Remove Solaris 10 references.
3903 Remove obsolete Solaris bug reference.
3904 (Specific, sparc-sun-solaris2.10): Remove.
3905
3906 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
3907
3908 * config/i386/i386.md (any_div): New code iterator.
3909 (paired_mod): New code attribute.
3910 (sgnprefix): Handle DIV and UDIV RTXes.
3911 (u): Ditto.
3912 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
3913 and udivmod<mode>4 patterns using any_div code iterator.
3914 (divmod splitters): Macroize splitters using any_div code iterator.
3915 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
3916 (*udivmodsi4_pow2_zext_2): Ditto.
3917 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
3918 and *udivmod<mode>4_noext patterns using any_div code iterator.
3919 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
3920 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
3921 patterns using any_div code iterator.
3922 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
3923 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
3924 patterns using any_div code iterator.
3925 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
3926 udivmodhiqi3 patterns using any_extend code iterator.
3927
3928 2019-05-14 Richard Biener <rguenther@suse.de>
3929 H.J. Lu <hongjiu.lu@intel.com>
3930
3931 PR tree-optimization/88828
3932 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
3933 permuting in a single non-constant element not extracted
3934 from a vector.
3935
3936 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
3937
3938 * internal-fn.def (SIGNBIT): New.
3939 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
3940 defined.
3941 (signbitv4sf2): Likewise.
3942
3943 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
3944
3945 PR target/90357
3946 * config/mips/mips.c (mips_split_move): Skip forward SRC into
3947 next insn when the SRC reg is dead.
3948
3949 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
3950
3951 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
3952 (alloc_cand_and_find_basis): Ditto.
3953 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
3954 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
3955 (create_add_imm_cand, slsr_process_cast): Ditto.
3956 (slsr_process_copy, replace_mult_candidate): Ditto.
3957 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
3958 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
3959 (pass_strength_reduction::execute): Init the first NULL element.
3960
3961 2019-05-13 Nathan Sidwell <nathan@acm.org>
3962
3963 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
3964 (run_attempt): Reformat line break.
3965
3966 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
3967
3968 PR target/90418
3969 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
3970 data registers in sibcall epilogues.
3971 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
3972
3973 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
3974
3975 PR target/89221
3976 * configure.ac (--enable-frame-pointer):
3977 Disable by default for cygwin and mingw.
3978 * configure: Regenerate.
3979
3980 2019-05-13 Nathan Sidwell <nathan@acm.org>
3981
3982 * dwarf2out.c (breakout_comdat_types): Move comment to correct
3983 piece of code.
3984 (const_ok_for_output_1): Balance parens around #if/#else/#endif
3985 (gen_member_die): Move abstract origin check earlier. Only VARs
3986 can be static_inline_p. Simplify splicing control flow.
3987
3988 2019-05-13 Richard Biener <rguenther@suse.de>
3989
3990 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
3991 VIEW_CONVERT_EXPR.
3992 (vect_build_slp_tree_1): Likewise.
3993
3994 2019-05-13 Richard Biener <rguenther@suse.de>
3995
3996 PR tree-optimization/90402
3997 * tree-if-conv.c (tree_if_conversion): Value number only
3998 the loop body by making the latch an exit of the region
3999 as well.
4000 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
4001 processing PHIs.
4002 (do_rpo_vn): Deal with multiple edges into the entry block
4003 that are not backedges inside the region by skipping PHIs
4004 of the entry block.
4005
4006 2019-05-13 Richard Biener <rguenther@suse.de>
4007
4008 PR tree-optimization/90316
4009 * tree-ssa-pre.c (insert_aux): Fold into ...
4010 (insert): ... this function. Use a RPO walk to reduce the
4011 number of required iterations.
4012
4013 2019-05-13 Martin Liska <mliska@suse.cz>
4014
4015 PR tree-optimization/90416
4016 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
4017 string instead of passing the second part as va_arg argument.
4018
4019 2019-05-13 Martin Liska <mliska@suse.cz>
4020
4021 PR gcov-profile/90380
4022 * gcov.c (handle_cycle): Do not support zero cycle count,
4023 it should not be possible.
4024 (path_contains_zero_cycle_arc): New function.
4025 (circuit): Ignore zero cycle arc counts.
4026
4027 2019-05-13 Martin Liska <mliska@suse.cz>
4028
4029 PR gcov-profile/90380
4030 * gcov.c (enum loop_type): Remove the enum and
4031 the operator.
4032 (handle_cycle): Assert that we should not reach
4033 a negative count.
4034 (circuit): Use loop_found instead of a tri-state loop_type.
4035 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
4036 happen.
4037
4038 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
4039
4040 PR target/82920
4041 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
4042 (ix86_output_indirect_branch_via_reg): Use output mechanism
4043 accounting for __USER_LABEL_PREFIX__.
4044 (ix86_output_indirect_branch_via_push): Likewise.
4045 (ix86_output_function_return): Likewise.
4046 (ix86_output_indirect_function_return): Likewise.
4047
4048 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
4049
4050 * doc/md.texi: Document use of code attributes in rtx patterns.
4051 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
4052 * read-rtl.c (find_code): Split out search loops into...
4053 (maybe_find_code): ...this new function.
4054 (check_code_iterator): Make the error message more informative.
4055 (check_code_attribute): New function.
4056 (rtx_reader::rtx_alloc_for_name): Likewise.
4057 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
4058 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
4059 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
4060 <max_opp> directly as an rtx code instead of via a match_operator.
4061 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
4062 (<su>abd<mode>_3): Update accordingly.
4063
4064 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
4065
4066 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
4067 is given, print the state of the EH "save world" computation for
4068 Darwin.
4069
4070 2019-05-11 Jakub Jelinek <jakub@redhat.com>
4071
4072 PR c++/59813
4073 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
4074 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
4075
4076 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
4077
4078 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
4079 Use pinsrd for TARGET_SSE4_1.
4080 * config/i386/sse.md (movdi_to_sse): Ditto.
4081
4082 2019-05-10 Richard Biener <rguenther@suse.de>
4083
4084 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
4085 (do_rpo_vn): Initialize next_value_id.
4086
4087 2019-05-10 Martin Liska <mliska@suse.cz>
4088
4089 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
4090 Fix plural form.
4091
4092 2019-05-10 Jakub Jelinek <jakub@redhat.com>
4093
4094 PR tree-optimization/90385
4095 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
4096 arguments of the exit phis.
4097
4098 PR c++/90383
4099 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
4100 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
4101 id->do_not_fold.
4102 (copy_tree_body_r): Likewise.
4103 (copy_fn): Set id.do_not_fold to true.
4104
4105 2019-05-10 Martin Liska <mliska@suse.cz>
4106
4107 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
4108 Reapply changes from r269790.
4109
4110 2019-05-10 Martin Liska <mliska@suse.cz>
4111
4112 PR middle-end/90340
4113 * doc/invoke.texi: New params.
4114 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
4115 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
4116 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
4117 Use it.
4118 * tree-switch-conversion.h (struct jump_table_cluster):
4119 Likewise.
4120
4121 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
4122
4123 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
4124
4125 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
4126
4127 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
4128
4129 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
4130
4131 PR rtl-optimization/88879
4132 * sel-sched.c (sel_target_adjust_priority): Remove assert.
4133
4134 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
4135
4136 PR target/90405
4137 * config/arm/arm.c (callee_saved_reg_p): Move before
4138 thumb_find_work_register.
4139 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
4140 thumb_find_work_register. Only call df_get_live_out once.
4141 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
4142 (thumb_find_work_register): Use
4143 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
4144 algorithms to locate a spare call clobbered reg.
4145
4146 2019-05-09 Martin Liska <mliska@suse.cz>
4147
4148 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
4149 and MAX_EXPR in GIMPLE FE format.
4150
4151 2019-05-09 Martin Liska <mliska@suse.cz>
4152
4153 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
4154 * gimple-pretty-print.c (dump_gimple_bb_header):
4155 Dump BB count.
4156 (pp_cfg_jump): Dump edge probability.
4157 * profile-count.c (profile_quality_as_string): Simplify
4158 with a static array.
4159 (parse_profile_quality): New function.
4160 (profile_count::dump): Simplify with a static array.
4161 (profile_count::from_gcov_type): Add new argument.
4162 * profile-count.h (parse_profile_quality): Likewise.
4163 * predict.h (set_hot_bb_threshold): New.
4164 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
4165 New param.
4166 * predict.c (get_hot_bb_threshold): Set from the new param.
4167 (set_hot_bb_threshold): New.
4168
4169 2019-05-09 Richard Biener <rguenther@suse.de>
4170
4171 PR tree-optimization/90395
4172 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
4173 rewrite vector stores that throw internally.
4174
4175 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
4176
4177 * cif-code.def (CHKP): Remove.
4178
4179 PR target/89221
4180 * configure.ac (--enable-frame-pointer): Disable by default for
4181 GNU systems.
4182 * configure: Regenerate.
4183
4184 2019-05-09 Alan Modra <amodra@gmail.com>
4185
4186 PR target/89271
4187 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
4188 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
4189 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
4190 cost for general <-> vsx when direct moves are available.
4191 Cost union classes at minimal cost for any reg in the class.
4192 Correct calculation for moves between vsx, float, and altivec.
4193 Don't return a low cost for moves between special regs. Don't
4194 use hard coded register numbers.
4195 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
4196 (rs6000_ira_change_pseudo_allocno_class): New function.
4197 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
4198 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
4199 alternatives.
4200 (movsi_internal1): Don't disparage vector alternatives.
4201 (mov<mode>_internal): Likewise, excepting alternative that
4202 will be split.
4203 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
4204 we <- b alternative.
4205
4206 2019-05-08 Jakub Jelinek <jakub@redhat.com>
4207
4208 PR c++/59813
4209 PR tree-optimization/89060
4210 * tree-ssa-live.h (live_vars_map): New typedef.
4211 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
4212 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
4213 (struct compute_live_vars_data): New type.
4214 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
4215 live_vars_at_stmt, destroy_live_vars): New functions.
4216 * tree-tailcall.c: Include tree-ssa-live.h.
4217 (live_vars, live_vars_vec): New global variables.
4218 (find_tail_calls): Perform variable life analysis before punting.
4219 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
4220 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
4221 member.
4222 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
4223 Perform variable life analysis to select variables that really need
4224 clobbers added.
4225 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
4226 instead set id->eh_landing_pad_dest and assert it is the same.
4227 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
4228
4229 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
4230 Richard Earnshaw <rearnsha@arm.com>
4231
4232 PR target/88167
4233 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
4234 function.
4235 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
4236 (thumb1_compute_save_core_reg_mask): Don't force a spare work
4237 register if both the epilogue and prologue can use call-clobbered
4238 regs.
4239 (thumb1_unexpanded_epilogue): Use
4240 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
4241 picking temporaries for restoring high regs to match that of the
4242 prologue where possible.
4243 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
4244 the list of work registers. Detect if the return address is still live
4245 at the end of the prologue and avoid using it for a work register if so.
4246 If the return address is not live, add LR to the list of pushable regs
4247 after the first pass.
4248
4249 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
4250
4251 PR tree-optimization/90078
4252 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
4253 (INFTY): Increase the value for infinite cost.
4254 (struct comp_cost): Promote type of members to int64_t.
4255 (infinite_cost): Don't set complexity in initialization.
4256 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
4257 overflows to infinite_cost.
4258 (adjust_setup_cost): Promote type of parameter and cost computation
4259 to int64_t.
4260 (struct ainc_cost_data, struct iv_ca): Promote type of member to
4261 int64_t.
4262 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
4263 cost computation to int64_t.
4264 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
4265 int64_t's format specifier in dump.
4266
4267 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
4268
4269 PR tree-optimization/90240
4270 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
4271 with respect to scaling factor pre-computed for each basic block.
4272 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
4273 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
4274 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
4275 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
4276 live range for array of loop's basic blocks. Cleanup aux field of
4277 loop's basic blocks.
4278
4279 2019-05-08 Jakub Jelinek <jakub@redhat.com>
4280
4281 PR tree-optimization/90356
4282 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
4283
4284 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
4285
4286 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
4287 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
4288 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
4289 (ix86_handle_option): Handle -mavx512bf16.
4290 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
4291 to extra_headers.
4292 * config/i386/avx512bf16vlintrin.h: New.
4293 * config/i386/avx512bf16intrin.h: New.
4294 * config/i386/cpuid.h (bit_AVX512BF16): New.
4295 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
4296 * config/i386/i386-builtin-types.def: Add new types.
4297 * config/i386/i386-builtin.def: Add new builtins.
4298 * config/i386/i386-c.c (ix86_target_macros_internal): Define
4299 __AVX512BF16__.
4300 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
4301 (ix86_option_override_internal): Handle BF16.
4302 (ix86_valid_target_attribute_inner_p): Ditto.
4303 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
4304 * config/i386/i386-builtin.c (enum processor_features): Add
4305 F_AVX512BF16.
4306 (static const _isa_names_table isa_names_table): Ditto.
4307 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
4308 (PTA_AVX512BF16): Ditto.
4309 * config/i386/i386.opt: Add -mavx512bf16.
4310 * config/i386/immintrin.h: Include avx512bf16intrin.h
4311 and avx512bf16vlintrin.h.
4312 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
4313 avx512f_cvtneps2bf16_<mode><mask_name>,
4314 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
4315 * config/i386/subst.md (mask_half): Add new subst.
4316 * doc/invoke.texi: Document -mavx512bf16.
4317
4318 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
4319
4320 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
4321 Delete declaration.
4322 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
4323 (rs6000_debug_legitimize_reload_address): Delete.
4324 (rs6000_legitimize_reload_address_ptr): Delete.
4325 (rs6000_option_override_internal): Adjust.
4326 (mem_operand_gpr): Adjust comment.
4327 (legitimate_lo_sum_address_p): Ditto.
4328 (rs6000_legitimize_reload_address): Delete.
4329 (rs6000_debug_legitimize_reload_address): Delete.
4330 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
4331
4332 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
4333
4334 PR target/89765
4335 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4336 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
4337 to compute vector element selector for both constant and variable
4338 operands.
4339
4340 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
4341
4342 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
4343 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
4344 ashrdi3_cvt using SWI48 mode iterator.
4345
4346 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
4347
4348 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
4349 (aarch64_<su>abd<mode>_3): Likewise.
4350 (*aarch64_<su>abd<mode>_3): New define_insn.
4351 (<sur>sad<vsi2qi>): New define_expand.
4352 * config/aarch64/iterators.md: Added MAX_OPP attribute.
4353 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
4354 (build_vect_cond_expr): Likewise.
4355
4356 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
4357
4358 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
4359 clobbers outside of accessible_reg_set.
4360 * config/i386/i386.c (ix86_conditional_register_usage):
4361 Disable register sets by clearing corresponding bits in
4362 accessible_reg_set. Do not set corresponding bits in fixed_regs,
4363 call_used_regs and don't clear corresponding reg_names array members.
4364
4365 2019-05-07 Richard Biener <rguenther@suse.de>
4366
4367 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
4368 not specified still compute a comp_vectype for invariant
4369 compares.
4370
4371 2019-05-07 Richard Biener <rguenther@suse.de>
4372
4373 PR tree-optimization/90316
4374 * tree-ssa-pre.c (translate_vuse_through_block): When
4375 same_valid is NULL do not bother to search for a virtual
4376 PHI continuation.
4377 (phi_translate_1): When operands changed we cannot keep
4378 the same value-number so do not bother to ask whether
4379 that's possible from translate_vuse_through_block.
4380
4381 2019-05-07 Martin Liska <mliska@suse.cz>
4382
4383 * bitmap.c (bitmap_register): Come up with
4384 alloc_descriptor_max_uid and assign it for
4385 a new bitmap.
4386 (register_overhead): Use get_descriptor as
4387 a descriptor.
4388 (release_overhead): New.
4389 (bitmap_elem_to_freelist): Call it.
4390 (bitmap_elt_clear_from): Likewise.
4391 (bitmap_obstack_free): Likewise.
4392 (bitmap_move): Sensitively release memory.
4393 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
4394 (bitmap_initialize): Initialize alloc_descriptor to zero.
4395 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
4396
4397 2019-05-07 Richard Biener <rguenther@suse.de>
4398
4399 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
4400 we build a SLP node. Remove max_size and limiting.
4401 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
4402
4403 2019-05-07 Richard Biener <rguenther@suse.de>
4404
4405 PR tree-optimization/90316
4406 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
4407 limit by reference.
4408 (walk_non_aliased_vuses): Take walking limit argument.
4409 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
4410 walking if it is reached instead of just counting.
4411 (get_continuation_for_phi): Likewise.
4412 (walk_non_aliased_vuses): Likewise, instead of leaving counter
4413 limiting to the callback.
4414 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
4415 (vn_reference_lookup_3): Likewise.
4416 (vn_reference_lookup_pieces): Likewise.
4417 (vn_reference_lookup): Likewise.
4418 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
4419 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
4420 (avail_exprs_stack::lookup_avail_expr): Likewise.
4421
4422 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
4423
4424 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
4425 for comparaible types in the second direction even if first one
4426 hits incomparable type.
4427
4428 2019-05-07 Richard Biener <rguenther@suse.de>
4429
4430 PR lto/90369
4431 * lto-wrapper.c (debug_objcopy): Use the original filename
4432 including archive offset for the filename used for -save-temps.
4433
4434 2019-05-07 Li Jia He <helijia@linux.ibm.com>
4435
4436 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
4437 detection.
4438
4439 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
4440 Hongtao Liu <hongtao.liu@intel.com>
4441
4442 PR target/89750
4443 PR target/86444
4444 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
4445 Modified, original implementation isn't correct.
4446
4447 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4448
4449 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
4450 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
4451 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
4452 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
4453 (FRAME_POINTER_REGNUM): Change numbering.
4454 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
4455 (alt_reg_names): Adjust.
4456 (rs6000_conditional_register_usage): Don't mark hard register 64 as
4457 fixed.
4458 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
4459 (DWARF_FRAME_REGISTERS): Delete.
4460 (DWARF2_FRAME_REG_OUT): Fix whitespace.
4461 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
4462 Adjust.
4463 (REG_ALLOC_ORDER): Adjust.
4464 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
4465 (REG_CLASS_CONTENTS): Adjust.
4466 (RETURN_ADDR_RTX): Change comment.
4467 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
4468 instead of 67.
4469 (REGISTER_NAMES): Adjust.
4470 (ADDITIONAL_REGISTER_NAMES): Adjust.
4471 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
4472
4473 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4474
4475 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
4476 Delete.
4477 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
4478 (DWARF_FRAME_REGISTERS): Adjust.
4479 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
4480 Adjust.
4481 (REG_ALLOC_ORDER): Adjust.
4482 (enum reg_class): Delete SPR_REGS.
4483 (REG_CLASS_NAMES): Delete SPR_REGS.
4484 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
4485 (REGISTER_NAMES): Adjust.
4486 (ADDITIONAL_REGISTER_NAMES): Adjust.
4487 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
4488 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
4489 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
4490 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
4491 (htm_spr_regno): Delete.
4492 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
4493 argument.
4494 (rs6000_dbx_register_number): Adjust.
4495
4496 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4497
4498 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
4499
4500 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4501
4502 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
4503 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
4504
4505 2019-05-06 Jakub Jelinek <jakub@redhat.com>
4506
4507 PR tree-optimization/88709
4508 PR tree-optimization/90271
4509 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
4510 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
4511 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
4512 variable.
4513 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
4514 of the store merging group is larger than
4515 PARAM_STORE_MERGING_MAX_SIZE parameter.
4516 (split_group): Add bzero_first argument. If set, always emit first
4517 the first store which must be = {} of the whole area and then for the
4518 rest of the stores consider all zero bytes as paddings.
4519 (imm_store_chain_info::output_merged_store): Check if first store
4520 is = {} of the whole area and if yes, determine which setting of
4521 bzero_first for split_group gives smaller number of stores. Adjust
4522 split_group callers.
4523 (lhs_valid_for_store_merging_p): Allow decls.
4524 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
4525 no elts.
4526 (pass_store_merging::process_store): Likewise.
4527
4528 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
4529
4530 PR target/89424
4531 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4532 handling of V1TImode.
4533
4534 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
4535
4536 PR target/89221
4537 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
4538 and enable_frame_pointer ...
4539 * configure.ac: ... here. Update help strings for
4540 --enable-frame-pointer.
4541 * configure: Regenerate.
4542 * config/i386/i386-options.c (ix86_option_override_internal): Remove
4543 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
4544 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
4545 (USE_X86_64_FRAME_POINTER): Ditto.
4546
4547 2019-05-06 Martin Liska <mliska@suse.cz>
4548
4549 * config.gcc: Append to target_gtfiles and fix indentation.
4550
4551 2019-05-06 Richard Biener <rguenther@suse.de>
4552
4553 PR tree-optimization/90358
4554 * tree-vect-stmts.c (get_group_load_store_type): Properly
4555 detect unused upper half of load.
4556 (vectorizable_load): Likewise.
4557
4558 2019-05-06 Richard Biener <rguenther@suse.de>
4559
4560 PR tree-optimization/88828
4561 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
4562 (simplify_vector_constructor): ...here. Handle constants in
4563 the constructor.
4564
4565 2019-05-06 Richard Biener <rguenther@suse.de>
4566
4567 PR tree-optimization/90328
4568 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
4569 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
4570 is valid in the loop nest before using it.
4571 (initialize_data_dependence_relation): Adjust.
4572 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
4573 loop as loop-nest to dr_may_alias_p.
4574
4575 2019-05-06 Richard Biener <rguenther@suse.de>
4576
4577 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
4578
4579 2019-05-06 Richard Biener <rguenther@suse.de>
4580
4581 PR tree-optimization/90316
4582 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
4583 compute target on demand.
4584 (get_continuation_for_phi): Remove code walking stmts to
4585 get to a target virtual operand which could end up being
4586 quadratic.
4587
4588 2019-05-06 Martin Liska <mliska@suse.cz>
4589
4590 PR sanitizer/90312
4591 * config/i386/i386-options.c (ix86_option_override_internal): Error only
4592 when -mabi is selected to a non-default version.
4593
4594 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
4595 Martin Liska <mliska@suse.cz>
4596
4597 * Makefile.in: Add lto-dump.texi.
4598 * cgraph.h: Add new functions get_visibility_string and
4599 get_symtab_type_string.
4600 * doc/gcc.texi: Include lto-dump section.
4601 * doc/lto-dump.texi: New file.
4602 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
4603 (parse_dump_option): Factor out this function.
4604 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
4605 (parse_dump_option): Export the function.
4606 * symtab.c (symtab_node::get_visibility_string): New function.
4607 (symtab_node::get_symtab_type_string): Likewise.
4608
4609 2019-05-06 Martin Liska <mliska@suse.cz>
4610
4611 * config/i386/i386-builtins.c: New file.
4612 * config/i386/i386-builtins.h: New file.
4613 * config/i386/i386-expand.c: New file.
4614 * config/i386/i386-expand.h: New file.
4615 * config/i386/i386-features.c: New file.
4616 * config/i386/i386-features.h: New file.
4617 * config/i386/i386-options.c: New file.
4618 * config/i386/i386-options.h: New file.
4619 * config.gcc: Add new files into extra_objs and
4620 target_gtfiles.
4621 * config/i386/i386.c: Split content of the file
4622 into newly introduced files.
4623 * config/i386/i386.h: Declare common variables
4624 and macros.
4625 * config/i386/t-i386: Define dependencies for new files.
4626
4627 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
4628
4629 PR target/89400
4630 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
4631 Restrict 'all' variant to 32-bit configurations.
4632 (unaligned_loadhiu): Likewise.
4633 (unaligned_storehi): Likewise.
4634 (unaligned_storesi): Likewise.
4635 (unaligned_loadhis): Disable when compiling for thumb1.
4636
4637 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
4638
4639 PR tree-optimization/90269
4640 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
4641 Ignore clobbers.
4642
4643 2019-05-03 Martin Liska <mliska@suse.cz>
4644
4645 * hash-map.h: Add is_empty function.
4646 * hash-set.h: Likewise.
4647 * hash-table.h: Likewise.
4648 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
4649 elements () == 0 (and similar usages).
4650 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
4651 * gimplify.c (gimplify_bind_expr): Likewise.
4652 (gimplify_switch_expr): Likewise.
4653 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
4654 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
4655 * postreload-gcse.c (dump_hash_table): Likewise.
4656 (gcse_after_reload_main): Likewise.
4657 * predict.c (combine_predictions_for_bb): Likewise.
4658 * tree-parloops.c (reduction_phi): Likewise.
4659 (separate_decls_in_region): Likewise.
4660 (transform_to_exit_first_loop): Likewise.
4661 (gen_parallel_loop): Likewise.
4662 (gather_scalar_reductions): Likewise.
4663 (try_create_reduction_list): Likewise.
4664 * var-tracking.c (dump_vars): Likewise.
4665 (emit_notes_for_changes): Likewise.
4666 (vt_emit_notes): Likewise.
4667
4668 2019-05-03 Richard Biener <rguenther@suse.de>
4669
4670 PR tree-optimization/90316
4671 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
4672 before running VN.
4673
4674 2019-05-03 Richard Biener <rguenther@suse.de>
4675
4676 * tree-vect-stmts.c (get_group_load_store_type): Avoid
4677 peeling for gaps by loading only lower halves of vectors
4678 if possible.
4679 (vectorizable_load): Likewise.
4680
4681 2019-05-03 Richard Biener <rguenther@suse.de>
4682
4683 PR middle-end/89518
4684 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
4685
4686 2019-05-03 Richard Biener <rguenther@suse.de>
4687
4688 PR middle-end/87314
4689 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
4690 Handle STRING_CST vs DECL or STRING_CST.
4691
4692 2019-05-03 Richard Biener <rguenther@suse.de>
4693
4694 PR tree-optimization/88963
4695 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
4696 vector loads feeding only BIT_FIELD_REFs to component
4697 loads. Rewrite stores fed by CONSTRUCTORs to component
4698 stores.
4699
4700 2019-05-03 Jakub Jelinek <jakub@redhat.com>
4701
4702 * opts.h (finish_options): Remove lang_mask argument.
4703 (print_help, help_option_argument): Declare.
4704 * opts.c (print_help): Remove forward declaration, no longer static.
4705 (finish_options): Remove lang_mask argument, don't call print_help
4706 here.
4707 * opts-global.c (decode_options): Adjust finish_option caller, call
4708 print_help here.
4709
4710 PR tree-optimization/90303
4711 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
4712 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
4713
4714 2019-05-03 Richard Biener <rguenther@suse.de>
4715
4716 PR tree-optimization/89698
4717 * gimple-fold.c (canonicalize_constructor_val): Early out
4718 for constants, handle unfolded INTEGER_CSTs as they appear in
4719 C++ virtual table ctors.
4720
4721 2019-05-03 Richard Biener <rguenther@suse.de>
4722
4723 * passes.c (execute_function_todo): Remove dead code.
4724
4725 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
4726
4727 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
4728 the internal register number, for any "real" register.
4729
4730 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
4731
4732 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
4733 correct numbers for TFHAR, TFIAR, TEXASR.
4734
4735 2019-05-02 Richard Biener <rguenther@suse.de>
4736
4737 PR tree-optimization/89653
4738 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
4739 update-address-taken before the pass.
4740 * passes.def (pass_tree_loop_init): Put comment before it.
4741
4742 2019-05-02 Richard Biener <rguenther@suse.de>
4743
4744 PR tree-optimization/89509
4745 * tree-ssa-structalias.c (compute_dependence_clique): Look
4746 at the first subvar when determining whether it is restrict.
4747
4748 2019-05-02 Richard Biener <rguenther@suse.de>
4749
4750 PR tree-optimization/90273
4751 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
4752 useless debug stmts.
4753
4754 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
4755
4756 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
4757 ACLE branch.
4758 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
4759 SVE ACLE branch.
4760 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
4761 VEC_COND_EXPR be inserted to emulate a conditional internal function.
4762 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
4763 (vectorizable_reduction): Use the functions above to vectorize in a
4764 fully masked loop codes that don't have a conditional internal
4765 function.
4766
4767 2019-05-02 Martin Liska <mliska@suse.cz>
4768
4769 * cgraphclones.c: Call valid_attribute_p with 1 for
4770 target_clone.
4771 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
4772 it's for target attribute.
4773 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
4774 Add new boolean argument.
4775 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
4776 Likewise.
4777 (ix86_valid_target_attribute_tree): Pass target_clone_attr
4778 to ix86_valid_target_attribute_inner_p.
4779 (ix86_valid_target_attribute_p): Pass flags argument to
4780 ix86_valid_target_attribute_inner_p.
4781 (get_builtin_code_for_version): Use 0 as it's target attribute.
4782
4783 2019-05-02 Martin Liska <mliska@suse.cz>
4784
4785 * gcc.c (process_command): Add dummy file only
4786 if n_infiles == 0.
4787 * opts-global.c (decode_options): Pass lang_mask.
4788 * opts.c (print_help): New function.
4789 (finish_options): Print --help if help_option_argument
4790 is set.
4791 (common_handle_option): Factor out content of OPT__help_
4792 into print_help.
4793 * opts.h (finish_options): Add new argument.
4794
4795 2019-05-02 Martin Liska <mliska@suse.cz>
4796
4797 PR target/88809
4798 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
4799 With -minline-all-stringops use inline expansion using 4B loop.
4800 * doc/invoke.texi: Document the change of
4801 -minline-all-stringops.
4802
4803 2019-05-01 Jeff Law <law@redhat.com>
4804
4805 PR tree-optimization/88797
4806 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
4807 PHI feeds a conditional on the RHS of an assignment.
4808
4809 2019-04-30 Andrew Waterman <andrew@sifive.com>
4810 Jim Wilson <jimw@sifive.com>
4811
4812 * config/riscv/constraints.md (L): New.
4813 * config/riscv/predicates.md (lui_operand): New.
4814 (sfb_alu_operand): New.
4815 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
4816 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
4817 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
4818 * config/riscv/risc.md (type): Add sfb_alu.
4819 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
4820 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
4821 (branch_zero<mode>): Delete.
4822 (mov<mode>cc): New.
4823 (mov<GPR:mode><X:mode>cc): Likewise.
4824 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
4825
4826 2019-04-30 Nathan Sidwell <nathan@acm.org>
4827
4828 * tree.h (MARK_TS_EXP): New.
4829
4830 2019-04-30 Martin Liska <mliska@suse.cz>
4831
4832 * opts.c (enable_warning_as_error): Provide hints
4833 for unknown options.
4834
4835 2019-04-30 Martin Liska <mliska@suse.cz>
4836
4837 PR debug/90288
4838 * doc/invoke.texi: Add missing dash for gas-locview-support
4839 and gno-as-locview-support.
4840
4841 2019-04-30 Jakub Jelinek <jakub@redhat.com>
4842
4843 PR target/89093
4844 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
4845 whitespace at the start of target attribute string.
4846
4847 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4848
4849 PR target/86538
4850 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
4851 Define __ARM_FEATURE_ATOMICS.
4852
4853 2019-04-30 Martin Liska <mliska@suse.cz>
4854
4855 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
4856 into built_in_function enum. Remove code for endp == 2 and
4857 use BUILT_IN_* constants.
4858 (gimple_fold_builtin): Call the function with fcode.
4859
4860 2019-04-30 Martin Liska <mliska@suse.cz>
4861
4862 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
4863 DECL_FUNCTION_CODE into ix86_builtins enum before
4864 the switch statement.
4865
4866 2019-04-30 Jakub Jelinek <jakub@redhat.com>
4867
4868 PR tree-optimization/89475
4869 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
4870 calls.
4871
4872 2019-04-30 Martin Liska <mliska@suse.cz>
4873
4874 PR translation/90274
4875 * opts.c (print_filtered_help): Wrap string in _(...).
4876
4877 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
4878
4879 PR tree-optimization/90240
4880 Revert:
4881 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
4882
4883 PR tree-optimization/90078
4884 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
4885 checks for infinite_cost overflow.
4886
4887 2019-04-29 Jeff Law <law@redhat.com>
4888
4889 * passes.def: Move -Wrestrict pass after copy propagation.
4890
4891 2019-04-29 Maya Rashish <coypu@sdf.org>
4892
4893 * config.gcc (default_gnu_indirect_function): Default to yes
4894 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
4895 sparc*-*-netbsd*, x86_64-*-netbsd*.
4896
4897 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
4898
4899 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
4900 where cond2 is NE_EXPR.
4901 (is_value_included_in): Update comment.
4902
4903 2019-04-29 Richard Biener <rguenther@suse.de>
4904
4905 PR tree-optimization/90278
4906 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
4907 EH on comparison simplification.
4908
4909 2019-04-29 Jason Merrill <jason@redhat.com>
4910
4911 PR c++/82081 - tail call optimization breaks noexcept
4912 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
4913 nothrow function to a might-throw function into a tail call.
4914
4915 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
4916
4917 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
4918 (DDR_INNER_LOOP): Likewise.
4919 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
4920 (initialize_data_dependence_relation): Likewise.
4921 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
4922
4923 2019-04-29 Jakub Jelinek <jakub@redhat.com>
4924
4925 PR rtl-optimization/90257
4926 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
4927 return value.
4928
4929 Revert the revert:
4930 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
4931
4932 PR target/90178
4933 Revert:
4934 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
4935
4936 Revert the revert:
4937 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
4938
4939 Revert:
4940 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
4941
4942 * lra-spills.c (lra_final_code_change): Remove useless move insns.
4943
4944 2019-04-29 Richard Biener <rguenther@suse.de>
4945
4946 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
4947 rhs issue a reset.
4948
4949 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
4950
4951 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
4952 varasm.h, and netbsd-protos.h.
4953
4954 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
4955
4956 PR target/89261
4957 * config/i386/i386-protos.h (ix86_data_alignment): Change
4958 the second argument type to unsigned int.
4959 * config/i386/i386.c (ix86_data_alignment): Change "align"
4960 argument type to unsigned int.
4961
4962 2019-04-27 Martin Liska <mliska@suse.cz>
4963
4964 PR middle-end/90258
4965 * opt-suggestions.c (option_proposer::build_option_suggestions):
4966 When get_valid_option_values returns empty values, add the
4967 misspelling candidate.
4968
4969 2019-04-26 Jim Wilson <jimw@sifive.com>
4970
4971 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
4972 parameter.
4973 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
4974 Pass orig_mode to riscv_build_integer.
4975 (riscv_split_integer): Pass mode to riscv_move_integer.
4976 (riscv_legitimize_const_move): Likewise.
4977 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
4978 promoted_mode. Replace force_reg call with code to load constant into
4979 promoted reg and then subreg it for the store.
4980 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
4981 riscv_move_integer.
4982
4983 2018-04-26 Eugene Sharygin <eush@ispras.ru>
4984
4985 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
4986 corrupt codes.
4987
4988 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
4989
4990 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
4991 commentary about the encoding of precision.
4992
4993 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
4994
4995 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
4996 * config/i386/t-freebsd64: New file.
4997 * config.gcc: Add the t-freebsd64 for multilib support.
4998
4999 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
5000
5001 * doc/extend.texi (vector_size): Add missing comma after @xref.
5002
5003 2019-04-25 Jakub Jelinek <jakub@redhat.com>
5004
5005 * BASE-VER: Set to 10.0.0.
5006
5007 2019-04-25 Richard Biener <rguenther@suse.de>
5008
5009 PR middle-end/89765
5010 * gimplify.c (gimplify_expr): Avoid turning a lvalue
5011 VIEW_CONVERT_EXPR into one operating on an rvalue.
5012
5013 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
5014
5015 PR target/89929
5016 * config/i386/i386.c (feature_priority): Moved to file scope.
5017 (processor_features): Likewise.
5018 (processor_model): Likewise.
5019 (_arch_names_table): Likewise.
5020 (arch_names_table): Likewise.
5021 (_feature_list): Removed.
5022 (feature_list): Likewise.
5023 (_isa_names_table): Moved to file scope. Add priority.
5024 (isa_names_table): Likewise.
5025 (get_builtin_code_for_version): Replace feature_list with
5026 isa_names_table. Update error message for P_ZERO priority.
5027
5028 2019-04-25 Richard Biener <rguenther@suse.de>
5029
5030 * tree-pass.h (make_pass_phi_only_cprop): Remove.
5031 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
5032
5033 2019-04-24 Jeff Law <law@redhat.com>
5034
5035 PR tree-optimization/90037
5036 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
5037 * passes.def: Replace all instance of phi-only cprop with the
5038 lattice propagator. Move propagation pass from after erroneous
5039 path isolation to before erroneous path isolation.
5040 * tree-ssa-phionlycprop.c: Remove.
5041
5042 2019-04-24 Richard Biener <rguenther@suse.de>
5043
5044 PR middle-end/90213
5045 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
5046 by size and BITS_PER_UNIT on poly-wide-ints.
5047
5048 2019-04-25 Richard Biener <rguenther@suse.de>
5049
5050 PR middle-end/90194
5051 * match.pd: Add pattern to simplify view-conversion of an
5052 empty constructor.
5053
5054 2019-04-24 Clement Chigot <clement.chigot@atos.net>
5055
5056 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
5057 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
5058 for Go on 32 bit AIX.
5059 * config/rs6000/aix72.h: Likewise.
5060
5061 2019-04-24 Jakub Jelinek <jakub@redhat.com>
5062
5063 PR target/90193
5064 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
5065 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
5066
5067 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
5068
5069 PR target/89952
5070 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
5071 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
5072 for restored hard frame pointer.
5073 (s390_sched_dependencies_evaluation): Implement new target hook.
5074 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
5075
5076 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
5077
5078 * config/arc/arc-options.def: Fix typos and spelling mistakes.
5079 * config/arc/arc.c (arc_init): Cleanup warning message.
5080 (arc_override_options): Likewise.
5081
5082 2019-04-24 Jakub Jelinek <jakub@redhat.com>
5083
5084 PR target/90187
5085 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
5086 a register if both if_true and if_false are MEMs.
5087
5088 PR tree-optimization/90208
5089 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
5090 after labels of new_bb, not before them.
5091
5092 PR tree-optimization/90211
5093 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
5094 which are not SSA_NAMEs.
5095
5096 2018-04-23 Sudakshina Das <sudi.das@arm.com>
5097
5098 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
5099 AArch64.
5100 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
5101
5102 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
5103
5104 PR rtl-optimization/87979
5105 * modulo-sched.c (sms_schedule): Start ii value "mii" should
5106 not equal zero.
5107
5108 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
5109
5110 PR rtl-optimization/84032
5111 * modulo-sched.c (ps_insn_find_column): Change condition so that
5112 branch will always be the last insn in a row inside partial
5113 schedule.
5114
5115 2019-04-23 Richard Biener <rguenther@suse.de>
5116
5117 PR debug/90131
5118 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
5119 dest_single_pred_p argument.
5120 (remove_forwarder_block): Adjust.
5121 (remove_forwarder_block_with_phi): Likewise.
5122
5123 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
5124 Bernd Edlinger <bernd.edlinger@hotmail.de>
5125 Jakub Jelinek <jakub@redhat.com>
5126
5127 PR target/89093
5128 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
5129 if used with general-regs-only.
5130 (arm_conditional_register_usage): Don't add non-general regs if
5131 general-regs-only.
5132 (arm_valid_target_attribute_rec): Handle general-regs-only.
5133 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
5134 general-regs-only.
5135 (TARGET_HARD_FLOAT_SUB): Define.
5136 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
5137 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
5138 (TARGET_REALLY_IWMMXT2): Likewise.
5139 * config/arm/arm.opt: Add -mgeneral-regs-only.
5140 * doc/extend.texi: Document ARM general-regs-only target.
5141 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
5142
5143 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
5144
5145 PR tree-optimization/90078
5146 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
5147 checks for infinite_cost overflow.
5148
5149 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
5150
5151 PR tree-optimization/90021
5152 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
5153 and check univariate against it.
5154 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
5155 * tree-data-ref.c (add_other_self_distances): Pass new argument.
5156
5157 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
5158
5159 PR target/90178
5160 Revert:
5161 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
5162
5163 Revert the revert:
5164 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
5165
5166 Revert:
5167 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
5168
5169 * lra-spills.c (lra_final_code_change): Remove useless move insns.
5170
5171 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
5172
5173 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
5174 names using operand format, rather than hard-wired.
5175 (speculation_barrier): Likewise.
5176
5177 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
5178
5179 PR tree-optimization/88055
5180 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
5181 (gen_one_condition): Use it if !HONOR_NANS.
5182
5183 2019-04-19 Jakub Jelinek <jakub@redhat.com>
5184
5185 PR middle-end/90139
5186 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
5187 assign_temp instead of gen_reg_rtx.
5188
5189 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
5190
5191 PR translation/90118
5192 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5193 Add missing space before %<.
5194
5195 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
5196
5197 PR rtl-optimization/87871
5198 * ira-lives.c (make_object_dead): Don't add conflicts to
5199 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
5200
5201 2019-04-18 Martin Sebor <msebor@redhat.com>
5202
5203 PR middle-end/89797
5204 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
5205 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
5206 assuming type size fits in SHWI.
5207
5208 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
5209
5210 PR ipa/85051
5211 * ipa-inline.c (flatten_function): New parameter UPDATE.
5212 (ipa_inline, early_inliner): Use it.
5213
5214 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
5215
5216 * fold-const.c (int_const_binop): Return early on failure.
5217
5218 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
5219
5220 PR middle-end/85164
5221 * combine.c (force_int_to_mode): Cast the argument rather than
5222 the result of known_alignment.
5223 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
5224
5225 2019-04-18 Richard Biener <rguenther@suse.de>
5226
5227 PR debug/90131
5228 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
5229 out from ...
5230 (remove_forwarder_block): ... here.
5231 (remove_forwarder_block_with_phi): Also move debug stmts here.
5232
5233 2019-04-18 Jakub Jelinek <jakub@redhat.com>
5234
5235 PR translation/79183
5236 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
5237 inform where appropriate.
5238
5239 2019-04-18 Richard Biener <rguenther@suse.de>
5240
5241 * tree.c (get_qualified_type): Put found type variants at the
5242 head of the variant list.
5243
5244 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5245
5246 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
5247
5248 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
5249
5250 PR target/90125
5251 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
5252 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
5253 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
5254 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
5255 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
5256
5257 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
5258
5259 * ira-conflicts.c (print_allocno_conflicts): Always print something,
5260 even for allocno's with no conflicts.
5261 (print_conflicts): Print an extra newline.
5262
5263 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5264
5265 * auto-inc-dec.c (attempt_change): Set the alignment of the
5266 temporary memory to that of the original.
5267
5268 2019-04-17 Joao Moreira <jmoreira@suse.de>
5269
5270 * targhooks.c (default_print_patchable_function_entry): Emit
5271 __patchable_function_entries section with writable flags to allow
5272 relocation resolution.
5273
5274 2019-04-17 Jonny Grant <jg@jguk.org>
5275
5276 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
5277
5278 2019-04-17 Jakub Jelinek <jakub@redhat.com>
5279
5280 PR middle-end/90095
5281 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
5282 on lowpart SUBREGs.
5283
5284 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
5285
5286 * config/arc/arc.c (arc_init): Format diagnostic string.
5287 (arc_override_options): Likewise.
5288 (check_if_valid_regno_const): Likewise.
5289 (arc_reorg): Likewise.
5290
5291 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5292
5293 PR target/17108
5294 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
5295 name.
5296 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
5297 name.
5298 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
5299 (*movdi_update1): Use Pmode.
5300 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
5301 (movdi_<mode>_update_stack): Rename to ...
5302 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
5303 use Pmode.
5304 (*movsi_update1): Use Pmode.
5305 (*movsi_update2): Use Pmode.
5306 (movsi_update): Rename to ...
5307 (movsi_<mode>_update): ... this. Use Pmode.
5308 (movsi_update_stack): Fix condition.
5309 (*movhi_update1): Use Pmode. Fix argument to
5310 avoiding_indexed_address_p.
5311 (*movhi_update2): Ditto.
5312 (*movhi_update3): Ditto.
5313 (*movhi_update4): Ditto.
5314 (*movqi_update1): Ditto.
5315 (*movqi_update2): Ditto.
5316 (*movqi_update3): Ditto.
5317 (*movsf_update1, *movdf_update1): Merge, rename to...
5318 (*mov<mode>_update1): This. Use Pmode. Fix argument to
5319 avoiding_indexed_address_p. Add "size" attribute.
5320 (*movsf_update2, *movdf_update2): Merge, rename to...
5321 (*mov<mode>_update2): This. Ditto.
5322 (*movsf_update3): Use Pmode. Fix argument to
5323 avoiding_indexed_address_p.
5324 (*movsf_update4): Ditto.
5325 (allocate_stack): Simplify condition. Adjust pattern names.
5326
5327 2019-04-17 Jakub Jelinek <jakub@redhat.com>
5328
5329 PR target/89093
5330 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
5331 whitespace at the start of target attribute string.
5332
5333 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
5334
5335 PR target/84369
5336 * config/rs6000/power9.md: Add store forwarding bypass.
5337
5338 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
5339
5340 PR debug/89528
5341 * valtrack.c (dead_debug_insert_temp): Reset debug references
5342 to the return value of a call being removed.
5343
5344 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5345
5346 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
5347 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
5348 implement target hook.
5349 (arc_memory_move_cost): New function.
5350 (TARGET_REGISTER_MOVE_COST): Define.
5351 (TARGET_MEMORY_MOVE_COST): Likewise.
5352 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
5353 (MEMORY_MOVE_COST): Likewise.
5354
5355 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5356
5357 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
5358 (sibcall_value_insn): Likewise.
5359 * config/arc/constraints.md (Rs5): Remove.
5360
5361 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5362
5363 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
5364 for last two fake registers.
5365 (arc_conditional_register_usage): Make sure fake frame and arg
5366 pointer regs are in general regs class.
5367 (FRAME_POINTER_MASK): Remove.
5368 (RETURN_ADDR_MASK): Remove.
5369 (arc_must_save_register): Use hard frame regnum.
5370 (frame_restore_reg): Use hard_frame_pointer_rtx.
5371 (arc_save_callee_saves): Likewise.
5372 (arc_restore_callee_saves): Likewise.
5373 (arc_save_callee_enter): Likewise.
5374 (arc_restore_callee_leave): Likewise.
5375 (arc_save_callee_milli): Likewise.
5376 (arc_eh_return_address_location): Likewise.
5377 (arc_check_multi): Use hard frame regnum.
5378 (arc_can_eliminate): Likewise.
5379 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
5380 for register allocator.
5381 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
5382 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
5383 (FRAME_POINTER_REGNUM): Change it to a fake register.
5384 (HARD_FRAME_POINTER_REGNUM): Defined.
5385 (ARG_POINTER_REGNUM): Change it to a new fake register.
5386 (ELIMINABLE_REGS): Update.
5387 (REGISTER_NAMES): Update names.
5388 * config/arc/arc.md (LP_START): Remove.
5389 (LP_END): Likewise.
5390 (shift_si3_loop): Update pattern.
5391
5392 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5393
5394 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
5395 to avoid delay slot scheduling.
5396 (arc_must_save_register): Don't save SP.
5397 * config/arc/arc.md (stack_tie): Remove.
5398 (UNSPEC_ARC_STKTIE): Likewise.
5399
5400 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
5401 Shiva Chen <shiva0217@gmail.com>
5402
5403 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
5404 code gen with large shift amount.
5405
5406 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
5407
5408 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
5409 subreg.
5410
5411 2019-04-16 Jakub Jelinek <jakub@redhat.com>
5412
5413 PR target/90096
5414 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
5415 print -m64/-mx32/-m32 if it is true.
5416 (ix86_debug_options, ix86_function_specific_print): Pass true as
5417 ADD_ABI_P to ix86_target_string.
5418 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
5419 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
5420 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
5421
5422 PR rtl-optimization/90082
5423 * dce.c (can_delete_call): New function.
5424 (deletable_insn_p, mark_insn): Use it.
5425
5426 PR tree-optimization/90090
5427 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
5428 throw internally.
5429 (is_division_by_square): Likewise. Formatting fix.
5430
5431 2019-04-16 Richard Biener <rguenther@suse.de>
5432
5433 PR tree-optimization/56049
5434 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
5435 equality check if alias-set zero will prevail.
5436
5437 2019-04-15 Jeff Law <law@redhat.com>
5438
5439 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
5440 size and alignment as unsigned.
5441
5442 2019-04-15 Richard Biener <rguenther@suse.de>
5443
5444 PR debug/90074
5445 * tree-loop-distribution.c (destroy_loop): Preserve correct
5446 debug info.
5447
5448 2019-04-15 Richard Biener <rguenther@suse.de>
5449
5450 PR tree-optimization/90071
5451 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
5452 abnormal operands from def stmts.
5453
5454 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
5455
5456 PR rtl-optimization/89794
5457 * combine.c (count_auto_inc): New function.
5458 (try_combine): Count how many auto_inc expressions there were in the
5459 original instructions. Ensure we have the same number in the new
5460 instructions. Remove the code that tried to ensure auto_inc side
5461 effects on i1 and i0 are not lost.
5462
5463 2019-04-15 Richard Biener <rguenther@suse.de>
5464
5465 PR ipa/88936
5466 * tree.h (auto_var_p): Declare.
5467 * tree.c (auto_var_p): New function, split out from ...
5468 (auto_var_in_fn_p): ... here.
5469 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
5470 member.
5471 (new_var_info): Initialize it.
5472 (set_uids_in_ptset): Also set the shadow variable uid if required.
5473 (ipa_pta_execute): Postprocess points-to solutions assigning
5474 shadow variable uids for locals that may reach their containing
5475 function recursively.
5476 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
5477 assert but instead check whether the points-to solution is
5478 a singleton.
5479
5480 2019-04-15 Martin Jambor <mjambor@suse.cz>
5481
5482 PR ipa/pr89693
5483 * cgraph.c (clone_of_p): Loop over clone chain for each step in
5484 the thunk chain.
5485
5486 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
5487
5488 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
5489
5490 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
5491 Kito Cheng <kito.cheng@gmail.com>
5492 Shiva Chen <shiva0217@gmail.com>
5493
5494 * config/nds32/nds32-md-auxiliary.c
5495 (nds32_legitimize_pic_address): Use new PIC pattern.
5496 (nds32_legitimize_tls_address): Use new TLS pattern.
5497 (nds32_output_symrel): New.
5498 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
5499 (nds32_alloc_relax_group_id): Ditto.
5500 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
5501 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
5502 relax_group_id.
5503 (nds32_group_tls_insn): Ditto.
5504 (nds32_group_float_insns): Ditto.
5505 * config/nds32/nds32.md (tls_le): New.
5506 (sym_got): Ditto.
5507
5508 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
5509
5510 * configure: Add nds32 target for dwarf2 debug_line checking.
5511 * configure.ac: Regenerated.
5512
5513 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
5514
5515 PR lto/89358
5516 * ipa-devirt.c (skip_in_fields_list_p): New.
5517 (odr_types_equivalent_p): Use it.
5518
5519 2019-04-13 Jakub Jelinek <jakub@redhat.com>
5520
5521 PR target/89093
5522 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
5523 instead of strncmp when checking for thumb and arm. Formatting fixes.
5524
5525 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
5526
5527 * doc/install.texi: Document --with-target-system-zlib.
5528
5529 2019-04-12 Martin Sebor <msebor@redhat.com>
5530
5531 PR c/88383
5532 PR c/89288
5533 PR c/89798
5534 PR c/89797
5535 * targhooks.c (default_vector_alignment): Avoid assuming
5536 argument fits in SHWI.
5537 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
5538 a shift expression.
5539 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
5540
5541 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5542
5543 PR rtl-optimization/89965
5544 * dce.c: Include rtl-iter.h.
5545 (struct check_argument_load_data): New type.
5546 (check_argument_load): New function.
5547 (find_call_stack_args): Check for loads from stack slots still tracked
5548 in sp_bytes and punt if any is found.
5549
5550 * config/mips/loongson-mmiintrin.h: Fix up #error message.
5551
5552 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
5553
5554 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
5555 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
5556
5557 2019-04-12 Martin Liska <mliska@suse.cz>
5558
5559 PR middle-end/89970
5560 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
5561 in error message.
5562 (separate_attrs): Handle multiple 'default's.
5563 (expand_target_clones): Rework error handling code.
5564
5565 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
5566
5567 PR target/87532
5568 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
5569 mode of vector rather than mode of destination for move instruction.
5570 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
5571 Use QI inner mode with V16QI vector mode.
5572
5573 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5574
5575 PR target/52726
5576 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
5577 "invalid %%t operand" in output_operand_lossage message.
5578
5579 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
5580
5581 * config/s390/predicates.md (permute_pattern_operand): New
5582 predicate.
5583 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
5584 operand for the permute pattern.
5585 ("*vec_perm<mode>"): New insn definition.
5586 ("bswap<mode>"): Generate the permute pattern operand in the
5587 expander and perform the operand reloads for pre arch13 level
5588 already.
5589 ("*bswap<mode>_emu"): Rename to ...
5590 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
5591 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
5592 Add the USE operand for the permute pattern.
5593 ("*vec_set_bswap_vec<mode>"): Likewise.
5594
5595 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5596
5597 PR c/89946
5598 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
5599 and gcc_unreachable if it fails, just call tree_to_uhwi which
5600 verifies that too. Test TREE_CHAIN instead of list_length > 1.
5601 Start warning message with a lower-case letter. Formatting fixes.
5602
5603 PR rtl-optimization/90026
5604 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
5605 successors, look for BARRIERs inside of the whole BB_FOOTER chain
5606 rather than just at the start of it. If e->src BB_FOOTER is not NULL
5607 in cfglayout mode, use emit_barrier_after_bb.
5608
5609 2018-04-11 Steve Ellcey <sellcey@marvell.com>
5610
5611 PR rtl-optimization/87763
5612 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
5613 New Instruction.
5614
5615 2019-04-11 Tom de Vries <tdevries@suse.de>
5616
5617 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
5618 max macro using statement expression.
5619
5620 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
5621
5622 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
5623 * xcoffout.c (xcoff_private_rodata_section_name): Define.
5624 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
5625 read_only_private_data_section using xcoff_private_rodata_section_name.
5626 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
5627
5628 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
5629
5630 PR target/90016
5631 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
5632
5633 2019-04-11 Jakub Jelinek <jakub@redhat.com>
5634
5635 PR rtl-optimization/89965
5636 * dce.c (sp_based_mem_offset): New function.
5637 (find_call_stack_args): Use sp_based_mem_offset.
5638
5639 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
5640
5641 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
5642
5643 2019-04-11 Richard Biener <rguenther@suse.de>
5644
5645 PR tree-optimization/90020
5646 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
5647 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
5648 * tree-ssa-pre.c (compute_avail): Use it to not put
5649 possibly trapping references after a call that might not
5650 return into EXP_GEN.
5651 * gcse.c (compute_hash_table_work): Do not elide
5652 marking a block containing a call if the call might not
5653 return.
5654
5655 2019-04-11 Richard Biener <rguenther@suse.de>
5656
5657 PR tree-optimization/90018
5658 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
5659 Test both SLP and interleaving variants.
5660
5661 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
5662
5663 * config/s390/8561.md: New file.
5664 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5665 Add arch13 cpu model.
5666 * config/s390/s390-opts.h (enum processor_type): Likewise.
5667 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
5668 (s390_get_unit_mask): Likewise.
5669 (s390_is_fpd): Likewise.
5670 (s390_is_fxd): Likewise.
5671 * config/s390/s390.h (s390_tune_attr): Likewise.
5672 * config/s390/s390.md: Include arch13 pipeline description.
5673 * config/s390/s390.opt: Add arch13.
5674
5675 2018-04-10 Steve Ellcey <sellcey@marvell.com>
5676
5677 PR rtl-optimization/87763
5678 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
5679 New prototype.
5680 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
5681 New function.
5682 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
5683 New instruction.
5684 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
5685 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
5686 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
5687 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
5688
5689 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
5690
5691 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
5692 "Although" in -fipa-icf documentation.
5693
5694 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
5695 of using multiple -g options.
5696
5697 2019-04-10 Martin Liska <mliska@suse.cz>
5698
5699 PR gcov-profile/89959
5700 * doc/gcov.texi: Make documentation of -x option
5701 more precise.
5702
5703 2019-04-10 Richard Biener <rguenther@suse.de>
5704
5705 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
5706 member.
5707 (DR_GROUP_SAME_DR_STMT): Remove.
5708 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
5709 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
5710 replace with assert.
5711 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
5712 (vect_record_grouped_load_vectors): Remove unreachable code.
5713
5714 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
5715
5716 PR target/90016
5717 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
5718 obsolete reference to N.
5719
5720 2019-04-10 Jakub Jelinek <jakub@redhat.com>
5721
5722 PR middle-end/90025
5723 * expr.c (store_expr): Set properly size on the MEM passed to
5724 clear_storage.
5725
5726 PR c++/90010
5727 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
5728 with strlen in between hostsz-3 and hostsz-1 inclusive when no
5729 translation is needed, and when translation is needed, only append
5730 ... if the string length is hostsz or more bytes long. Avoid using
5731 strncpy or strcat.
5732
5733 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
5734
5735 PR target/90024
5736 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
5737 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
5738 into three.
5739 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
5740 differences directly.
5741 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
5742
5743 2019-04-09 Jakub Jelinek <jakub@redhat.com>
5744
5745 PR translation/90011
5746 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
5747 from diagnostics.
5748 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
5749 diagnostics.
5750 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
5751 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
5752 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
5753 trailing space from -gsplit-dwarf diagnostics.
5754
5755 PR tree-optimization/89998
5756 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
5757 instead of integer_type_node if possible, don't add ranges if return
5758 type is not compatible with int.
5759 * gimple-fold.c (gimple_fold_builtin_sprintf,
5760 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
5761 integer_type_node.
5762
5763 2019-04-09 Martin Liska <mliska@suse.cz>
5764
5765 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
5766 * doc/install.texi: Document the new config.
5767
5768 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
5769
5770 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
5771 use gimple_expr_type for load and store calls. Skip over the
5772 condition argument in a conditional internal function.
5773 Protect use of TREE_INT_CST_LOW.
5774
5775 2019-04-09 Jakub Jelinek <jakub@redhat.com>
5776
5777 PR target/90015
5778 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
5779 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
5780 trailing period from it too.
5781
5782 2019-04-08 wu yuan <wuyuan5@huawei.com>
5783
5784 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
5785 * config/aarch64/aarch64.md : Add "tsv110.md"
5786 * config/aarch64/tsv110.md: New file.
5787
5788 2019-04-08 Richard Biener <rguenther@suse.de>
5789
5790 PR tree-optimization/90006
5791 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
5792 calls like lrint.
5793
5794 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
5795
5796 PR target/83033
5797 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
5798 construction.
5799 (fma_root_node): Likewise.
5800 (func_fma_steering): Likewise.
5801
5802 2019-04-08 Jakub Jelinek <jakub@redhat.com>
5803
5804 PR rtl-optimization/89865
5805 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
5806
5807 PR rtl-optimization/89865
5808 * config/i386/i386.md
5809 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
5810 numbers not to clash with the additional operands[4].
5811 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
5812 with extra register copy in the middle.
5813
5814 2019-04-08 Martin Liska <mliska@suse.cz>
5815
5816 PR gcov-profile/89961
5817 * doc/gcov.texi: Document data_file.
5818 * gcov.c (generate_results): Add data_info into JSON output.
5819
5820 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
5821
5822 PR tree-optimization/89725
5823 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
5824 loop's chrec as invariant symbol.
5825 * tree-chrec.h (chrec_contains_symbols): New parameter.
5826 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
5827 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
5828 function of loops not in DDR's loop_nest.
5829 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
5830
5831 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
5832
5833 PR target/89623
5834 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
5835 Mask.
5836
5837 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
5838
5839 PR target/89945
5840 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
5841 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
5842
5843 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
5844
5845 * sched-deps.c (sched_macro_fuse_insns): Check return value of
5846 targetm.fixed_condition_code_regs.
5847
5848 2019-04-05 Richard Biener <rguenther@suse.de>
5849
5850 PR debug/89892
5851 PR debug/89905
5852 * tree-cfgcleanup.c (remove_forwarder_block): Always move
5853 debug bind stmts but reset them if they are not valid at the
5854 destination.
5855
5856 2019-04-05 Martin Liska <mliska@suse.cz>
5857
5858 PR translation/89936
5859 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
5860 order to wrap keywords or arguments.
5861 * collect2.c (main): Likewise.
5862 (scan_prog_file): Likewise.
5863 (scan_libraries): Likewise.
5864 * common/config/riscv/riscv-common.c
5865 (riscv_subset_list::parsing_subset_version): Likewise.
5866 (riscv_subset_list::parse_std_ext): Likewise.
5867 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5868 Likewise.
5869 * config/arm/arm.c (arm_option_override): Likewise.
5870 * config/cris/cris.c (cris_print_operand): Likewise.
5871 * config/darwin-c.c (darwin_pragma_options): Likewise.
5872 (darwin_pragma_unused): Likewise.
5873 (darwin_pragma_ms_struct): Likewise.
5874 * config/ft32/ft32.c (ft32_print_operand): Likewise.
5875 * config/i386/i386.c (print_reg): Likewise.
5876 (ix86_print_operand): Likewise.
5877 * config/i386/xm-djgpp.h: Likewise.
5878 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
5879 * config/m32c/m32c.c (m32c_option_override): Likewise.
5880 * config/msp430/msp430.c (msp430_option_override): Likewise.
5881 * config/nds32/nds32.c (nds32_option_override): Likewise.
5882 * config/nvptx/mkoffload.c (main): Likewise.
5883 * config/rx/rx.c (rx_print_operand): Likewise.
5884 (valid_psw_flag): Likewise.
5885 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
5886 (vms_pragma_nomember_alignment): Likewise.
5887 (vms_pragma_extern_model): Likewise.
5888 * lto-wrapper.c (compile_offload_image): Likewise.
5889 * omp-offload.c (oacc_parse_default_dims): Likewise.
5890 * symtab.c (symtab_node::verify_base): Likewise.
5891 * tlink.c (recompile_files): Likewise.
5892 (start_tweaking): Likewise.
5893 * tree-profile.c (parse_profile_filter): Likewise.
5894
5895 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
5896
5897 PR tree-optimization/89956
5898 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
5899 multiple negates of the same value.
5900
5901 2019-04-04 Martin Sebor <msebor@redhat.com>
5902
5903 PR middle-end/89957
5904 PR middle-end/89911
5905 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
5906 have the same precision since the function crashes otherwise.
5907 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
5908 has non-zero arguments.
5909
5910 2019-04-04 Martin Sebor <msebor@redhat.com>
5911
5912 PR middle-end/89934
5913 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
5914 out if the number of arguments is less than expected.
5915
5916 2019-04-04 Jeff Law <law@redhat.com>
5917
5918 PR rtl-optimization/89399
5919 * ree.c (combine_set_extension): Use single_set rather than
5920 digging into PATTERN for items on the candidate list.
5921 (combine_reaching_defs): Likewise.
5922
5923 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
5924
5925 PR rtl-optimization/46590
5926 * loop-invariant.c (find_defs): Move df_remove_problem and
5927 df_process_deferred_rescans to move_invariants.
5928 Move df_live_add_problem and df_live_set_all_dirty calls
5929 to move_invariants.
5930 (move_invariants): Likewise.
5931 (move_loop_invariants): Likewise, making the df_live calls
5932 conditional on -O. Remove the problem again if we added it
5933 locally.
5934
5935 2019-04-03 qing zhao <qing.zhao@oracle.com>
5936
5937 PR tree-optimization/89730
5938 * ipa-inline.c (can_inline_edge_p): Delete the checking for
5939 -flive-patching=inline-only-static.
5940 (can_inline_edge_by_limits_p): Add the checking for
5941 -flive-patching=inline-only-static and grant always_inline
5942 even when -flive-patching=inline-only-static is specified.
5943
5944 2019-04-03 Jeff Law <law@redhat.com>
5945
5946 PR rtl-optimization/81025
5947 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
5948
5949 2019-04-03 Richard Biener <rguenther@suse.de>
5950
5951 PR tree-optimization/84101
5952 * tree-vect-stmts.c: Include explow.h for hard_function_value,
5953 regs.h for hard_regno_nregs.
5954 (cfun_returns): New helper.
5955 (vect_model_store_cost): When vectorizing a store to a decl
5956 we return and the function ABI returns in a multi-reg location
5957 account for the possible spilling that will happen.
5958
5959 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
5960
5961 * config/s390/s390.c (s390_legitimate_address_p): Reject long
5962 displacement addresses for vector mode operands.
5963
5964 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
5965
5966 * config/arc/arc.c (GMASK_LEN): Define.
5967 (arc_restore_callee_saves): Restore first blink when
5968 !optimize_size.
5969
5970 2019-04-03 Sudakshina Das <sudi.das@arm.com>
5971
5972 * doc/extend.texi: Add deprecated comment on sign-return-address
5973 function attribute and add mbranch-protection.
5974 * doc/invoke.texi: Add bti to the options for mbranch-protection.
5975
5976 2019-04-03 Richard Biener <rguenther@suse.de>
5977
5978 PR lto/89896
5979 * lto-wrapper.c (run_gcc): Avoid implicit rules making
5980 the all target phony.
5981
5982 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
5983
5984 PR target/89902
5985 PR target/89903
5986 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
5987 Return false for variable DImode shifts.
5988 (dimode_scalar_chain::compute_convert_gain): Do not handle
5989 register count operand in variable DImode shifts.
5990 (dimode_scalar_chain::make_vector_copies): Remove support to copy
5991 count argument of a variable shift instruction to a vector register.
5992 (dimode_scalar_chain::convert_reg): Remove support to convert
5993 count argument of a variable shift instruction.
5994
5995 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
5996
5997 PR rtl-optimization/84206
5998 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
5999 iterating over loop headers.
6000
6001 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
6002
6003 PR rtl-optimization/85876
6004 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
6005 beyond the original fence.
6006
6007 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
6008
6009 * config.gcc: Mark spu* targets as deprecated/obsolete.
6010
6011 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6012
6013 * config/s390/s390-builtin-types.def: New builtin function type
6014 definitions. Remove unused types.
6015 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
6016 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
6017 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
6018 overloaded builtins.
6019 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
6020 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
6021 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
6022 (vec_double, vec_signed, vec_unsigned): Define to use the new
6023 overloaded builtins.
6024 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
6025 Remove expanders.
6026
6027 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6028
6029 * config/s390/s390-builtin-types.def: New builtin function type
6030 definitions.
6031 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
6032 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
6033 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
6034 (s390_vstrszh, s390_vstrszf): New low-level builtins.
6035 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
6036 constant definitions.
6037 * config/s390/vecintrin.h (vec_search_string_cc)
6038 (vec_search_string_until_zero_cc): New builtin name definitions.
6039 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
6040 expanders.
6041 ("vec_vstrs<mode>"): New insn definition.
6042
6043 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6044
6045 * config/s390/s390-builtin-types.def: Add new builtin function
6046 types.
6047 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
6048 New overloaded builtins.
6049 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
6050 s390_vsrd.
6051 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
6052 (UNSPEC_VEC_SLDBYTE): ... this.
6053 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
6054 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
6055 definitions.
6056 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
6057 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
6058 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
6059
6060 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6061
6062 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
6063 New insn definition.
6064 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
6065 * config/s390/vector.md (V_HW_HSD): ... here.
6066
6067 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6068
6069 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
6070 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
6071 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
6072 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
6073 New insn definitions.
6074
6075 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6076
6077 * config/s390/s390-builtin-types.def: Add new builtin function type.
6078 * config/s390/s390-builtins.def: Add overloaded builtin
6079 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
6080 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
6081 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
6082 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
6083 ("eltswap<mode>"): New expander.
6084 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
6085 insn definitions.
6086
6087 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6088
6089 * config/s390/s390-builtin-types.def: Add new builtin function types.
6090 * config/s390/s390-builtins.def: Add overloaded builtin
6091 s390_vec_revb. Add low-level builtins for vlbr and vstbr
6092 instructions.
6093 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
6094 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
6095 ("bswap<mode>"): New expander.
6096 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
6097
6098 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6099
6100 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
6101 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
6102 vector builtin version number in __VEC__.
6103
6104 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6105
6106 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
6107 iterators.
6108 (SFSI): New mode attribute.
6109 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
6110 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
6111 rename to ...
6112 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
6113 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
6114 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
6115 ("floatsi<mode>2"): Add wcefb instruction.
6116
6117 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6118
6119 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
6120 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
6121 mode iterators.
6122 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
6123 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
6124 support 32 bit fp-int conversions. Rename to ...
6125 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
6126 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
6127 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
6128 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
6129 ... to these.
6130
6131 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6132
6133 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
6134 if-then-else constructs if we can use the select instruction.
6135 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
6136
6137 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6138
6139 * config/s390/s390.md ("*popcountdi_arch13_cc")
6140 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
6141 definition.
6142 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
6143 Append _z196 to make it ...
6144 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
6145 ("popcounthi2_z196"): ... this.
6146 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
6147 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
6148
6149 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6150
6151 * config/s390/s390.c (s390_canonicalize_comparison): Convert
6152 certain compares for arch13 in order to make use of the condition
6153 code result produced by the new instructions.
6154 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
6155 nxrk, and nxgrk instruction patterns.
6156 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
6157 (inv_no): Add new code iterator together with some attributes.
6158 ("*andc_split_<mode>"): Disable splitter for arch13.
6159 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
6160 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
6161 ("*<ANDOR:bitops_name>c<GPR:mode>")
6162 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
6163 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
6164 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
6165 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
6166
6167 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
6168
6169 * common/config/s390/s390-common.c (processor_flags_table): New
6170 entry for arch13.
6171 * config.gcc: Support arch13 with the --with-arch= configure flag.
6172 * config/s390/driver-native.c (s390_host_detect_local_cpu):
6173 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
6174 * config/s390/s390.c (s390_get_sched_attrmask)
6175 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
6176 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
6177 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
6178 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
6179 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
6180 definitions.
6181 * config/s390/s390.opt: Support arch13 as processor type in
6182 command line options.
6183
6184 2019-04-02 Martin Liska <mliska@suse.cz>
6185
6186 PR translation/89912
6187 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
6188 Fix param description of graphite-max-arrays-per-scop.
6189
6190 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
6191
6192 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
6193 (ASAN_CC1_SPEC): Use it in 64-bit mode.
6194 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
6195
6196 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6197
6198 PR rtl-optimization/85412
6199 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
6200 sel_sched_region_1, not after.
6201
6202 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6203
6204 PR rtl-optimization/86928
6205 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
6206 compute_live if necessary.
6207 (sel_redirect_edge_and_branch): Likewise.
6208
6209 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
6210
6211 PR rtl-optimization/89865
6212 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
6213 register if it is a part of small class.
6214
6215 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6216
6217 PR rtl-optimization/87273
6218 * sel-sched-ir.c (merge_fences): Remove assert.
6219
6220 2019-04-01 Richard Biener <rguenther@suse.de>
6221
6222 PR tree-optimization/46590
6223 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
6224 (dom_walker::m_reachability): Add in place of...
6225 (dom_walker::m_skip_unreachable_blocks): ...this.
6226 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
6227 Move complex initialization ...
6228 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
6229 lazily and initialize edge flags on each invocation.
6230 (dom_walker::bb_reachable): Use m_reachability.
6231
6232 2019-04-01 Martin Liska <mliska@suse.cz>
6233
6234 PR driver/89861
6235 * opt-suggestions.c (option_proposer::build_option_suggestions):
6236 Add variant without any argument in order to provide better
6237 hints.
6238
6239 2019-04-01 Richard Biener <rguenther@suse.de>
6240
6241 PR c/71598
6242 * gimple.c: Include langhooks.h.
6243 (gimple_get_alias_set): Treat enumeral types as the underlying
6244 integer type.
6245
6246 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
6247 Eric Botcazou <ebotcazou@adacore.com>
6248
6249 PR rtl-optimization/89862
6250 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
6251 that operates on the full registers for WORD_REGISTER_OPERATIONS
6252 architectures.
6253
6254 2019-03-29 Jim Wilson <jimw@sifive.com>
6255
6256 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
6257 Clear MASK_RVC and then set if C subset supported.
6258
6259 2019-03-29 Jakub Jelinek <jakub@redhat.com>
6260
6261 PR c/89872
6262 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
6263 non-addressable complit into its initializer if it is volatile.
6264
6265 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
6266
6267 * opts-common.c (integral_argument): Set errno properly in one case.
6268
6269 2019-03-29 Martin Liska <mliska@suse.cz>
6270
6271 * doc/invoke.texi: Remove -Wchkp from documentation.
6272
6273 2019-03-29 Martin Liska <mliska@suse.cz>
6274
6275 * dbgcnt.c (print_limit_reach): New function.
6276 (dbg_cnt): Use it.
6277
6278 2019-03-29 Martin Liska <mliska@suse.cz>
6279
6280 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
6281 (dbg_cnt_process_opt): Parse first tokens aas
6282 dbg_cnt_process_single_pair is also using strtok.
6283
6284 2019-03-29 Jakub Jelinek <jakub@redhat.com>
6285
6286 PR rtl-optimization/87485
6287 * function.c (expand_function_end): Move stack_protect_epilogue
6288 before loading of return value into hard register(s).
6289
6290 2019-03-28 Jakub Jelinek <jakub@redhat.com>
6291
6292 PR middle-end/89621
6293 * tree-inline.h (struct copy_body_data): Add
6294 dont_remap_vla_if_no_change flag.
6295 * tree-inline.c (remap_type_3, remap_type_2): New functions.
6296 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
6297 and remap_type_2 returns false.
6298 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
6299 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
6300 only from where it is copied to nested contexts.
6301
6302 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
6303
6304 PR target/89865
6305 * config/i386/i386.md (RMW operation with LEA peephole):
6306 Use LEAMODE mode attribute instead of SWI mode iterator for
6307 LEA pattern.
6308
6309 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
6310
6311 PR target/89848
6312 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
6313 Also process XEXP (src, 0) of a shift insn.
6314
6315 2019-03-28 David Malcolm <dmalcolm@redhat.com>
6316
6317 PR middle-end/89725
6318 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
6319 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
6320
6321 2019-03-28 Jakub Jelinek <jakub@redhat.com>
6322
6323 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
6324 test.
6325 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
6326 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
6327 immediately after first one with df_analyze in between, but rather
6328 process all bbs, queueing ones that need second pass in a worklist,
6329 df_analyze, process queued debug insn changes and if second pass is
6330 needed, process bbs from worklist, df_analyze, process queued debug
6331 insns again.
6332
6333 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
6334 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
6335 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
6336
6337 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
6338
6339 PR c/79022
6340 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
6341 definition.
6342
6343 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
6344
6345 PR target/85667
6346 * config/i386/i386.c (ix86_function_value_1): Call the newly added
6347 function for 32-bit MS_ABI.
6348 (function_value_ms_32): New function.
6349
6350 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
6351
6352 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
6353 (movdi): Call gen_movdi_symbol_save_scc.
6354 (gen_movdi_symbol_save_scc): New insn and split.
6355
6356 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
6357
6358 PR rtl-optimization/89313
6359 * function.c (matching_constraint_num): New static function.
6360 (match_asm_constraints_1): Use it. Fixup white space and comment.
6361 Don't replace inputs with non-matching constraints which conflict
6362 with early clobber outputs.
6363
6364 2019-03-27 Jeff Law <law@redhat.com>
6365
6366
6367 PR rtl-optimization/87761
6368 PR rtl-optimization/89826
6369 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
6370 slightly later.
6371 (pass_cprop_hardreg::execute): Call df_analyze after adding the
6372 note problem to get REG_DEAD/REG_UNUSED notes updated.
6373
6374 2019-03-27 Richard Biener <rguenther@suse.de>
6375
6376 PR tree-optimization/89463
6377 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
6378 queue edges to remove.
6379 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
6380 dead stmts. Delay edge removal until PHIs are removed to
6381 make debug-stmt creation not confused by seemingly degenerate
6382 PHIs.
6383
6384 2019-03-27 Alan Modra <amodra@gmail.com>
6385
6386 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
6387 throughout file.
6388 * config/rs6000/darwin.h: Likewise.
6389 * config/rs6000/rs6000.c: Likewise.
6390
6391 2019-03-27 Alan Modra <amodra@gmail.com>
6392
6393 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
6394 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
6395
6396 2019-03-26 Andrew Waterman <andrew@sifive.com>
6397 Jim Wilson <jimw@sifive.com>
6398
6399 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
6400 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
6401 (generic_idivdi, generic_fmul_single, generic_fmul_double)
6402 (generic_fdiv, generic_fsqrt): Add check for generic tune.
6403 (generic_alu): Add auipc to type list.
6404 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
6405 (riscv_microarchitecture): Declare.
6406 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
6407 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
6408 field.
6409 (riscv_microarchitecture): New.
6410 (sifive_7_tune_info): New.
6411 (riscv_cpu_info_table): Add microarchitecture value for rocket and
6412 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
6413 entries.
6414 (riscv_store_data_bypass_p): New.
6415 (riscv_option_override): Set riscv_microarchitecture from
6416 cpu->microarchitecture.
6417 * config/riscv/riscv.md: Include sifive-7.md.
6418 (type): Add auipc.
6419 (tune): New.
6420 (auipc<mode>): Change type to auipc.
6421 (restore_stack_nonlocal): New.
6422 * config/riscv/sifive-7.md: New.
6423 * doc/invoke.texi (RISC-V Options): Update mtune docs.
6424
6425 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
6426
6427 PR target/89827
6428 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
6429 Also process XEXP (src, 0) of a shift insn.
6430
6431 2019-03-26 Richard Biener <rguenther@suse.de>
6432
6433 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
6434 (copy_debug_stmt): Likewise.
6435 (expand_call_inline): Likewise.
6436 (copy_bb): Avoid redundant lookup & set of gimple_block.
6437 * gimple-low.c (lower_gimple_return): Likewise.
6438 (lower_builtin_setjmp): Likewise.
6439
6440 2019-03-26 Jakub Jelinek <jakub@redhat.com>
6441
6442 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
6443 is constant 0, turn into static const data member initialized to false.
6444 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
6445 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
6446
6447 2019-03-26 Jason Merrill <jason@redhat.com>
6448 Jakub Jelinek <jakub@redhat.com>
6449
6450 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
6451 method.
6452 (mem_alloc_description::release_object_overhead): Fix comment typos.
6453 * hash-table.h (hash_table::~hash_table): Call
6454 release_instance_overhead only if m_entries is non-NULL, otherwise
6455 call unregister_descriptor.
6456
6457 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
6458
6459 PR tree-optimization/81740
6460 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6461 In case of outer loop vectorization, check for backward dependence
6462 at the inner loop if outer loop dependence is reversed.
6463
6464 2019-03-26 Alan Modra <amodra@gmail.com>
6465
6466 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
6467 rs6000_vector_mem init. Correct wI and wJ comment.
6468
6469 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
6470
6471 PR rtl-optimization/88347
6472 PR rtl-optimization/88423
6473 * sched-deps.c (sched_analyze_insn): Take into account that for
6474 tablejumps the barrier appears after a label and a jump_table_data.
6475
6476 2019-03-25 Martin Sebor <msebor@redhat.com>
6477
6478 PR c/89812
6479 * c-common.c (check_user_alignment): Rename local. Correct maximum
6480 alignment in diagnostic. Avoid assuming argument fits in SHWI,
6481 convert it to UHWI when it fits.
6482
6483 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
6484
6485 PR debug/86964
6486 * dwarf2out.c (premark_used_variables): New function.
6487 (prune_unused_types_walk): Do not mark not premarked external
6488 variables.
6489 (prune_unused_types): Call premark_used_variables.
6490
6491 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
6492
6493 PR rtl-optimization/89676
6494 * lra-constraints.c (curr_insn_transform): Do match reload for
6495 early clobbers when the match was successful only for different
6496 registers.
6497
6498 2019-03-25 Martin Sebor <msebor@redhat.com>
6499
6500 * doc/extend.texi (Common Type Attributes): Document vector_size.
6501 (Common Variable Attributes): Mention size constraint. Correct
6502 quoting and typos.
6503 (Vector Extensions): Use @dfn when defining bas type. Clarify
6504 base type and size constraints.
6505
6506 2019-03-25 Richard Biener <rguenther@suse.de>
6507
6508 PR tree-optimization/89789
6509 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
6510 changes from non-undefined back to undefined.
6511
6512 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
6513
6514 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
6515 heap string and a gc string, but since this variable is unknown to
6516 ggc the gc string might get reused and corrupted. Fixed by always
6517 using a heap string.
6518
6519 2019-03-25 Richard Biener <rguenther@suse.de>
6520
6521 PR tree-optimization/89779
6522 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
6523 to remove IV defs, delay actual removal.
6524 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
6525 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
6526 very end, properly also reset loop control IV information.
6527
6528 2019-03-25 Richard Biener <rguenther@suse.de>
6529
6530 PR tree-optimization/89802
6531 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
6532 move EH data to folded stmt.
6533
6534 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
6535
6536 * config/s390/s390-builtin-types.def: Remove few unused types and
6537 fix sort order for others.
6538
6539 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
6540
6541 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
6542 expected and found types with -mdebug during builtin matching.
6543
6544 2019-03-25 Richard Biener <rguenther@suse.de>
6545
6546 PR middle-end/89790
6547 * fold-const.c (operand_equal_p): Revert last change with
6548 updated comment.
6549
6550 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
6551
6552 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
6553 notes for the result of the __tls_get_addr calls.
6554 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
6555
6556 2019-03-24 Jeff Law <law@redhat.com>
6557
6558 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
6559
6560 PR rtl-optimization/87761
6561 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
6562 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
6563 as needed.
6564 (pass_cprop_hardreg::execute): Add df note problem and defer insn
6565 rescans. Reprocess blocks as needed, calling df_analyze before
6566 reprocessing. Always call df_analyze before fixing up debug bind
6567 insns.
6568
6569 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
6570
6571 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
6572 big endian.
6573
6574 2019-03-22 Andrew Pinski <apinski@marvell.com>
6575
6576 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
6577 attrribute for uxtw.
6578
6579 2019-03-26 Jeff Law <law@redhat.com>
6580
6581 PR rtl-optimization/87761
6582 * config/mips/mips-protos.h (mips_split_move): Add new argument.
6583 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
6584 (mips_split_move): Accept new INSN argument. Try to forward SRC
6585 into the next instruction.
6586 (mips_split_move_insn): Pass INSN through to mips_split_move.
6587
6588 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
6589
6590 PR rtl-optimization/89676
6591 * lra-constraints.c (curr_insn_transform): Do match reload for
6592 early clobbers even if the match was successful.
6593
6594 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6595
6596 PR c++/87481
6597 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
6598
6599 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
6600
6601 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
6602
6603 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6604
6605 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
6606 <avx512>_fmsub_<mode>_mask3<round_name>,
6607 <avx512>_fnmadd_<mode>_mask3<round_name>,
6608 <avx512>_fnmsub_<mode>_mask3<round_name>,
6609 avx512f_vmfmadd_<mode>_mask3<round_name>,
6610 avx512f_vmfmsub_<mode>_mask3<round_name>,
6611 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
6612 instead of register_operand and %v instead of v for match_operand 1.
6613 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
6614 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
6615 <round_nimm_predicate> instead of register_operand and %v instead of v
6616 for match_operand 1.
6617
6618 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
6619 <avx512>_fmadd_<mode>_mask3<round_name>,
6620 <avx512>_fmsub_<mode>_mask<round_name>,
6621 <avx512>_fmsub_<mode>_mask3<round_name>,
6622 <avx512>_fnmadd_<mode>_mask<round_name>,
6623 <avx512>_fnmadd_<mode>_mask3<round_name>,
6624 <avx512>_fnmsub_<mode>_mask<round_name>,
6625 <avx512>_fnmsub_<mode>_mask3<round_name>,
6626 <avx512>_fmaddsub_<mode>_mask<round_name>,
6627 <avx512>_fmaddsub_<mode>_mask3<round_name>,
6628 <avx512>_fmsubadd_<mode>_mask<round_name>,
6629 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
6630 <round_nimm_predicate> instead of nonimmediate_operand.
6631 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
6632 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
6633 Use register_operand instead of <round_nimm_predicate> for the
6634 operand that needs to match output.
6635 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
6636 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
6637 Likewise. Formatting fixes.
6638
6639 PR target/89784
6640 * config/i386/i386.c (enum ix86_builtins): Remove
6641 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
6642 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
6643 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
6644 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
6645 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
6646 __builtin_ia32_vfmsubss3_mask3): New builtins.
6647 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
6648 avx512f_vmfmadd_<mode>_mask3<round_name>,
6649 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
6650 *avx512f_vmfmsub_<mode>_mask<round_name>,
6651 avx512f_vmfmsub_<mode>_mask3<round_name>,
6652 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
6653 *avx512f_vmfnmadd_<mode>_mask<round_name>,
6654 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
6655 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
6656 *avx512f_vmfnmsub_<mode>_mask<round_name>,
6657 avx512f_vmfnmsub_<mode>_mask3<round_name>,
6658 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
6659 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
6660 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
6661 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
6662 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
6663 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
6664 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
6665 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
6666 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
6667 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
6668 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
6669 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
6670 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
6671 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
6672 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
6673 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
6674 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
6675 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
6676 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
6677 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
6678 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
6679 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
6680
6681 2019-03-21 Martin Sebor <msebor@redhat.com>
6682
6683 PR tree-optimization/89350
6684 * builtins.c (compute_objsize): Also ignore offsets whose upper
6685 bound is negative.
6686 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
6687 (builtin_memref::builtin_memref): Initialize new member.
6688 Allow EXPR to be null.
6689 (builtin_memref::extend_offset_range): Replace local with a member.
6690 Avoid assuming pointer offsets are unsigned.
6691 (builtin_memref::set_base_and_offset): Determine base object
6692 before computing offset range.
6693 (builtin_access::builtin_access): Handle memset.
6694 (builtin_access::generic_overlap): Replace local with a member.
6695 (builtin_access::strcat_overlap): Same.
6696 (builtin_access::overlap): Same.
6697 (maybe_diag_overlap): Same.
6698 (maybe_diag_access_bounds): Same.
6699 (wrestrict_dom_walker::check_call): Handle memset.
6700 (check_bounds_or_overlap): Same.
6701
6702 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
6703 Jakub Jelinek <jakub@redhat.com>
6704
6705 PR lto/89692
6706 * tree.c (fld_type_variant, fld_incomplete_type_of,
6707 fld_process_array_type): Call fld->pset.add and don't call
6708 add_tree_to_fld_list if it returns true.
6709 (free_lang_data_in_type): Similarly with self-recursive call. Purge
6710 non-marked types from TYPE_NEXT_VARIANT list.
6711 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
6712
6713 2019-03-21 Jakub Jelinek <jakub@redhat.com>
6714
6715 * hash-table.h (hash_table): Add Lazy template parameter defaulted
6716 to false, if true, don't alloc_entries during construction, but defer
6717 it to the first method that needs m_entries allocated.
6718 (hash_table::hash_table, hash_table::~hash_table,
6719 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
6720 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
6721 hash_table::clear_slot, hash_table::traverse_noresize,
6722 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
6723 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
6724 false.
6725 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
6726 NO_INSERT instead of find_with_hash.
6727 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
6728 hash_set::m_table): Add Lazy to template params of hash_table.
6729 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
6730 * attribs.c (test_attribute_exclusions): Likewise.
6731 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
6732 hash_set. Add tests for hash_set with Lazy = true.
6733
6734 2019-03-21 Richard Biener <rguenther@suse.de>
6735
6736 PR tree-optimization/89779
6737 * tree.c (tree_nop_conversion): Consolidate and fix defensive
6738 checks with respect to released SSA names now having error_mark_node
6739 type.
6740 * fold-const.c (operand_equal_p): Likewise.
6741
6742 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
6743
6744 PR target/89775
6745 * config/s390/s390.c (global_not_special_regno_p): Move to make it
6746 available to ...
6747 (s390_optimize_register_info): Use global_not_special_regno_p to
6748 check for global regs.
6749
6750 2019-03-20 Jakub Jelinek <jakub@redhat.com>
6751
6752 PR target/89752
6753 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
6754 update this_alternative nor this_alternative_set.
6755
6756 2019-03-19 Jim Wilson <jimw@sifive.com>
6757
6758 PR target/89411
6759 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
6760 align, size, offset. Use them to handle a BLKmode reference. Update
6761 comment.
6762 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
6763
6764 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6765
6766 PR rtl-optimization/89768
6767 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
6768 instead of GEN_INT.
6769 (unroll_loop_runtime_iterations): Likewise.
6770
6771 2019-03-19 Martin Sebor <msebor@redhat.com>
6772
6773 PR tree-optimization/89644
6774 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
6775 rather than endptr as an indicator of nul-termination.
6776
6777 PR tree-optimization/89644
6778 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
6779 arrays in determining sequence sizes in strncpy and stpncpy.
6780
6781 2019-03-19 Martin Liska <mliska@suse.cz>
6782
6783 PR middle-end/89737
6784 * predict.c (combine_predictions_for_bb): Empty likely_edges and
6785 unlikely_edges if there's an edge that belongs to both these sets.
6786
6787 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
6788
6789 PR target/89746
6790 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
6791 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
6792 go via a stack temporary.
6793
6794 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6795
6796 PR target/89378
6797 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
6798 instead of gen_rtx_SUBREG.
6799 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
6800
6801 2019-03-19 Richard Biener <rguenther@suse.de>
6802
6803 PR debug/88389
6804 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
6805
6806 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
6807
6808 PR lto/87809
6809 PR lto/89335
6810 * tree.c (free_lang_data_in_decl): Do not free context of C++
6811 destrutors.
6812
6813 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6814
6815 PR target/89506
6816 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
6817 subs for the first alternative except when operands[3] is 1.
6818
6819 PR target/89752
6820 * gimplify.c (gimplify_asm_expr): For output argument with
6821 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
6822 diagnose error.
6823
6824 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
6825
6826 PR rtl-optimization/89753
6827 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
6828 explicit unrolling factor even more robust.
6829
6830 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6831
6832 PR target/89726
6833 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
6834 compensation use x2 += 1 instead of x2 -= -1 and when honoring
6835 signed zeros, do another copysign after the compensation.
6836
6837 2019-03-18 Martin Sebor <msebor@redhat.com>
6838
6839 PR tree-optimization/89720
6840 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
6841 more conservatively, the same as anti-range.
6842
6843 2019-03-18 Richard Biener <rguenther@suse.de>
6844
6845 PR middle-end/88945
6846 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
6847 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
6848 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
6849 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
6850
6851 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
6852
6853 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
6854 Extend queue to 1024 entries.
6855 Add "consumed" field.
6856 (gomp_print_output): Remove print_index parameter.
6857 Add final parameter.
6858 Change limit to unsigned.
6859 Use consumed field to implement circular buffer.
6860 Detect interrupted print in final pass.
6861 Flush output at the end.
6862 (run): Update gomp_print_output usage.
6863 (main): Initialize kernargs->output_data.consumed.
6864
6865 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
6866
6867 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
6868 calculation of the minimum number of scalar iterations for
6869 fully-predicated loops.
6870
6871 2019-03-18 Martin Jambor <mjambor@suse.cz>
6872
6873 PR tree-optimization/89546
6874 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
6875 any propagation to its children took place.
6876
6877 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
6878
6879 PR target/89627
6880 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
6881 parameter, and make use of it.
6882 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
6883
6884 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6885
6886 * config/arc/arc.opt (mcode-density-frame): Get the inital value
6887 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
6888 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
6889 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
6890 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
6891 match what the ops is doing.
6892 (push_multi_fp_blink): Likewise.
6893 * config/arc/arc.c (arc_override_options): Enable enter/leave when
6894 compiling for size and elf target.
6895 (arc_save_callee_enter): Adjust note to match what enter/leave
6896 operation does.
6897
6898 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6899
6900 * config/arc/arc.md (tst_movb): Fix constraint.
6901
6902 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6903
6904 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
6905
6906 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6907
6908 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
6909 * config/arc/arc.c (arc_conditional_register_usage): Remove all
6910 reg_alloc_order references.
6911 (size_alloc_order): Define.
6912 (arc_adjust_reg_alloc_order): New function.
6913 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
6914 order.
6915 (ADJUST_REG_ALLOC_ORDER): Define.
6916 (HONOR_REG_ALLOC_ORDER): Likewise.
6917
6918 2019-03-18 Richard Biener <rguenther@suse.de>
6919
6920 PR target/87561
6921 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
6922 loads and stores a bit more.
6923
6924 2019-03-18 Richard Biener <rguenther@suse.de>
6925
6926 PR target/87561
6927 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
6928 load pessimization to stores as well.
6929
6930 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
6931
6932 PR middle-end/86979
6933 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
6934 successor, use NULL as its av set.
6935
6936 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
6937
6938 PR rtl-optimization/89721
6939 * lra-constraints (invariant_p): Return false if side_effects_p holds.
6940
6941 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
6942
6943 PR target/87532
6944 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6945 When handling vec_extract, use modular arithmetic to allow
6946 constant selectors greater than vector length.
6947 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
6948 V1TImode vectors to have constant selector values greater than 0.
6949 Use modular arithmetic to compute vector index.
6950 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
6951 index for in-memory vectors. Correct code generation for
6952 in-register vectors.
6953 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
6954 compute index.
6955
6956 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
6957
6958 PR c++/88534
6959 PR c++/88537
6960 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
6961 VAR_DECL args.
6962
6963 2019-03-15 Jakub Jelinek <jakub@redhat.com>
6964
6965 PR c++/89709
6966 * tree.c (inchash::add_expr): Strip any location wrappers.
6967 * fold-const.c (operand_equal_p): Move stripping of location wrapper
6968 after hash verification.
6969
6970 PR debug/89704
6971 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
6972 SIGN_EXTEND and ZERO_EXTEND.
6973
6974 2019-03-14 Jason Merrill <jason@redhat.com>
6975 Jakub Jelinek <jakub@redhat.com>
6976
6977 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
6978 than if is_empty (*slot).
6979 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
6980 existing elt and for elt removal.
6981 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
6982 of already removed elt.
6983
6984 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
6985
6986 PR target/89650
6987 * config/i386/i386.c (remove_partial_avx_dependency): Handle
6988 REG_EH_REGION note.
6989
6990 2019-03-14 Martin Liska <mliska@suse.cz>
6991
6992 PR other/89712
6993 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
6994
6995 2019-03-14 Richard Biener <rguenther@suse.de>
6996
6997 PR target/89711
6998 * config/i386/i386.c (make_resolver_func): Properly set
6999 DECL_CONTEXT on the RESULT_DECL.
7000 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
7001
7002 2019-03-14 Richard Biener <rguenther@suse.de>
7003
7004 * gimple-pretty-print.c: Include cfgloop.h.
7005 (dump_gimple_phi): Adjust.
7006 (dump_gimple_bb_header): Dump loop header for GIMPLE.
7007 (pp_cfg_jump): Adjust.
7008 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
7009 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
7010 (lower_phi_internal_fn): Remove.
7011 (verify_gimple_call): Remove IFN_PHI special-casing.
7012 (dump_function_to_file): Dump IL state.
7013 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
7014 done to deal with PHI nodes being present in non-SSA state.
7015
7016 2019-03-14 Jakub Jelinek <jakub@redhat.com>
7017
7018 PR ipa/89684
7019 * multiple_target.c (create_dispatcher_calls): Change
7020 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
7021 In the node->iterate_referring loop, push *ref rather than ref, call
7022 ref->remove_reference () and always pass 0 to iterate_referring.
7023
7024 PR rtl-optimization/89679
7025 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
7026 would contain a paradoxical SUBREG.
7027
7028 2019-03-14 Richard Biener <rguenther@suse.de>
7029
7030 PR tree-optimization/89710
7031 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
7032 safe_dyn_cast.
7033
7034 2019-03-14 Martin Liska <mliska@suse.cz>
7035
7036 * coverage.c (coverage_begin_function): Stream also
7037 end_column.
7038 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
7039 documentation about function declaration location.
7040 * gcov-dump.c (tag_function): Print whole range
7041 of function declaration.
7042 * gcov.c (struct function_info): Add end_column field.
7043 (function_info::function_info): Initialize it.
7044 (output_json_intermediate_file): Output {start,end}_column
7045 fields.
7046 (read_graph_file): Read end_column.
7047
7048 2019-03-14 Richard Biener <rguenther@suse.de>
7049
7050 PR middle-end/89698
7051 * fold-const.c (operand_equal_p): For INDIRECT_REF check
7052 that the access types are similar.
7053
7054 2019-03-14 Jakub Jelinek <jakub@redhat.com>
7055
7056 PR tree-optimization/89703
7057 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
7058 aren't compatible also with builtin_decl_explicit. Check pure
7059 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
7060 and BUILT_IN_STPNCPY{,_CHK}.
7061
7062 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
7063
7064 PR target/89523
7065 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
7066 addr32 prefix to VSIB address for X32.
7067 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
7068 "%M2" to opcode.
7069 (*avx512pf_gatherpf<mode>df_mask): Likewise.
7070 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
7071 (*avx512pf_scatterpf<mode>df_mask): Likewise.
7072 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
7073 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
7074 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
7075 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
7076 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
7077 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
7078 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
7079 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
7080 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
7081 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
7082 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
7083 (*avx512f_scatterdi<mode>): Likewise.
7084
7085 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
7086
7087 PR target/85860
7088 * lra-constraints.c (inherit_in_ebb): Update
7089 potential_reload_hard_regs along with live_hard_regs.
7090
7091 2019-03-13 Jakub Jelinek <jakub@redhat.com>
7092
7093 PR debug/89498
7094 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
7095 DWARF_OFFSET_SIZE.
7096 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
7097
7098 2019-03-13 Martin Sebor <msebor@redhat.com>
7099
7100 PR tree-optimization/89662
7101 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
7102 has a size.
7103
7104 2019-03-13 Richard Biener <rguenther@suse.de>
7105
7106 PR middle-end/89677
7107 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
7108 throw FP expressions at tree-affine.
7109
7110 2019-03-14 Richard Biener <rguenther@suse.de>
7111
7112 * tree-pretty-print.c (dump_generic_node): For -gimple properly
7113 dump negative integer constants using _Literal (type) -num.
7114
7115 2019-03-13 Jakub Jelinek <jakub@redhat.com>
7116
7117 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
7118 nonlocal_value member.
7119
7120 PR middle-end/88588
7121 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
7122 (ipa_simd_modify_function_body): Handle PHIs.
7123
7124 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
7125
7126 * config/s390/s390.c (s390_option_override_internal): Use more
7127 aggressive inlining parameters.
7128
7129 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
7130
7131 * config/s390/3906.md: New file.
7132 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
7133 (LONGRUNNING_THRESHOLD): Remove.
7134 (MAX_SCHED_MIX_SCORE): Decrease.
7135 (MAX_SCHED_MIX_DISTANCE): Decrease.
7136 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
7137 (struct s390_sched_state): New struct to hold scheduling state.
7138 (S390_SCHED_STATE_NORMAL): Remove.
7139 (S390_SCHED_STATE_CRACKED): Remove.
7140 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
7141 (s390_get_sched_attrmask): Use new attribute.
7142 (s390_get_unit_mask): Use new units.
7143 (s390_is_fpd): New function.
7144 (s390_is_fxd): New function.
7145 (s390_is_longrunning): New function.
7146 (s390_sched_score): Use new functions.
7147 (s390_sched_reorder): Likewise.
7148 (s390_sched_variable_issue): Rework and use new functions.
7149 (s390_sched_init): Use new functions.
7150 * config/s390/s390.h (s390_tune_attr): Add z14.
7151 * config/s390/s390.md: Add z14.
7152
7153 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
7154
7155 * config/s390/2964.md: Update pipeline description.
7156 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
7157 (LONGRUNNING_THRESHOLD): Remove.
7158 (LATENCY_FACTOR): Remove.
7159 (s390_get_unit_mask): Add unit.
7160 (s390_sched_score): Use fxd/fpd.
7161 (s390_sched_variable_issue): Use fxd/fpd.
7162
7163 2019-03-12 Martin Liska <mliska@suse.cz>
7164
7165 * config/i386/i386.c: Reword an error message.
7166
7167 2019-03-12 Martin Jambor <mjambor@suse.cz>
7168
7169 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
7170 terminate with newline.
7171
7172 2019-03-12 Jakub Jelinek <jakub@redhat.com>
7173
7174 PR target/52726
7175 * config/s390/s390.md (tabort): Use %wd instead of
7176 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
7177 letters and periods.
7178 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
7179 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
7180 's with %< and %>.
7181
7182 PR middle-end/89663
7183 * builtins.c (expand_builtin_int_roundingfn,
7184 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
7185 gcc_unreachable if validate_arglist fails.
7186
7187 2019-03-12 Richard Biener <rguenther@suse.de>
7188
7189 PR tree-optimization/89664
7190 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
7191 free the occurance tree after the early out.
7192
7193 2019-03-11 Jakub Jelinek <jakub@redhat.com>
7194
7195 PR middle-end/89655
7196 PR bootstrap/89656
7197 * vr-values.c (vr_values::update_value_range): If
7198 old_vr->varying_p (), don't update it, make new_vr also VARYING
7199 and return false.
7200
7201 2019-03-11 Martin Liska <mliska@suse.cz>
7202
7203 * config/aarch64/aarch64.c (aarch64_override_options_internal):
7204 Fix double string quoting.
7205
7206 2019-03-11 Martin Liska <mliska@suse.cz>
7207
7208 * collect-utils.c (collect_wait): Wrap apostrophes
7209 in gcc internal format with %'.
7210 * collect2.c (main): Likewise.
7211 (scan_prog_file): Likewise.
7212 (scan_libraries): Likewise.
7213 * config/i386/i386.c (ix86_expand_call): Likewise.
7214 (ix86_handle_interrupt_attribute): Likewise.
7215 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
7216 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
7217 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
7218 * lto-wrapper.c (find_crtoffloadtable): Likewise.
7219 * symtab.c (symtab_node::verify_base): Likewise.
7220 * tree-cfg.c (verify_gimple_label): Likewise.
7221 * tree.c (verify_type_variant): Likewise.
7222
7223 2019-03-11 Martin Liska <mliska@suse.cz>
7224
7225 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
7226 in a string format message and fix GNU coding style.
7227 (expand_builtin_set_thread_pointer): Likewise.
7228 * common/config/aarch64/aarch64-common.c
7229 (aarch64_rewrite_selected_cpu): Likewise.
7230 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
7231 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
7232 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
7233 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
7234 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
7235 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
7236 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
7237 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
7238 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
7239 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
7240 Likewise.
7241 * common/config/riscv/riscv-common.c
7242 (riscv_subset_list::parsing_subset_version): Likewise.
7243 (riscv_subset_list::parse_std_ext): Likewise.
7244 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
7245 (riscv_subset_list::parse): Likewise.
7246 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
7247 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
7248 (aarch64_override_options_internal): Likewise.
7249 (aarch64_validate_mcpu): Likewise.
7250 (aarch64_validate_march): Likewise.
7251 (aarch64_validate_mtune): Likewise.
7252 (aarch64_override_options): Likewise.
7253 * config/alpha/alpha.c (alpha_option_override): Likewise.
7254 * config/arc/arc.c (arc_init): Likewise.
7255 (parse_mrgf_banked_regs_option): Likewise.
7256 (arc_override_options): Likewise.
7257 (arc_expand_builtin_aligned): Likewise.
7258 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
7259 (arm_expand_builtin): Likewise.
7260 * config/arm/arm.c (arm_option_check_internal): Likewise.
7261 (arm_configure_build_target): Likewise.
7262 (arm_option_override): Likewise.
7263 (arm_options_perform_arch_sanity_checks): Likewise.
7264 (arm_handle_cmse_nonsecure_entry): Likewise.
7265 (arm_handle_cmse_nonsecure_call): Likewise.
7266 (arm_tls_referenced_p): Likewise.
7267 (thumb1_expand_prologue): Likewise.
7268 * config/avr/avr.c (avr_option_override): Likewise.
7269 * config/bfin/bfin.c (bfin_option_override): Likewise.
7270 * config/c6x/c6x.c (c6x_option_override): Likewise.
7271 * config/cr16/cr16.c (cr16_override_options): Likewise.
7272 * config/cris/cris.c (cris_option_override): Likewise.
7273 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
7274 * config/darwin-c.c (macosx_version_as_macro): Likewise.
7275 * config/darwin.c (darwin_override_options): Likewise.
7276 * config/frv/frv.c (frv_expand_builtin): Likewise.
7277 * config/h8300/h8300.c (h8300_option_override): Likewise.
7278 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
7279 (ix86_option_override_internal): Likewise.
7280 (warn_once_call_ms2sysv_xlogues): Likewise.
7281 (ix86_expand_prologue): Likewise.
7282 (split_stack_prologue_scratch_regno): Likewise.
7283 (ix86_warn_parameter_passing_abi): Likewise.
7284 * config/ia64/ia64.c (fix_range): Likewise.
7285 * config/m68k/m68k.c (m68k_option_override): Likewise.
7286 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
7287 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
7288 (mips_set_compression_mode): Likewise.
7289 * config/mmix/mmix.c (mmix_option_override): Likewise.
7290 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
7291 * config/msp430/msp430.c (msp430_option_override): Likewise.
7292 * config/nds32/nds32.c (nds32_option_override): Likewise.
7293 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
7294 (nios2_option_override): Likewise.
7295 (nios2_expand_custom_builtin): Likewise.
7296 * config/nvptx/mkoffload.c (main): Likewise.
7297 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
7298 * config/pa/pa.c (fix_range): Likewise.
7299 (pa_option_override): Likewise.
7300 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
7301 (riscv_option_override): Likewise.
7302 * config/rl78/rl78.c (rl78_option_override): Likewise.
7303 * config/rs6000/aix61.h: Likewise.
7304 * config/rs6000/aix71.h: Likewise.
7305 * config/rs6000/aix72.h: Likewise.
7306 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
7307 * config/rs6000/freebsd64.h: Likewise.
7308 * config/rs6000/linux64.h: Likewise.
7309 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
7310 (rs6000_expand_zeroop_builtin): Likewise.
7311 (rs6000_expand_mtfsb_builtin): Likewise.
7312 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
7313 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
7314 (rs6000_invalid_builtin): Likewise.
7315 (rs6000_expand_split_stack_prologue): Likewise.
7316 * config/rs6000/rtems.h: Likewise.
7317 * config/rx/rx.c (valid_psw_flag): Likewise.
7318 (rx_expand_builtin): Likewise.
7319 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
7320 * config/s390/s390.c (s390_expand_builtin): Likewise.
7321 (s390_function_profiler): Likewise.
7322 (s390_option_override_internal): Likewise.
7323 (s390_option_override): Likewise.
7324 * config/sh/sh.c (sh_option_override): Likewise.
7325 (sh_builtin_saveregs): Likewise.
7326 (sh_fix_range): Likewise.
7327 * config/sh/vxworks.h: Likewise.
7328 * config/sparc/sparc.c (sparc_option_override): Likewise.
7329 * config/spu/spu.c (spu_option_override): Likewise.
7330 (fix_range): Likewise.
7331 * config/visium/visium.c (visium_option_override): Likewise.
7332 (visium_handle_interrupt_attr): Likewise.
7333 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
7334 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
7335 (dbg_cnt_process_opt): Likewise.
7336 * dwarf2out.c (output_dwarf_version): Likewise.
7337 * except.c (expand_eh_return): Likewise.
7338 * gcc.c (defined): Likewise.
7339 (driver_handle_option): Likewise.
7340 (process_command): Likewise.
7341 (compare_files): Likewise.
7342 (driver::prepare_infiles): Likewise.
7343 (driver::do_spec_on_infiles): Likewise.
7344 (driver::maybe_run_linker): Likewise.
7345 * omp-offload.c (oacc_parse_default_dims): Likewise.
7346 * opts-global.c (handle_common_deferred_options): Likewise.
7347 * opts.c (parse_sanitizer_options): Likewise.
7348 (common_handle_option): Likewise.
7349 (enable_warning_as_error): Likewise.
7350 * passes.c (enable_disable_pass): Likewise.
7351 * plugin.c (parse_plugin_arg_opt): Likewise.
7352 (default_plugin_dir_name): Likewise.
7353 * targhooks.c (default_expand_builtin_saveregs): Likewise.
7354 (default_pch_valid_p): Likewise.
7355 * toplev.c (init_asm_output): Likewise.
7356 (process_options): Likewise.
7357 (toplev::run_self_tests): Likewise.
7358 * tree-cfg.c (verify_gimple_call): Likewise.
7359 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
7360 (tree_inlinable_function_p): Likewise.
7361 * var-tracking.c (vt_find_locations): Likewise.
7362
7363 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
7364
7365 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
7366 only on the else branch.
7367
7368 2019-03-11 Martin Liska <mliska@suse.cz>
7369
7370 * gcov.c (output_intermediate_json_line): Print function
7371 name of each line.
7372 (output_json_intermediate_file): Add new argument.
7373 * doc/gcov.texi: Document the change.
7374
7375 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
7376
7377 PR rtl-optimization/89588
7378 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
7379 explicit unrolling factor more robust.
7380
7381 2019-03-11 Richard Biener <rguenther@suse.de>
7382
7383 PR tree-optimization/89649
7384 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
7385 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
7386 on the prolog and epilog loops.
7387 (vect_loop_versioning): Return copy of loop.
7388 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
7389 on the non-vectorized version of the loop.
7390
7391 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
7392
7393 PR target/68924
7394 * config/i386/sse.md (*vec_extractv2di_0_sse):
7395 Add (=r,x) alternative and corresponding splitter.
7396
7397 2019-03-10 Martin Jambor <mjambor@suse.cz>
7398
7399 PR tree-optimization/85762
7400 PR tree-optimization/87008
7401 PR tree-optimization/85459
7402 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
7403 it points to if there is a type changing MEM_REF. Adjust all callers.
7404 (build_accesses_from_assign): Disable total scalarization if
7405 contains_vce_or_bfcref_p returns true through the new parameter, for
7406 both rhs and lhs.
7407
7408 2019-03-09 Jakub Jelinek <jakub@redhat.com>
7409
7410 PR c/88568
7411 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
7412 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
7413
7414 PR target/79645
7415 * common.opt (fdiagnostics-show-labels,
7416 fdiagnostics-show-line-numbers, fdiagnostics-format=,
7417 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
7418 gas-locview-support, ginline-points, ginternal-reset-location-views):
7419 Terminate description text with a dot.
7420 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
7421 * config/mcore/mcore.opt (m210, m340): Likewise.
7422 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
7423 mnops=): Start description text with a capital letter.
7424 * config/arc/arc.opt (msize-level=): Likewise.
7425 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
7426 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
7427 mnewlib): Likewise.
7428 * config/ft32/ft32.opt (msim): Likewise.
7429 (mft32b, mcompress): Likewise. Terminate description text with a dot.
7430 (mnodiv, mnopm): Terminate description text with a dot.
7431 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
7432 a colon.
7433 * config/i386/i386.opt (prefer_vector_width, instrument_return):
7434 Likewise.
7435 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
7436 text.
7437
7438 PR rtl-optimization/89634
7439 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
7440 are modified in BB_END (e->src) instruction.
7441
7442 2019-03-08 David Malcolm <dmalcolm@redhat.com>
7443
7444 PR target/79926
7445 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
7446 messages more amenable to translation, and improve wording.
7447
7448 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
7449
7450 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
7451 ud- and du-chains between phases.
7452
7453 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
7454
7455 PR debug/89631
7456 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
7457 instead of POLY_INT_CST.
7458
7459 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
7460
7461 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
7462 requirement.
7463
7464 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
7465
7466 PR target/68924
7467 PR target/78782
7468 PR target/87558
7469 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
7470 (_mm_storeu_si64): Ditto.
7471
7472 2019-03-08 Martin Liska <mliska@suse.cz>
7473
7474 PR target/86952
7475 * config/i386/i386.c (ix86_option_override_internal): Disable
7476 jump tables when retpolines are used.
7477
7478 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
7479
7480 PR go/63560
7481 * ipa-split.c (execute_split_functions): Do not split
7482 'noinline' or 'section' function.
7483
7484 2019-03-08 Jakub Jelinek <jakub@redhat.com>
7485
7486 PR target/79846
7487 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
7488 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
7489 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
7490
7491 PR ipa/80000
7492 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
7493 from diagnostics. Formatting fixes.
7494
7495 PR target/85665
7496 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
7497 warn_odr diagnostics.
7498
7499 PR other/80058
7500 * lra-constraints.c (process_alt_operands): Avoid one space before
7501 " at the end of line and another after " on another line in a string
7502 literal.
7503 * attribs.c (handle_dll_attribute): Likewise.
7504 * config/avr/avr-devices.c (avr_texinfo): Likewise.
7505
7506 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
7507 warning_at or inform messages in G_() if there is no ?:.
7508
7509 PR tree-optimization/89550
7510 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
7511 returned true. Formatting fixes.
7512 (expand_builtin_strnlen): Formatting fixes.
7513 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
7514 if warning_at returned true.
7515 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
7516
7517 2019-03-08 Richard Biener <rguenther@suse.de>
7518
7519 PR middle-end/89578
7520 * cfgloop.h (struct loop): Add owned_clique field.
7521 * cfgloopmanip.c (copy_loop_info): Copy it.
7522 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
7523 cliques.
7524 * tree-inline.c (copy_loops): Remap owned_clique.
7525 * lto-streamer-in.c (input_cfg): Stream owned_clique.
7526 * lto-streamer-out.c (output_cfg): Likewise.
7527
7528 2019-03-08 Jakub Jelinek <jakub@redhat.com>
7529
7530 PR target/80190
7531 * config/darwin.c: Include intl.h.
7532 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
7533 composing the message out of two separate parts.
7534
7535 2019-03-07 Jakub Jelinek <jakub@redhat.com>
7536
7537 PR target/80003
7538 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
7539 doesn't start with a capital letter and doesn't end with a dot.
7540 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
7541 with a capital letter.
7542 (ix86_mangle_function_version_assembler_name): Likewise.
7543 (ix86_generate_version_dispatcher_body): Likewise.
7544 (fold_builtin_cpu): Likewise.
7545 (get_builtin_code_for_version): Likewise. Remove extraneous space.
7546 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
7547 translators, wrap full type name in %qs.
7548
7549 PR translation/79999
7550 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
7551 depend clause with source (or sink) modifier.
7552 * omp-expand.c (expand_omp_ordered_sink): Likewise.
7553
7554 PR target/89602
7555 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
7556 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
7557 (avx512f_load<mode>_mask): New define_expand.
7558 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
7559 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
7560 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
7561 __builtin_ia32_movess_mask): New builtins.
7562 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
7563 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
7564 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
7565 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
7566
7567 2019-03-07 Martin Jambor <mjambor@suse.cz>
7568
7569 PR lto/87525
7570 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
7571 for extern inline functions.
7572
7573 2019-03-07 Martin Jambor <mjambor@suse.cz>
7574
7575 PR ipa/88235
7576 * cgraph.h (cgraph_node): New inline method former_thunk_p.
7577 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
7578 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
7579 have multiple callees. At the end check if declarations match as
7580 opposed to cgraph_nodes.
7581
7582 2019-03-07 Martin Liska <mliska@suse.cz>
7583
7584 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
7585 which is equivalent to searching for this in clones chain.
7586 * symtab.c (symtab_node::verify_base): Similarly compare ASM
7587 names with a neighbour and special case first node in a chain.
7588
7589 2019-01-25 Jason Merrill <jason@redhat.com>
7590
7591 PR c++/80916 - spurious "static but not defined" warning.
7592 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
7593 for an internal symbol with DECL_EXTERNAL.
7594
7595 2019-04-07 Richard Biener <rguenther@suse.de>
7596
7597 PR middle-end/89618
7598 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
7599 * tree-inline.c (copy_loops): Simplify.
7600
7601 2019-03-07 Martin Liska <mliska@suse.cz>
7602
7603 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
7604
7605 2019-03-07 Richard Biener <rguenther@suse.de>
7606
7607 PR tree-optimization/89595
7608 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
7609 stmt iterator as reference, take boolean output parameter to
7610 indicate whether the stmt was removed and thus the iterator
7611 already advanced.
7612 (dom_opt_dom_walker::before_dom_children): Re-iterate over
7613 stmts created by folding.
7614
7615 2019-03-07 Jakub Jelinek <jakub@redhat.com>
7616
7617 PR c++/89585
7618 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
7619 at toplevel.
7620
7621 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
7622
7623 PR rtl-optimization/88845
7624 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
7625 LRA.
7626 * lra.c (remove_scratches_1): New function.
7627 (remove_scratches): Use it.
7628 (lra_emit_move): Likewise.
7629
7630 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
7631
7632 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
7633 unaligned_access variable.
7634 * config/arc/arc.c (arc_override_options): Set unaligned access
7635 default on for HS CPUs.
7636 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
7637
7638 2019-03-06 Martin Liska <mliska@suse.cz>
7639
7640 PR gcov-profile/89577
7641 * doc/gcov.texi: Prefer to use --coverage.
7642 * doc/sourcebuild.texi: Likewise.
7643
7644 2019-03-02 Jason Merrill <jason@redhat.com>
7645
7646 PR c++/86485 - -Wmaybe-unused with empty class ?:
7647 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
7648
7649 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7650
7651 PR target/89587
7652 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
7653 if_multiarch.
7654
7655 PR middle-end/89590
7656 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
7657 exactly one argument.
7658
7659 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7660 Richard Sandiford <richard.sandiford@arm.com>
7661
7662 PR tree-optimization/89570
7663 * match.pd (vec_cond into cond_op simplification): Don't use
7664 get_conditional_internal_fn, use as_internal_fn (cond_op).
7665
7666 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
7667
7668 PR target/89222
7669 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
7670 to decide when to split off a non-zero offset from a symbol.
7671 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
7672 in function symbols.
7673
7674 2019-03-05 Richard Biener <rguenther@suse.de>
7675
7676 PR tree-optimization/89594
7677 * tree-if-conv.c (pass_if_conversion::execute): Handle
7678 case where .LOOP_VECTORIZED_FUNCTION was removed.
7679
7680 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7681
7682 PR bootstrap/89560
7683 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
7684 instead alloca it only when needed with the needed size.
7685
7686 PR tree-optimization/89570
7687 * match.pd (vec_cond into cond_op simplification): Guard with
7688 vectorized_internal_fn_supported_p test and #if GIMPLE.
7689
7690 PR tree-optimization/89566
7691 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
7692 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
7693 Punt if get_user_idx_format succeeds, but idx_format argument is
7694 not provided or doesn't have pointer type, or if idx_args is above
7695 number of provided arguments.
7696
7697 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
7698
7699 PR tree-optimization/89437
7700 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
7701
7702 2019-03-04 Richard Biener <rguenther@suse.de>
7703
7704 PR middle-end/89572
7705 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
7706 safe_dyn_cast.
7707
7708 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
7709
7710 PR tree-optimization/89487
7711 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
7712 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
7713 (distribute_loop): Don't do runtime alias check if there is non-
7714 addressable data reference.
7715 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
7716 is a register variable.
7717
7718 2019-03-02 Jakub Jelinek <jakub@redhat.com>
7719
7720 PR target/89506
7721 * config/arm/arm.md (cmpsi2_addneg): Use
7722 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
7723 If operands[2] is 0 or INT_MIN, force use of subs.
7724 (*compare_scc splitter): Use gen_int_mode.
7725 (*negscc): Likewise.
7726 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
7727
7728 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
7729 Monk Chiang <sh.chiang04@gmail.com>
7730
7731 * common/config/riscv/riscv-common.c: Include sstream.
7732 (riscv_subset_list::to_string): New.
7733 (riscv_arch_str): Likewise.
7734 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
7735 * config.in: Regen.
7736 * config/riscv/riscv-protos.h (riscv_arch_str): New.
7737 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
7738 (riscv_emit_attribute): New.
7739 (riscv_file_start): Emit attribute if needed.
7740 (riscv_option_override): Init riscv_emit_attribute_p.
7741 * config/riscv/riscv.opt (mriscv-attribute): New option.
7742 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
7743 * configure: Regen.
7744 * doc/install.texi: Document --with-riscv-attribute.
7745 * doc/invoke.texi: Document -mriscv-attribute.
7746
7747 * common/config/riscv/riscv-common.c:
7748 Include config/riscv/riscv-protos.h.
7749 (INCLUDE_STRING): Defined.
7750 (RISCV_DONT_CARE_VERSION): Defined.
7751 (riscv_subset_t): Declare.
7752 (riscv_subset_t::riscv_subset_t): New.
7753 (riscv_subset_list): Declare.
7754 (riscv_subset_list::riscv_subset_list): New.
7755 (riscv_subset_list::~riscv_subset_list): Likewise.
7756 (riscv_subset_list::parsing_subset_version): Likewise.
7757 (riscv_subset_list::parse_std_ext): Likewise.
7758 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
7759 (riscv_subset_list::add): Likewise.
7760 (riscv_subset_list::lookup): Likewise.
7761 (riscv_subset_list::xlen): Likewise.
7762 (riscv_subset_list::parse): Likewise.
7763 (riscv_supported_std_ext): Likewise.
7764 (current_subset_list): Likewise.
7765 (riscv_parse_arch_string): Using riscv_subset_list::parse to
7766 parse.
7767
7768 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
7769
7770 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7771 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
7772 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
7773
7774 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
7775
7776 PR rtl-optimization/85899
7777 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
7778 fallthru edges leading to the exit block.
7779
7780 2019-03-01 Tamar Christina <tamar.christina@arm.com>
7781
7782 PR target/89517
7783 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
7784 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
7785
7786 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
7787
7788 PR tree-optimization/89535
7789 * tree-vect-stmts.c (vectorizable_call): Record the vector types
7790 for each operand. Calculate the fallback choice for mask operands
7791 and pass it to vect_get_vec_def_for_operand.
7792
7793 2019-03-01 Richard Biener <rguenther@suse.de>
7794
7795 PR middle-end/89541
7796 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
7797 get virtual operands.
7798 (get_expr_operands): Handle CONST_DECL like other decls.
7799
7800 2019-03-01 Jakub Jelinek <jakub@redhat.com>
7801
7802 PR middle-end/89503
7803 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
7804 on DECL_P and EXPR_P.
7805
7806 2019-03-01 Richard Biener <rguenther@suse.de>
7807
7808 PR middle-end/89497
7809 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
7810 argument, defaulted to zero.
7811 * passes.c (execute_function_todo): Pass down SSA update flags
7812 to cleanup_tree_cfg.
7813 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
7814 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
7815 form if requested.
7816 (cleanup_tree_cfg): Get and pass down SSA update flags.
7817
7818 2019-03-01 Jakub Jelinek <jakub@redhat.com>
7819
7820 PR bootstrap/89539
7821 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
7822 early_lto_debug argument.
7823
7824 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
7825
7826 PR tree-optimization/89536
7827 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
7828 only whether bit #0 of the value is 0 instead of the entire value.
7829
7830 2019-02-28 Marek Polacek <polacek@redhat.com>
7831
7832 PR c++/87068 - missing diagnostic with fallthrough statement.
7833 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
7834 at the end of a seq, save its location to walk_stmt_info.
7835 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
7836 a switch.
7837
7838 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
7839
7840 PR lto/88585
7841 * tree.c (find_atomic_core_type): Move ahead in file.
7842 (check_base_type): Correctly compare alignments of atomic types.
7843
7844 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
7845
7846 PR target/89455
7847 * config/i386/i386.c (get_builtin_code_for_version): Identify
7848 Westmere from PCLMUL, instead of AES.
7849
7850 2019-02-28 Jakub Jelinek <jakub@redhat.com>
7851
7852 PR target/89434
7853 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
7854 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
7855 -UINTVAL (...).
7856
7857 2019-02-28 Tamar Christina <tamar.christina@arm.com>
7858
7859 PR target/88530
7860 * config/aarch64/aarch64-option-extensions.def: Document it.
7861 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
7862 if empty hwcaps.
7863
7864 2019-02-28 Jakub Jelinek <jakub@redhat.com>
7865
7866 PR c/89520
7867 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
7868 builtins if they don't have a single scalar floating point argument.
7869 Formatting fixes.
7870
7871 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
7872
7873 PR rtl-optimization/89490
7874 * varasm.c (get_block_for_section): Bail out for mergeable sections.
7875 (default_use_anchors_for_symbol_p, output_object_block): Assert the
7876 block section is not mergeable.
7877
7878 2019-02-27 Jakub Jelinek <jakub@redhat.com>
7879
7880 PR target/70341
7881 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
7882 old define_insn to ...
7883 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
7884 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
7885 Rename old define_insn to ...
7886 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
7887 (thumb2_casesi_internal_pic): New define_expand. Rename old
7888 define_insn to ...
7889 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
7890 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
7891 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
7892
7893 2019-02-27 Richard Biener <rguenther@suse.de>
7894
7895 PR debug/88878
7896 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
7897
7898 2019-02-27 Richard Biener <rguenther@suse.de>
7899
7900 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
7901 building.
7902
7903 2019-02-27 Richard Biener <rguenther@suse.de>
7904
7905 PR debug/88878
7906 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
7907 parameter, prefix section name with .gnu.debuglto_ if true.
7908 (dwarf2out_finish): Pass false to output_comdat_type_unit.
7909 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
7910
7911 2019-02-27 Richard Biener <rguenther@suse.de>
7912
7913 PR debug/89514
7914 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
7915 rather than on use_debug_types, doing what output_die does.
7916 (value_format): Likewise.
7917
7918 2019-02-27 Martin Jambor <mjambor@suse.cz>
7919 Martin Sebor <msebor@redhat.com>
7920
7921 * doc/invoke.texi (Warning Options): Reword description of
7922 -Wno-absolute-value.
7923
7924 2019-02-27 Jakub Jelinek <jakub@redhat.com>
7925
7926 PR tree-optimization/89280
7927 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
7928 builtin_setjmp_setup_bb): New functions.
7929 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
7930 When visiting __builtin_setjmp_setup block, queue in special
7931 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
7932 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
7933 from visited after the loop if they don't have any visited successor
7934 blocks.
7935
7936 2018-02-26 Steve Ellcey <sellcey@marvell.com>
7937
7938 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
7939 New function.
7940 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
7941
7942 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7943
7944 PR c++/89507
7945 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
7946 with types other than sizetype/ssizetype.
7947
7948 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
7949
7950 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
7951 (enum sparc_processor_type): ...this.
7952 (enum sparc_code_model_type): New enumeration type.
7953 (enum sparc_memory_model_type): Tweak comments.
7954 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
7955 (mtune): Likewise.
7956 (mcmodel): Use sparc_code_model enumeration and variable.
7957 (sparc_code_model): New enumeration.
7958 (mdebug): Add Undocumented marker.
7959 * config/sparc/sparc.h (enum cmodel): Delete.
7960 (sparc_cmodel): Likewise.
7961 (TARGET_CM_MEDLOW): Adjust to above renaming.
7962 (TARGET_CM_MEDMID): Likewise.
7963 (TARGET_CM_MEDANY): Likewise.
7964 (TARGET_CM_EMBMEDANY): Likewise.
7965 * config/sparc/sparc.c (sparc_cmodel): Delete.
7966 (sparc_option_override): Remove string/value mapping support for the
7967 code model. Move code and memory model support to after the handling
7968 of target flags. Do private machine setup last.
7969 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
7970 (sparc_legitimize_reload_address): Likewise.
7971 (sparc_output_mi_thunk): Likewise.
7972 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
7973
7974 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7975
7976 PR tree-optimization/89500
7977 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
7978 (handle_builtin_strlen): Remove noncst_bound variable. Always
7979 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
7980 cst if the first cst bytes starting at x are known to be non-zero,
7981 even if the string is not zero terminated. Don't try to modify
7982 *si for strnlen. Update strlen_to_stridx only for strlen or if
7983 we can prove strnlen returns the same value as strlen would.
7984
7985 2019-02-26 Martin Liska <mliska@suse.cz>
7986
7987 * alloc-pool.h (struct pool_usage): Remove extra
7988 print_dash_line.
7989 * bitmap.h (struct bitmap_usage): Likewise.
7990 * ggc-common.c (struct ggc_usage): Likewise.
7991 * mem-stats.h (struct mem_usage): Likewise.
7992 (mem_alloc_description::dump): Print dash lines
7993 here and repeat header at the end of a table report.
7994 It's then more readable.
7995 * tree-phinodes.c (phinodes_print_statistics): Make
7996 horizontal alignment.
7997 * tree-ssanames.c (ssanames_print_statistics): Likewise.
7998 * vec.c (struct vec_usage): Remove extra print_dash_line.
7999 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
8000
8001 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
8002
8003 * doc/extend.texi (__builtin_object_size):
8004 Use @pxref instead of @xref inside parenthesis.
8005 (__builtin_has_attribute): Add missing comma after @xref.
8006 (__builtin_object_size): Ditto.
8007 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
8008 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
8009 in the list.
8010
8011 2019-02-26 Jeff Law <law@redhat.com>
8012
8013 PR rtl-optimization/87761
8014 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
8015 detect obviously dead insns and delete them.
8016
8017 2019-02-26 Richard Biener <rguenther@suse.de>
8018
8019 PR tree-optimization/89505
8020 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
8021 to handle restrict pointed-to vars with multiple subvars
8022 correctly.
8023
8024 2019-02-26 Richard Biener <rguenther@suse.de>
8025
8026 PR tree-optimization/89489
8027 * tree-parloops.c (create_loop_fn): Copy over last_clique.
8028
8029 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
8030
8031 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
8032 and move around comment.
8033 <BIT_AND_EXPR>: Likewise.
8034 <BIT_NOT_EXPR>: Add specific handling for boolean types.
8035
8036 2019-02-26 Jakub Jelinek <jakub@redhat.com>
8037
8038 PR target/89474
8039 * config/i386/i386.c (remove_partial_avx_dependency): Call
8040 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
8041 after changing possibly many instructions to use that pseudo. Fix up
8042 insertion of v4sf_const0 setter at the start of bb.
8043
8044 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
8045
8046 PR c/80409
8047 * doc/extend.texi (Variadic Pointer Args): New section.
8048
8049 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
8050 Martin Sebor <msebor@gmail.com>
8051
8052 * common.opt (Wattribute-alias): Likewise.
8053 * doc/invoke.texi (Option Summary): List general form of
8054 -Wattribute-alias=. List positive form of -Wmissing-attributes.
8055 (-Wmissing-attributes): Invert entry, rewrite and correct default.
8056 Add cross-references.
8057 (-Wattribute-alias): Rewrite and correct default. Mention
8058 considered attributes (same as for -Wmissing-attributes).
8059
8060 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
8061
8062 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
8063 (_mm_cvtpd_ps): Likewise.
8064 (_mm_cvttpd_epi32): Likewise.
8065
8066 PR target/89338
8067 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
8068 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
8069
8070 PR target/89339
8071 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
8072
8073 2019-02-25 Tamar Christina <tamar.christina@arm.com>
8074
8075 PR target/88530
8076 * common/config/aarch64/aarch64-common.c
8077 (struct aarch64_option_extension): Add is_synthetic.
8078 (all_extensions): Use it.
8079 (TARGET_OPTION_INIT_STRUCT): Define hook.
8080 (struct gcc_targetm_common): Moved to end.
8081 (all_extensions_by_on): New.
8082 (opt_ext_cmp, typedef opt_ext): New.
8083 (aarch64_option_init_struct): New.
8084 (aarch64_contains_opt): New.
8085 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
8086 * config/aarch64/aarch64-option-extensions.def
8087 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
8088 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
8089 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
8090 Set is_synthetic to false.
8091 (crypto): Set is_synthetic to true.
8092 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
8093 SYNTHETIC.
8094
8095 2019-02-25 Tamar Christina <tamar.christina@arm.com>
8096
8097 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
8098 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
8099 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
8100 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
8101 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
8102 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
8103 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
8104 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
8105 Rename ...
8106 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
8107 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
8108 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
8109 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
8110 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
8111 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
8112 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
8113 vfmlsl_laneq_high_f16): ... To this.
8114 * config/arm/neon.md: Update comments.
8115
8116 2019-02-25 Tamar Christina <tamar.christina@arm.com>
8117
8118 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
8119 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
8120 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
8121 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
8122 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
8123 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
8124 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
8125 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
8126 Rename ...
8127 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
8128 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
8129 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
8130 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
8131 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
8132 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
8133 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
8134 vfmlslq_laneq_high_f16): ... To this.
8135
8136 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
8137
8138 PR rtl-optimization/86096
8139 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
8140 comparing mw_order values.
8141
8142 2019-02-25 Jakub Jelinek <jakub@redhat.com>
8143
8144 PR target/89434
8145 * config/arm/arm.md (*subsi3_carryin_const): Use
8146 arm_neg_immediate_operand predicate instead of
8147 arm_not_immediate_operand, "L" constraint instead of "K" and
8148 print it using %n2 instead of %B2.
8149 (*subsi3_carryin_const0): New define_insn.
8150 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
8151 instead of arm_not_operand and "I" constraint instead of "K" and
8152 print it using %n3 instead of %B2. Instead of using match_dup 2 add
8153 another match_operand and in the condition check that it is negation
8154 of operands[2].
8155 (*subsi3_carryin_compare_const0): New define_ins.
8156 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
8157 *subsi3_carryin_const.
8158 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
8159 split into *subsi3_carryin_compare_const0 if the highpart is zero.
8160
8161 PR target/89438
8162 * config/arm.vfp.md (*negdf2_vfp): Use
8163 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
8164 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
8165
8166 2019-02-24 Jakub Jelinek <jakub@redhat.com>
8167
8168 PR rtl-optimization/89445
8169 * simplify-rtx.c (simplify_ternary_operation): Don't use
8170 simplify_merge_mask on operands that may trap.
8171 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
8172 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
8173 second operand is CONST_VECTOR, check if any element could be zero.
8174 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
8175 their operands can trap.
8176
8177 2019-02-23 Martin Sebor <msebor@redhat.com>
8178
8179 * gimple-ssa-sprintf.c (target_strtol): Rename...
8180 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
8181 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
8182 check for range error.
8183
8184 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
8185
8186 PR driver/69471
8187 * opts-common.c (prune_options): Also prune joined switches
8188 with Negative and RejectNegative.
8189 * config/i386/i386.opt (march=): Add Negative(march=).
8190 (mtune=): Add Negative(mtune=).
8191 * doc/options.texi: Document Negative used together with Joined
8192 and RejectNegative.
8193
8194 2019-02-22 Martin Sebor <msebor@redhat.com>
8195
8196 * doc/extend.texi (Other Builtins): Add
8197 __builtin_is_constant_evaluated.
8198
8199 2019-02-22 Richard Biener <rguenther@suse.de>
8200
8201 PR tree-optimization/87609
8202 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
8203
8204 2019-02-22 Jeff Law <law@redhat.com>
8205
8206 PR rtl-optimization/87761
8207 * config/mips/mips.md: Add new combiner pattern to recognize
8208 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
8209
8210 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
8211
8212 PR target/89324
8213 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
8214 destination register in peepholes generating patterns for ADDS/SUBS.
8215 (add<mode>3_compare0,
8216 *addsi3_compare0_uxtw, add<mode>3_compareC,
8217 add<mode>3_compareV_imm, add<mode>3_compareV,
8218 *adds_<optab><ALLX:mode>_<GPI:mode>,
8219 *subs_<optab><ALLX:mode>_<GPI:mode>,
8220 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
8221 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
8222 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
8223 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
8224 sub<mode>3_compare1): Allow stack pointer for source register.
8225 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
8226
8227 2019-02-22 Martin Sebor <msebor@redhat.com>
8228
8229 PR tree-optimization/88993
8230 PR tree-optimization/88853
8231 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
8232 New helper.
8233 (sprintf_dom_walker::call_info::is_string_func): New helper.
8234 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
8235 for formatted string functions.
8236 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
8237
8238 2019-02-22 Martin Sebor <msebor@redhat.com>
8239
8240 PR c/89425
8241 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
8242 unreachable subexpressions.
8243
8244 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
8245 Hongtao Liu <hongtao.liu@intel.com>
8246 Sunil K Pandey <sunil.k.pandey@intel.com>
8247
8248 PR target/87007
8249 * config/i386/i386-passes.def: Add
8250 pass_remove_partial_avx_dependency.
8251 * config/i386/i386-protos.h
8252 (make_pass_remove_partial_avx_dependency): New.
8253 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
8254 New function.
8255 (pass_data_remove_partial_avx_dependency): New.
8256 (pass_remove_partial_avx_dependency): Likewise.
8257 (make_pass_remove_partial_avx_dependency): Likewise.
8258 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
8259 (*extendsfdf2): Add avx_partial_xmm_update.
8260 (truncdfsf2): Likewise.
8261 (*float<SWI48:mode><MODEF:mode>2): Likewise.
8262 (SF/DF conversion splitters): Disabled for TARGET_AVX.
8263
8264 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
8265
8266 PR middle-end/85598
8267 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
8268 analysis for pass.
8269
8270 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
8271
8272 PR target/89444
8273 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
8274 (PTA_SKYLAKE): Add PTA_AES.
8275 (PTA_GOLDMONT): Likewise.
8276
8277 2019-02-22 Sudakshina Das <sudi.das@arm.com>
8278
8279 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
8280 instruction if enabled.
8281 (aarch64_override_options): Remove reference to return address key.
8282
8283 2019-02-22 Richard Biener <rguenther@suse.de>
8284
8285 PR tree-optimization/89440
8286 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
8287 not necessary assert.
8288
8289 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
8290
8291 PR fortran/72741
8292 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
8293 (oacc_replace_fn_attrib_attr): ... this new function.
8294 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
8295 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
8296
8297 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8298
8299 * config/arm/arm-cpus.in (ares): Rename to...
8300 (neoverse-n1): ... This. Add ares as alias.
8301 * config/arm/arm-tables.opt: Regenerate.
8302 * config/arm/arm-tune.md: Likewise.
8303 * doc/invoke.txt (ARM Options): Document neoverse-n1.
8304
8305 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8306
8307 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
8308 * config/aarch64/aarch64-tune.md: Regenerate.
8309 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
8310
8311 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8312
8313 * config/aarch64/aarch64.c (ares_tunings): Rename to...
8314 (neoversen1_tunings): ... This.
8315 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
8316 (neoverse-n1): New CPU.
8317 * config/aarch64/aarch64-tune.md: Regenerate.
8318 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
8319
8320 2019-02-22 Richard Biener <rguenther@suse.de>
8321
8322 PR middle-end/87609
8323 * cfghooks.h (dependence_hash): New typedef.
8324 (struct copy_bb_data): New type.
8325 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
8326 (duplicate_block): Likewise.
8327 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
8328 (copy_bbs): Create and pass down copy_bb_data.
8329 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
8330 (rtl_duplicate_bb): Likewise.
8331 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
8332 remap dependence info.
8333
8334 2019-02-22 Richard Biener <rguenther@suse.de>
8335
8336 PR tree-optimization/87609
8337 * tree-core.h (tree_base): Document special clique values.
8338 * tree-inline.c (remap_dependence_clique): Do not use the
8339 special clique value of one.
8340 (maybe_set_dependence_info): Use clique one.
8341 (clear_dependence_clique): New callback.
8342 (compute_dependence_clique): Clear clique one from all refs
8343 before assigning it (again).
8344
8345 2019-02-21 Martin Sebor <msebor@redhat.com>
8346
8347 * doc/extend.texi (__clear_cache): Correct signature.
8348
8349 2019-02-21 Ian Lance Taylor <iant@golang.org>
8350
8351 PR go/89170
8352 * varasm.c (decode_addr_const): Call lookup_constant_def rather
8353 than output_constant_def.
8354 (add_constant_to_table): New static function.
8355 (output_constant_def): Call add_constant_to_table.
8356 (tree_output_constant_def): Likewise.
8357
8358 2019-02-21 Jakub Jelinek <jakub@redhat.com>
8359
8360 PR c++/89285
8361 * builtins.c (fold_builtin_arith_overflow): If first two args are
8362 INTEGER_CSTs, set intres and ovfres to constants rather than calls
8363 to ifn.
8364
8365 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
8366
8367 PR target/87412
8368 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
8369 error for -mindirect-branch/-mfunction-return with incompatible
8370 -fcf-protection.
8371
8372 2019-02-21 Jakub Jelinek <jakub@redhat.com>
8373
8374 PR bootstrap/88714
8375 * constraints.md (q): Remove.
8376 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
8377 instead of q.
8378
8379 2019-02-21 Martin Jambor <mjambor@suse.cz>
8380
8381 PR hsa/89302
8382 * omp-general.c (omp_extract_for_data): Removed a duplicate call
8383 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
8384 (omp_adjust_for_condition): ...here. Added necessary parameters.
8385 * omp-general.h (omp_adjust_for_condition): Updated declaration.
8386 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
8387 proper values to new parameters of omp_adjust_for_condition.
8388
8389 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8390
8391 PR middle-end/89412
8392 * expr.c (expand_assignment): If result is a MEM, use change_address
8393 instead of simplify_gen_subreg.
8394
8395 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8396 David Malcolm <dmalcolm@redhat.com>
8397
8398 PR middle-end/89091
8399 * fold-const.c (decode_field_reference): Return NULL_TREE if
8400 lang_hooks.types.type_for_size returns NULL. Check it before
8401 overwriting *exp_. Use return NULL_TREE instead of return 0.
8402
8403 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8404
8405 PR middle-end/88074
8406 PR middle-end/89415
8407 * toplev.c (do_compile): Double the emin/emax exponents to workaround
8408 buggy mpc_norm.
8409
8410 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
8411
8412 PR target/89397
8413 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
8414 TARGET_SSE in addition to TARGET_SSE_MATH.
8415
8416 (ix86_excess_precision): Ditto.
8417 (ix86_float_exceptions_rounding_supported_p): Ditto.
8418 (use_rsqrt_p): Ditto.
8419 * config/i386/sse.md (rsqrt<mode>2): Ditto.
8420
8421 2019-02-20 David Malcolm <dmalcolm@redhat.com>
8422
8423 PR c/89410
8424 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
8425 linenum_arith_t when determining if two adjacent line spans are
8426 close enough to merge.
8427 (diagnostic_show_locus): Use linenum_arith_t when iterating over
8428 lines within each line_span.
8429
8430 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
8431
8432 PR target/86487
8433 * lra-constraints.c(uses_hard_regs_p): Fix handling of
8434 paradoxical SUBREGS.
8435
8436 2019-02-20 Li Jia He <helijia@linux.ibm.com>
8437
8438 PR target/88100
8439 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
8440 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
8441 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
8442 range checking it.
8443
8444 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
8445
8446 * config/gcn/gcn.c (print_operand): Fix typo.
8447
8448 2019-02-19 Richard Biener <rguenther@suse.de>
8449
8450 PR middle-end/88074
8451 * toplev.c (do_compile): Initialize mpfr's exponent range
8452 based on available float modes.
8453
8454 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
8455
8456 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
8457 as long as the epilogue isn't completed.
8458
8459 2019-02-18 Martin Sebor <msebor@redhat.com>
8460
8461 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
8462 __has_cpp_attribute, and __has_include.
8463
8464 2019-02-18 Martin Sebor <msebor@redhat.com>
8465
8466 * doc/invoke.texi (-Wreturn-type): Correct and expand.
8467
8468 2019-02-18 Martin Sebor <msebor@redhat.com>
8469
8470 PR middle-end/89294
8471 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
8472 expression.
8473 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
8474
8475 2019-02-18 Richard Biener <rguenther@suse.de>
8476
8477 PR tree-optimization/89296
8478 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
8479 of no-warning flag to cases that might emit the bogus warning.
8480
8481 2019-02-18 Jakub Jelinek <jakub@redhat.com>
8482
8483 PR bootstrap/88714
8484 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
8485 "q" constraint.
8486 * config/arm/vfp.md (*movdi_vfp): Likewise.
8487 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
8488 "q" constraint for operands[0].
8489
8490 PR target/89369
8491 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
8492 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
8493 pattern in a temporary buffer.
8494 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
8495 than 64-operands[2].
8496
8497 PR target/89361
8498 * config/s390/s390.c (s390_indirect_branch_attrvalue,
8499 s390_indirect_branch_settings): Define unconditionally.
8500 (s390_set_current_function): Likewise, but guard the whole body except
8501 the s390_indirect_branch_settings call with
8502 #if S390_USE_TARGET_ATTRIBUTE.
8503 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
8504
8505 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
8506 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
8507 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
8508 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
8509 HOST_WIDE_INT_1U instead of 1ULL.
8510 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
8511 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
8512 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
8513 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
8514 instead of 1UL.
8515 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
8516 instead of 1ul.
8517
8518 2019-02-18 Martin Jambor <mjambor@suse.cz>
8519
8520 PR tree-optimization/89209
8521 * tree-sra.c (create_access_replacement): New optional parameter
8522 reg_tree. Use it as a type if non-NULL and access type is not of
8523 a register type.
8524 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
8525 to create_access_replacement.
8526 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
8527 Check lacc is non-NULL before attempting to re-create it on the RHS.
8528
8529 2019-02-18 Martin Liska <mliska@suse.cz>
8530
8531 PR ipa/89306
8532 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
8533 by default.
8534 (symbol_table::free_edge): Recycle m_summary_id.
8535 * cgraph.h (get_summary_id): New.
8536 (symbol_table::release_symbol): Set m_summary_id to -1
8537 by default.
8538 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
8539 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
8540 function_summary to fast_function_summary.
8541 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
8542 * ipa-pure-const.c (class funct_state_summary_t):
8543 Switch from function_summary to fast_function_summary.
8544 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
8545 (class ipa_ref_opt_summary_t): Switch from function_summary
8546 to fast_function_summary.
8547 * symbol-summary.h (class function_summary_base): New class
8548 that is created from base of former function_summary.
8549 (function_summary_base::unregister_hooks): New.
8550 (class function_summary): Inherit from function_summary_base.
8551 (class call_summary_base): New class
8552 that is created from base of former call_summary.
8553 (class call_summary): Inherit from call_summary_base.
8554 (struct is_same): New.
8555 (class fast_function_summary): New summary class.
8556 (class fast_call_summary): New summary class.
8557 * vec.h (vec_safe_grow_cleared): New function.
8558
8559 2019-02-18 Martin Liska <mliska@suse.cz>
8560
8561 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
8562 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
8563 * doc/tm.texi: Document new target hook.
8564 * doc/tm.texi.in: Likewise.
8565 * target.def: Add new target macro.
8566 * gcc.c (find_fortran_preinclude_file): Do not search multilib
8567 suffixes.
8568
8569 2019-02-17 Alan Modra <amodra@gmail.com>
8570
8571 PR target/89271
8572 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
8573 output reg on add insn.
8574 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
8575
8576 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8577
8578 PR target/89372
8579 * config/i386/sse.md (ssedoublemode): Remove V4HI.
8580 (PMULHRSW): Likewise.
8581 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
8582 TARGET_AVX2.
8583 (ssse3_pmulhrswv4hi3): New expander.
8584
8585 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8586
8587 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
8588 MMX. Add isa attribute.
8589
8590 2019-02-16 Jakub Jelinek <jakub@redhat.com>
8591
8592 PR rtl-optimization/66152
8593 * builtins.h (c_readstr): Declare.
8594 * builtins.c (c_readstr): Remove forward declaration. Add
8595 null_terminated_p argument, if false, read all bytes from the
8596 string instead of stopping after '\0'.
8597 * expr.c (string_cst_read_str): New function.
8598 (store_expr): Use string_cst_read_str instead of
8599 builtin_strncpy_read_str. Try to store by pieces the whole
8600 exp_len first, and only if that fails, split it up into
8601 store by pieces followed by clear_storage. Formatting fix.
8602
8603 * config/i386/i386.md (*movqi_internal): Remove static from
8604 buf variable. Use output_asm_insn (buf, operands); return "";
8605 instead of return buf;.
8606 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
8607 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
8608 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
8609
8610 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8611
8612 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
8613 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
8614 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
8615 (CC1_SPEC): Likewise.
8616 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
8617
8618 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8619
8620 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
8621 the base address on 64-bit strict-alignment platforms.
8622
8623 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
8624
8625 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
8626
8627 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8628
8629 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
8630
8631 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
8632
8633 PR rtl-optimization/88308
8634 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
8635 on copied instruction.
8636
8637 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8638
8639 * final.c (insn_current_reference_address): Replace test on JUMP_P
8640 with test on jump_to_label_p.
8641 * config/visium/visium-passes.def: New file.
8642 * config/visium/t-visium (PASSES_EXTRA): Define.
8643 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
8644 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
8645 (TRAMPOLINE_ALIGNMENT): Define.
8646 * config/visium/visium.c (visium_option_override): Do not register
8647 the machine-specific reorg pass here.
8648 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
8649 for the GR6.
8650 (output_branch): Adjust threshold for long branch instruction.
8651 * config/visium/visium.md (cpu): Move around.
8652 (length): Adjust for the GR6.
8653
8654 2019-02-15 Richard Biener <rguenther@suse.de>
8655 Jakub Jelinek <jakub@redhat.com>
8656
8657 PR tree-optimization/89278
8658 * tree-loop-distribution.c: Include tree-eh.h.
8659 (generate_memset_builtin, generate_memcpy_builtin): Call
8660 rewrite_to_non_trapping_overflow on builtin->size before passing it
8661 to force_gimple_operand_gsi.
8662
8663 2019-02-15 Jakub Jelinek <jakub@redhat.com>
8664
8665 PR other/89342
8666 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
8667 optimize_debug.
8668 * opth-gen.awk: Likewise.
8669
8670 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8671
8672 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
8673 Enable MMX, SSE and SSE2 by default.
8674 * config/i386/i386.c (ix86_option_override_internal): Do not
8675 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
8676
8677 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8678
8679 PR rtl-optimization/89354
8680 * combine.c (make_extraction): Punt if extraction_mode is narrower
8681 than len bits.
8682
8683 2019-02-14 Maya Rashish <coypu@sdf.org>
8684
8685 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
8686 * config/netbsd-d.c: New file.
8687 * config/t-netbsd: Add netbsd-d.o
8688
8689 2018-02-14 Steve Ellcey <sellcey@marvell.com>
8690
8691 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
8692 affects_type_identity to true for aarch64_vector_pcs.
8693 (aarch64_comp_type_attributes): New function.
8694 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
8695
8696 2019-02-14 Tamar Christina <tamar.christina@arm.com>
8697
8698 PR target/88850
8699 * config/arm/iterators.md (ANY64): Add V4HF.
8700
8701 2019-02-14 Martin Liska <mliska@suse.cz>
8702
8703 PR rtl-optimization/89242
8704 * dce.c (delete_unmarked_insns): Call free_dominance_info we
8705 process a transformation.
8706
8707 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8708
8709 PR tree-optimization/89314
8710 * fold-const.c (fold_binary_loc): Cast strlen argument to
8711 const char * before dereferencing it. Formatting fixes.
8712
8713 PR middle-end/89284
8714 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
8715
8716 2019-02-13 Ian Lance Taylor <iant@golang.org>
8717
8718 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
8719 and set current index for other optimizations.
8720
8721 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
8722
8723 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
8724 nonimmediate_operand as operand 2 predicate.
8725 (vec_set<VF2_512_256:mode>_0): Ditto.
8726 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
8727 (*vec_concatv2si): Remove alternative 2.
8728 (*vec_concatv4si_0): Use vm constraint for alternative 0.
8729 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
8730 (vec_concatv2di): Split alternatives 4,5,6 to ...
8731 (*vec_concatv2di_0) ... new pattern.
8732
8733 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
8734
8735 PR target/89190
8736 * config/arm/arm.c (ldm_stm_operation_p) Set
8737 addr_reg_in_reglist correctly for first register.
8738 (load_multiple_sequence): Remove dead base check.
8739 (gen_ldm_seq): Correctly set write_back for Thumb-1.
8740
8741 2019-02-13 Tamar Christina <tamar.christina@arm.com>
8742
8743 PR target/88847
8744 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
8745 Expose as @aarch64_pred_mov.
8746 * config/aarch64/aarch64.c (aarch64_classify_address):
8747 Use expand_insn which legitimizes operands.
8748
8749 2019-02-13 Martin Liska <mliska@suse.cz>
8750
8751 * builtins.h (expand_builtin_with_bounds): Remove declaration.
8752 * calls.c (struct arg_data): Remove special_slot, pointer_arg
8753 and pointer_offset fields.
8754 (initialize_argument_information): Remove usage of dead
8755 fields.
8756 * cgraph.h (struct cgraph_thunk_info): Remove
8757 add_pointer_bounds_args.
8758 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
8759 fields.
8760 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
8761 fields.
8762 * config/i386/i386.c (ix86_function_arg_advance): Remove
8763 unrelated comment.
8764 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
8765 (def_builtin): Remove usage of dead
8766 fields.
8767 (ix86_add_new_builtins): Likewise.
8768 * ipa-fnsummary.c (compute_fn_summary): Likewise.
8769 * ipa-icf.c (sem_function::equals_wpa): Likewise.
8770 (sem_function::init): Likewise.
8771 (sem_variable::merge): Likewise.
8772 * ipa-visibility.c (function_and_variable_visibility): Likewise.
8773 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
8774 * lto-cgraph.c (lto_output_node): Likewise.
8775 (lto_output_varpool_node): Likewise.
8776 (input_node): Likewise.
8777 (input_varpool_node): Likewise.
8778 * lto-streamer-out.c (lto_output): Likewise.
8779 * tree-inline.c (expand_call_inline): Remove usage of
8780 assign_stmts.
8781 * tree-inline.h (struct copy_body_data): Likewise.
8782 * varpool.c (varpool_node::dump): Likewise.
8783
8784 2019-02-13 Jakub Jelinek <jakub@redhat.com>
8785
8786 PR middle-end/89303
8787 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
8788 into pt->vars_contains_escaped_heap instead of setting
8789 pt->vars_contains_escaped_heap to it.
8790
8791 PR middle-end/89281
8792 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
8793 INTVAL (size), compare it to GET_MODE_MASK instead of
8794 1 << GET_MODE_BITSIZE.
8795
8796 PR target/89290
8797 * config/i386/predicates.md (x86_64_immediate_operand): Allow
8798 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
8799 -mcmodel=large.
8800
8801 2019-02-13 Martin Liska <mliska@suse.cz>
8802
8803 PR lto/88858
8804 * cfgrtl.c (remove_barriers_from_footer): New function.
8805 (try_redirect_by_replacing_jump): Use it.
8806 (cfg_layout_redirect_edge_and_branch): Likewise.
8807
8808 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
8809
8810 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
8811 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
8812 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
8813 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
8814 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
8815 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
8816 New BU_CRYPTO_2.
8817 * config/rs6000/rs6000.c (builtin_function_type)
8818 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
8819 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
8820 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
8821 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
8822 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
8823
8824 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
8825
8826 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
8827 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
8828
8829 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
8830
8831 PR target/89229
8832 * config/i386/i386.md (*movoi_internal_avx): Revert revision
8833 268678 and revision 268657.
8834 (*movti_internal): Likewise.
8835
8836 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
8837
8838 PR target/89233
8839 * config/s390/s390.c (s390_decompose_address): Update comment.
8840 (s390_check_qrst_address): Reject invalid address forms after
8841 LRA.
8842
8843 2019-02-12 Martin Liska <mliska@suse.cz>
8844
8845 PR lto/88876
8846 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
8847 we need default values of funct_state for a function that
8848 is not optimized.
8849
8850 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
8851
8852 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
8853 the object to pick the size of stores on strict-alignment platforms.
8854
8855 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
8856 (*movdi_insn_sp32): Likewise.
8857 (*movdi_insn_sp64): Likewise.
8858
8859 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
8860
8861 PR lto/88677
8862 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
8863 types that needs constructiong.
8864 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
8865
8866 2019-02-12 Richard Biener <rguenther@suse.de>
8867
8868 PR tree-optimization/89253
8869 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
8870 duplicate the loop.
8871
8872 2019-02-11 David Malcolm <dmalcolm@redhat.com>
8873
8874 PR lto/88147
8875 * input.c (selftest::test_line_offset_overflow): New selftest.
8876 (selftest::input_c_tests): Call it.
8877
8878 2019-02-11 Martin Sebor <msebor@redhat.com>
8879
8880 PR tree-optimization/88771
8881 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
8882 when -Wstringop-overflow is set.
8883 (builtin_memref::builtin_memref): Adjust excessive upper bound
8884 only when lower bound is not excessive.
8885 (maybe_diag_overlap): Detect and diagnose excessive bounds via
8886 -Wstringop-ovefflow.
8887 (maybe_diag_offset_bounds): Rename...
8888 (maybe_diag_access_bounds): ...to this.
8889 (check_bounds_or_overlap): Adjust for name change above.
8890
8891 2019-02-11 Martin Sebor <msebor@redhat.com>
8892
8893 PR c++/87996
8894 * builtins.c (max_object_size): Move from here...
8895 * builtins.h (max_object_size): ...and here...
8896 * tree.c (max_object_size): ...to here...
8897 * tree.h (max_object_size): ...and here.
8898
8899 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
8900
8901 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
8902 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
8903 for correct semantics.
8904
8905 2019-02-11 Alan Modra <amodra@gmail.com>
8906
8907 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
8908 -mlongcall and -mpltseq.
8909 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
8910 (RS/6000 and PowerPC Options <-mpltseq>): Document.
8911 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
8912 * config/rs6000/sysv4.opt (mpltseq): New option.
8913 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
8914 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
8915 support is lacking. Don't allow -mpltseq with -mbss-plt.
8916 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
8917 -mpltseq given for ELFv1.
8918 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
8919 Only use UNSPEC_PLTSEQ for inline PLT calls.
8920 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
8921 use UNSPEC_PLTSEQ for inline PLT calls.
8922 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
8923 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
8924 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
8925 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
8926 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
8927 (pltseq_mtctr_<mode>): Likewise.
8928
8929 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8930
8931 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
8932 Solaris ld.
8933 * configure: Regenerate.
8934
8935 2019-02-11 Jakub Jelinek <jakub@redhat.com>
8936
8937 PR bootstrap/88714
8938 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
8939 instead of r.
8940
8941 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
8942
8943 * function.c (assign_parm_setup_block): Use the stored
8944 size, not the passed size, when allocating stack-space,
8945 also for a parameter with alignment larger than
8946 MAX_SUPPORTED_STACK_ALIGNMENT.
8947
8948 2019-02-11 Martin Liska <mliska@suse.cz>
8949
8950 PR ipa/89009
8951 * ipa-cp.c (build_toporder_info): Remove usage of a param.
8952 * ipa-inline.c (inline_small_functions): Likewise.
8953 * ipa-pure-const.c (propagate_pure_const): Likewise.
8954 (propagate_nothrow): Likewise.
8955 * ipa-reference.c (propagate): Likewise.
8956 * ipa-utils.c (struct searchc_env): Remove unused field.
8957 (searchc): Always search across AVAIL_INTERPOSABLE.
8958 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
8959 the only called IPA pure const can properly not propagate
8960 across interposable boundary.
8961 * ipa-utils.h (ipa_reduced_postorder): Remove param.
8962
8963 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
8964
8965 * config/nds32/nds32.md (call_internal, call_value_internal,
8966 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
8967
8968 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
8969
8970 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
8971 typo.
8972
8973 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
8974
8975 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
8976 in comments
8977
8978 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
8979
8980 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
8981
8982 2019-02-10 Jakub Jelinek <jakub@redhat.com>
8983
8984 PR tree-optimization/89268
8985 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
8986 if preds is non-NULL.
8987
8988 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8989
8990 PR lto/89272
8991 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
8992 polymorphic types.
8993
8994 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
8995
8996 * config/nds32/nds32.md (trap): New pattern.
8997
8998 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
8999
9000 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
9001 dwarf span.
9002
9003 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
9004
9005 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
9006 to split POST_INC.
9007
9008 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
9009
9010 * ipa-visibility.c (localize_node): Also do not localize
9011 LDPR_PREVAILING_DEF_IRONLY_EXP.
9012
9013 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
9014
9015 PR lto/87957
9016 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
9017 instead of type_with_linkage.
9018
9019 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
9020
9021 PR ipa/88755
9022 * params.def (uninlined-function-insns, uninlined-function-time,
9023 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
9024 bound so we don't get overflows.
9025
9026 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
9027
9028 * config/rs6000/rs6000-string.c (expand_compare_loop,
9029 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
9030 memcmp/strncmp.
9031
9032 2019-02-09 Jakub Jelinek <jakub@redhat.com>
9033
9034 PR middle-end/89246
9035 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9036 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
9037 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
9038
9039 2019-02-09 Alan Modra <amodra@gmail.com>
9040
9041 PR target/88343
9042 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
9043 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
9044 setup.
9045
9046 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
9047
9048 PR middle-end/88560
9049 * lra-constraints.c (process_alt_operands): Don't increase reject
9050 for memory when offset memory is required.
9051
9052 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
9053
9054 * config/s390/vector.md: Implement vector copysign.
9055
9056 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
9057
9058 * expr.c (expand_constructor): Correct indentations.
9059
9060 2019-02-08 Richard Biener <rguenther@suse.de>
9061
9062 PR tree-optimization/89247
9063 * tree-if-conv.c: Include tree-cfgcleanup.h.
9064 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
9065 (tree_if_conversion): Pass through predicate vector.
9066 (pass_if_conversion::execute): Do CFG cleanup and SSA update
9067 inline, see if any if-converted loops we refrece in
9068 LOOP_VECTORIZED calls vanished and fixup.
9069 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
9070
9071 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
9072
9073 * config/s390/constraints.md (jdd): New constraint.
9074
9075 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
9076
9077 PR target/89229
9078 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
9079 upper 16 vector registers without TARGET_AVX512VL.
9080 (*movti_internal): Likewise.
9081
9082 2019-02-08 Jakub Jelinek <jakub@redhat.com>
9083
9084 PR rtl-optimization/89234
9085 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
9086 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
9087 (copy_reg_eh_region_note_backward): Likewise.
9088
9089 2019-02-08 Richard Biener <rguenther@suse.de>
9090
9091 PR middle-end/89223
9092 * tree-data-ref.c (initialize_matrix_A): Fail if constant
9093 doesn't fit in HWI.
9094 (analyze_subscript_affine_affine): Handle failure from
9095 initialize_matrix_A.
9096
9097 2019-02-08 Jakub Jelinek <jakub@redhat.com>
9098
9099 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
9100 cfun everywhere.
9101
9102 2019-02-07 David Malcolm <dmalcolm@redhat.com>
9103
9104 PR tree-optimization/86637
9105 PR tree-optimization/89235
9106 * tree-vect-loop.c (optimize_mask_stores): Add an
9107 auto_purge_vect_location sentinel to ensure that vect_location is
9108 purged on exit.
9109 * tree-vectorizer.c
9110 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
9111 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
9112 to ensure that vect_location is purged on exit.
9113 (pass_slp_vectorize::execute): Likewise, replacing the manual
9114 reset.
9115 * tree-vectorizer.h (class auto_purge_vect_location): New class.
9116
9117 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9118
9119 * config/aarch64/iterators.md (max_opp): New code_attr.
9120 (USMAX): New code iterator.
9121 * config/aarch64/predicates.md (aarch64_smin): New predicate.
9122 (aarch64_smax): Likewise.
9123 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
9124 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
9125 MINUS (MAX MIN).
9126
9127 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
9128
9129 PR target/89229
9130 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
9131 for TARGET_AVX512VL.
9132 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
9133
9134 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
9135
9136 * config/s390/s390-builtin-types.def: Add new types.
9137 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
9138 (s390_vec_xlw4): Make the memory operand into a const pointer.
9139 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
9140 float.
9141 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
9142 a new vector type with the alignment of the scalar memory operand.
9143
9144 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
9145 Jakub Jelinek <jakub@redhat.com>
9146
9147 PR bootstrap/88714
9148 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
9149 arm_count_ldrdstrd_insns): New declarations.
9150 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
9151 MINUS.
9152 (valid_operands_ldrd_strd): New function.
9153 (arm_count_ldrdstrd_insns): New function.
9154 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
9155 sets instead of single DImode set and define new insns to match this.
9156
9157 2019-02-07 Tamar Christina <tamar.christina@arm.com>
9158
9159 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
9160 Make it a C initializer.
9161
9162 2019-02-07 Tamar Christina <tamar.christina@arm.com>
9163
9164 PR/target 88850
9165 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
9166
9167 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9168
9169 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
9170 Use neon_dot<q> for type.
9171 (neon_<sup>dot_lane<vsi2qi>): Likewise.
9172
9173 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9174
9175 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
9176 Use neon_dot<q> for type.
9177 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
9178 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
9179
9180 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
9181
9182 PR rtl-optimization/89225
9183 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
9184 sizes check.
9185
9186 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
9187
9188 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
9189 after restoring registers saved to allocate the frame on Windows.
9190
9191 2019-02-06 Richard Biener <rguenther@suse.de>
9192
9193 PR tree-optimization/89182
9194 * graphite.h (cached_scalar_evolution_in_region): Declare.
9195 * graphite.c (struct seir_cache_key): New.
9196 (struct sese_scev_hash): Likewise.
9197 (seir_cache): New global.
9198 (cached_scalar_evolution_in_region): New function.
9199 (graphite_transform_loops): Allocate and release seir_cache.
9200 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
9201 cached_scalar_evolution_in_region.
9202 * graphite-scop-detection.c (scop_detection::can_represent_loop):
9203 Simplify.
9204 (scop_detection::graphite_can_represent_expr: Use
9205 cached_scalar_evolution_in_region.
9206 (scop_detection::stmt_simple_for_scop_p): Likewise.
9207 (find_params_in_bb): Likewise.
9208 (gather_bbs::before_dom_children): Likewise.
9209 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
9210 (add_loop_constraints): Likewise.
9211
9212 2019-02-06 Jakub Jelinek <jakub@redhat.com>
9213
9214 PR middle-end/89210
9215 * fold-const-call.c (fold_const_vec_convert): Pass true as last
9216 operand to new_unary_operation only if both element types are integral
9217 and it isn't a widening conversion. Return NULL_TREE if
9218 new_unary_operation failed.
9219
9220 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
9221
9222 PR target/88856
9223 * config/s390/s390.md: Remove load and test FP splitter.
9224
9225 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
9226
9227 PR target/89112
9228 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
9229 expand_compare_loop, expand_block_compare_gpr,
9230 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
9231 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
9232 #include "profile-count.h" and "predict.h" for types and functions
9233 needed to work with REG_BR_PROB notes.
9234
9235 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
9236
9237 PR target/89112
9238 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
9239 for the long branch case.
9240
9241 2019-02-05 Jakub Jelinek <jakub@redhat.com>
9242
9243 PR target/89188
9244 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
9245 can throw, non-call exceptions are enabled and we can't delete
9246 dead exceptions or alter cfg. Set must_clean if
9247 delete_insn_and_edges returns true, don't set it blindly for calls.
9248 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
9249
9250 PR rtl-optimization/89195
9251 * combine.c (make_extraction): For MEMs, don't extract bytes outside
9252 of the original MEM.
9253
9254 2019-02-05 Martin Liska <mliska@suse.cz>
9255
9256 PR gcov-profile/89000
9257 * gcov.c (function_summary): Remove argument.
9258 (file_summary): New function.
9259 (print_usage): Replace tabs with spaces.
9260 (generate_results): Use new function file_summary.
9261
9262 2019-02-05 Jakub Jelinek <jakub@redhat.com>
9263
9264 PR target/89186
9265 * optabs.c (prepare_cmp_insn): Pass x and y to
9266 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
9267
9268 2019-02-05 Richard Biener <rguenther@suse.de>
9269
9270 PR middle-end/89150
9271 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
9272 (struct bitmap_element): Drop chain_prev so we properly recurse on
9273 the prev member, supporting tree views.
9274 (struct bitmap_head): GTY skip the obstack member.
9275
9276 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
9277
9278 PR c/88698
9279 * doc/extend.texi (Vector Extensions): Add an example of using vector
9280 types together with x86 intrinsics.
9281
9282 2019-02-04 Alan Modra <amodra@gmail.com>
9283
9284 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
9285 str[] size to 160, and comment.
9286
9287 2019-02-04 Alan Modra <amodra@gmail.com>
9288
9289 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
9290 (rs6000_pltseq_template): Guard output of TLS markers with
9291 TARGET_TLS_MARKERS.
9292 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
9293 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
9294 to use inline PLT sequences.
9295 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
9296 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
9297 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
9298
9299 2019-02-04 Martin Liska <mliska@suse.cz>
9300
9301 PR ipa/88985
9302 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
9303 out when ipa_fn_summaries does not contain entry for callee.
9304
9305 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
9306
9307 * config/sparc/sparc.h: Remove superfluous blank lines.
9308 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
9309 (got_register_rtx): ...this.
9310 (sparc_got): Adjust to above renaming.
9311 (sparc_tls_got): Likewise.
9312 (sparc_delegitimize_address): Likewise.
9313 (sparc_output_mi_thunk): Likewise.
9314 (sparc_init_pic_reg): Likewise.
9315 (save_local_or_in_reg_p): Fix test on the GOT register.
9316 (USE_HIDDEN_LINKONCE): Move around.
9317 (get_pc_thunk_name): Likewise.
9318 (gen_load_pcrel_sym): Likewise.
9319 (load_got_register): Likewise.
9320
9321 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
9322
9323 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
9324 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
9325
9326 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
9327
9328 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
9329 into consideration.
9330
9331 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
9332
9333 * config.gcc (with_nds32_lib, glibc):
9334 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
9335 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
9336 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
9337
9338 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
9339
9340 PR target/89071
9341 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
9342 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
9343 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
9344 (*rcpsf2_sse): Ditto.
9345 (*rsqrtsf2_sse): Ditto.
9346 (sse4_1_round<mode<2): Ditto.
9347
9348 2019-02-03 Richard Biener <rguenther@suse.de>
9349
9350 PR debug/87295
9351 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
9352 orig.
9353
9354 2019-02-02 Jakub Jelinek <jakub@redhat.com>
9355
9356 PR middle-end/87887
9357 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9358 Punt with warning on aggregate return or argument types. Ignore
9359 type/mode checking for uniform arguments.
9360
9361 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
9362
9363 * combine.c (try_combine): Do not print "Can't combine" messages unless
9364 printing failed combination attempts.
9365
9366 2019-02-01 Martin Jambor <mjambor@suse.cz>
9367
9368 PR hsa/87863
9369 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
9370 segment and global segment variables before making them static.
9371
9372 2019-02-01 Martin Jambor <mjambor@suse.cz>
9373
9374 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
9375 missed optimization dump with dump_enabled_p.
9376
9377 2019-02-01 Richard Biener <rguenther@suse.de>
9378
9379 PR middle-end/88597
9380 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
9381 the instantiate cache.
9382 (instantiate_scev_binary): Elide second operand procesing
9383 if equal to the first.
9384 * tree-chrec.c (chrec_contains_symbols): Add visited set.
9385 (chrec_contains_undetermined): Likewise.
9386 (tree_contains_chrecs): Likewise.
9387
9388 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
9389
9390 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
9391
9392 2019-02-01 Jakub Jelinek <jakub@redhat.com>
9393
9394 PR tree-optimization/89143
9395 * wide-int-range.h (wide_int_range_absu): Declare.
9396 * wide-int-range.cc (wide_int_range_absu): New function.
9397 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
9398
9399 PR tree-optimization/88107
9400 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
9401 instead of assertion that eh_region_outermost is non-NULL, if it
9402 is NULL, set *ALL to true and return NULL.
9403 (move_sese_region_to_fn): Adjust caller, if all is set, call
9404 duplicate_eh_regions with NULL region.
9405
9406 2019-02-01 Richard Biener <rguenth@suse.de>
9407
9408 PR rtl-optimization/88593
9409 * mode-switching.c (optimize_mode_switching): Free dominators before
9410 calling cleanup_cfg.
9411
9412 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
9413
9414 PR tree-optimization/88932
9415 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
9416
9417 2019-01-31 Jakub Jelinek <jakub@redhat.com>
9418
9419 PR middle-end/89137
9420 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
9421 bogus clang warning.
9422
9423 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
9424
9425 PR target/89071
9426 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
9427 alternative to avoid partial SSE register stall for TARGET_AVX.
9428 (truncdfsf2): Ditto.
9429 (sse4_1_round<mode>2): Ditto.
9430
9431 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
9432
9433 PR tree-optimization/89008
9434 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
9435 process anything of the form X * 0.
9436
9437 2019-01-31 Richard Biener <rguenther@suse.de>
9438
9439 PR tree-optimization/89135
9440 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
9441 with abnormal preds.
9442
9443 2019-01-31 Jakub Jelinek <jakub@redhat.com>
9444
9445 PR sanitizer/89124
9446 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
9447 always_inline callees into no_sanitize_address callers.
9448
9449 2019-01-31 Richard Biener <rguenther@suse.de>
9450
9451 PR rtl-optimization/89115
9452 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
9453
9454 2019-01-30 Martin Sebor <msebor@redhat.com>
9455
9456 PR other/89106
9457 * doc/extend.texi (cast to a union): Correct and expand.
9458
9459 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
9460
9461 PR rtl-optimization/87246
9462 * lra-constraints.c (simplify_operand_subreg): Reload memory
9463 in subreg if the address became invalid.
9464
9465 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
9466
9467 PR target/87064
9468 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
9469 Disable for little-endian.
9470
9471 2019-01-30 Richard Biener <rguenther@suse.de>
9472
9473 PR rtl-optimization/89115
9474 * opts.c (default_options_optimization): Reduce
9475 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
9476 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
9477 to the default.
9478
9479 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
9480
9481 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
9482 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
9483 type of vector element when vec_extract is implemented by direct
9484 move.
9485
9486 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
9487
9488 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
9489
9490 2019-01-30 Richard Biener <rguenther@suse.de>
9491
9492 PR tree-optimization/89111
9493 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
9494 canonicalization to appropriately sized access types.
9495
9496 2019-01-30 Jakub Jelinek <jakub@redhat.com>
9497
9498 PR c++/89105
9499 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
9500 for arguments to functions that are TU-local and shouldn't be
9501 referenced by assembly.
9502
9503 2019-01-30 Ulrich Drepper <drepper@redhat.com>
9504
9505 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
9506 after '='.
9507
9508 2019-01-29 Martin Sebor <msebor@redhat.com>
9509
9510 PR c/88956
9511 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
9512
9513 2019-01-29 Jakub Jelinek <jakub@redhat.com>
9514
9515 PR c++/66676
9516 PR ipa/89104
9517 * omp-simd-clone.c (simd_clone_clauses_extract)
9518 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
9519 OMP_CLAUSE_ALIGNED_ALIGNMENT.
9520
9521 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
9522
9523 * config.gcc: Force .init_array for ARC.
9524
9525 2019-01-29 Richard Biener <rguenther@suse.de>
9526
9527 PR debug/87295
9528 * dwarf2out.c (collect_skeleton_dies): New helper.
9529 (copy_decls_for_unworthy_types): Call it.
9530 (build_abbrev_table): Assert we do not try to replace
9531 DW_AT_signature refs with local refs.
9532
9533 2019-01-28 Jakub Jelinek <jakub@redhat.com>
9534
9535 PR middle-end/89002
9536 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
9537 for lastprivate/linear IV, push gimplify context around gimplify_assign
9538 and, if it needed any temporaries, pop it into a gimple bind around the
9539 sequence.
9540
9541 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
9542
9543 * common.opt (-Wattribute-alias): Remove "no-" from name.
9544 Make -Wattribute-alias command line option and
9545 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
9546
9547 2019-01-28 Jakub Jelinek <jakub@redhat.com>
9548
9549 PR target/89073
9550 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
9551 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
9552 x86 ISA options.
9553 (bmi2): Add missing @opindex.
9554 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
9555 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
9556 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
9557 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
9558 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
9559 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
9560 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
9561 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
9562 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
9563 xsavec, xsaveopt and xsaves options.
9564
9565 2019-01-28 Richard Biener <rguenther@suse.de>
9566
9567 PR debug/89076
9568 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
9569 support removal.
9570
9571 2019-01-28 Richard Biener <rguenther@suse.de>
9572
9573 PR tree-optimization/88739
9574 * tree-cfg.c (verify_types_in_gimple_reference): Verify
9575 BIT_FIELD_REFs only are applied to mode-precision operands
9576 when they are integral.
9577 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
9578 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
9579 BIT_FIELD_REFs of non-mode-precision integral operands.
9580
9581 2019-01-27 Jakub Jelinek <jakub@redhat.com>
9582
9583 PR target/87214
9584 * config/i386/sse.md
9585 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
9586 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
9587 first constants in pairs are multiples of 2. Formatting fixes.
9588 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
9589 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
9590 first constants in each quadruple are multiples of 4. Formatting fixes.
9591
9592 2019-01-26 Martin Jambor <mjambor@suse.cz>
9593
9594 PR ipa/88933
9595 * tree-inline.c: Include tree-cfgcleanup.h.
9596 (delete_unreachable_blocks_update_callgraph): Move...
9597 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
9598 ...here, make externally visible, make second argument bool, adjust
9599 all callers.
9600 * tree-cfgcleanup.c: Include cgraph.h.
9601 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
9602 Declare.
9603 * ipa-prop.c: Include tree-cfgcleanup.h.
9604 (ipcp_transform_function): Call
9605 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
9606
9607 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
9608
9609 PR rtl-optimization/88846
9610 * ira.c (process_set_for_memref_referenced_p): New.
9611 (memref_referenced_p): Add new param. Use
9612 process_set_for_memref_referenced_p. Add new switch cases.
9613 (memref_used_between_p): Pass new arg to memref_referenced_p.
9614
9615 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
9616
9617 PR target/88469
9618 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
9619 argument ABI_BREAK. Set to true if the calculated alignment has
9620 changed in gcc-9. Check bit-fields for their base type alignment.
9621 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
9622 (aarch64_function_arg_boundary): Likewise.
9623 (aarch64_gimplify_va_arg_expr): Likewise.
9624
9625 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9626
9627 PR middle-end/89037
9628 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
9629 instead of accessing TREE_INT_CST_ELT directly.
9630
9631 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
9632
9633 * doc/sourcebuild.texi (Environment attributes): Add fenv and
9634 fenv_exceptions description.
9635
9636 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
9637
9638 PR rtl-optimization/87763
9639 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
9640 Allow SUBREG when matching CC_NZmode compare.
9641
9642 2019-01-25 Richard Biener <rguenther@suse.de>
9643
9644 PR tree-optimization/89049
9645 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
9646 Look at the pattern stmt to determine if the stmt is vectorized.
9647
9648 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9649
9650 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
9651 (pred_mov<mode>): Handle all-register forms using both a new
9652 alternative and a split.
9653
9654 2019-01-25 Richard Biener <rguenther@suse.de>
9655
9656 PR tree-optimization/86865
9657 * graphite-scop-detection.c (scop_detection::can_represent_loop):
9658 Reject non-do-while loops.
9659
9660 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
9661
9662 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
9663 * config/rs6000/constraints.md (Q constraint): Use REG_P.
9664 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
9665 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
9666 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
9667 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9668 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
9669 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
9670 vlogical_operand, gpc_reg_operand, int_reg_operand,
9671 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
9672 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
9673 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
9674 (save_world_operation, restore_world_operation, lmw_operation,
9675 stmw_operation): Use MEM_P and REG_P.
9676 (tie_operand): Use MEM_P.
9677 (vrsave_operation, crsave_operation): Use REG_P.
9678 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
9679 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
9680 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
9681 (call_operand): Use HARD_REGISTER_P.
9682 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
9683 Use CONST_INT_P.
9684 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
9685 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
9686 quad_aligned_load_p, replace_swapped_aligned_store,
9687 recombine_lvx_pattern, replace_swapped_aligned_load,
9688 recombine_stvx_pattern): Use MEM_P.
9689 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
9690 Use MEM_P and SYMBOL_REF_P.
9691 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
9692 (insn_is_swappable_p): Use REG_P and MEM_P.
9693 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
9694 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
9695 Use CONST_INT_P.
9696 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
9697 Use CONST_DOUBLE_P.
9698 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
9699 CONST_WIDE_INT_P.
9700 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
9701 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
9702 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
9703 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
9704 reg_or_subregno:
9705 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
9706 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
9707 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
9708 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
9709 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
9710 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
9711 rs6000_split_logical_di): Use CONST_INT_P.
9712 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
9713 REG_P and SYMBOL_REF_P.
9714 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
9715 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
9716 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
9717 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
9718 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
9719 (small_data_operand, print_operand_address): Use CONST_INT_P and
9720 SYMBOL_REF_P.
9721 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
9722 (rs6000_init_hard_regno_mode_ok, direct_move_p):
9723 Use HARD_REGISTER_NUM_P.
9724 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
9725 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
9726 SUBREG_P and SYMBOL_REF_P.
9727 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
9728 and HARD_REGISTER_NUM_P.
9729 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
9730 reg_or_subregno.
9731 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
9732 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
9733 MEM_P and REG_P.
9734 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
9735 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
9736 find_addr_reg): Use REG_P.
9737 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
9738 (rs6000_emit_le_vsx_move): Use SUBREG_P.
9739 (offsettable_ok_by_alignment, constant_pool_expr_p,
9740 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
9741 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
9742 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
9743 rs6000_assemble_integer, create_TOC_reference,
9744 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
9745 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
9746 (rs6000_split_vec_extract_var): Use reg_or_subregno.
9747 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
9748 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
9749 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9750 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9751 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
9752 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
9753 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
9754 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
9755 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
9756 and cbranch<mode>4): Use CONST_INT_P.
9757 (multiple define_splits): Use REG_P and SUBREG_P.
9758 (define_expands call, call_value): Use MEM_P.
9759 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
9760 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
9761 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
9762 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
9763 and HARD_REGISTER_NUM_P.
9764 (multiple define_splits): Use HARD_REGISTER_NUM_P.
9765
9766 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
9767
9768 PR rtl-optimization/88948
9769 * rtl.h (prepare_copy_insn): New prototype.
9770 * gcse.c (prepare_copy_insn): New function, split out from
9771 process_insert_insn.
9772 (process_insert_insn): Use prepare_copy_insn.
9773 * store-motion.c (replace_store_insn): Use prepare_copy_insn
9774 instead of gen_move_insn.
9775
9776 2019-01-24 Jakub Jelinek <jakub@redhat.com>
9777
9778 PR debug/89006
9779 * config/i386/i386.c (ix86_pic_register_p): Return true for
9780 UNSPEC_SET_GOT too.
9781
9782 PR tree-optimization/88964
9783 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
9784 punt if HONOR_SNANS (chrec).
9785
9786 PR middle-end/89015
9787 * tree-nested.c (convert_nonlocal_reference_stmt,
9788 convert_local_reference_stmt, convert_tramp_reference_stmt,
9789 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
9790 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
9791 or GIMPLE_OMP_TASK.
9792
9793 PR tree-optimization/89027
9794 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
9795 for "omp simd array" variables.
9796
9797 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
9798
9799 PR target/88469
9800 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
9801 force the alignment of m_val.
9802
9803 2019-01-24 Richard Biener <rguenther@suse.de>
9804
9805 PR lto/87187
9806 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
9807 When in "legacy" debug mode make sure to reset self-origins.
9808
9809 2019-01-24 Martin Liska <mliska@suse.cz>
9810
9811 PR gcov-profile/88994
9812 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
9813 result will be always smaller or equal to the original.
9814 * gcov.c (mangle_name): Fix else branch where we should
9815 also copy to PTR and shift the pointer.
9816
9817 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
9818
9819 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
9820 * vr-values.c (find_case_label_ranges): Fix a comment typo.
9821
9822 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
9823
9824 * common/config/i386/i386-common.c
9825 (OPTION_MASK_ISA_ENQCMD_SET,
9826 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
9827 (ix86_handle_option): Handle -menqcmd.
9828 * config.gcc (enqcmdintrin.h): New header file.
9829 * config/i386/cpuid.h (bit_ENQCMD): New bit.
9830 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
9831 -menqcmd.
9832 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
9833 function type.
9834 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
9835 __builtin_ia32_enqcmds): New builtins.
9836 * config/i386/i386-c.c (__ENQCMD__): New macro.
9837 * config/i386/i386-option.c (ix86_target_string): Add
9838 -menqcmd.
9839 (ix86_valid_target_attribute_inner_p): Likewise.
9840 * config/i386/i386-expand.c
9841 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
9842 IX86_BUILTIN_ENQCMDS.
9843 * config/i386/i386.h (TARGET_ENQCMD): New.
9844 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
9845 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
9846 (movdir64b_<mode>): Parameterize to enable share expansion code
9847 with ENQCMD in function ix86_expand_builtin.
9848 * config/i386/i386.opt: Add -menqcmd.
9849 * config/i386/immintrin.h: Include enqcmdintrin.h.
9850 * config/i386/enqcmdintrin.h: New intrinsic file.
9851 * doc/invoke.texi: Add -menqcmd.
9852
9853 2019-01-23 Bin Cheng <bin.cheng@arm.com>
9854 Steve Ellcey <sellcey@marvell.com>
9855
9856 PR target/85711
9857 * recog.c (address_operand): Return false on wrong mode for address.
9858 (constrain_operands): Check for mode with 'p' constraint.
9859
9860 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
9861
9862 PR target/88998
9863 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
9864 Disparage MMX alternative.
9865 (sse2_cvtpd2pi): Ditto.
9866 (sse2_cvttpd2pi): Ditto.
9867
9868 2019-01-23 David Malcolm <dmalcolm@redhat.com>
9869
9870 PR driver/89014
9871 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
9872 use-after-free of the result of
9873 aarch64_get_extension_string_for_isa_flags.
9874
9875 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9876
9877 PR c/44715
9878 * doc/extend.texi: Document break and continue behavior in
9879 statement expressions.
9880
9881 2019-01-23 Richard Biener <rguenther@suse.de>
9882
9883 PR tree-optimization/89008
9884 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
9885 not leave another stray operand.
9886
9887 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9888
9889 * BASE-VER: Bump to 9.0.1.
9890
9891 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
9892
9893 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
9894 thunk that returns by reference, use the type of the return object
9895 of the thunk instead of that of the alias to build the dereference.
9896
9897 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
9898
9899 * config/arc/atomic.md: Add operand to DMB instruction.
9900
9901 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9902
9903 PR tree-optimization/88964
9904 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
9905 build_zero_cst instead of build_int_cst. Return false for loop
9906 invariants which honor signed zeros.
9907
9908 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
9909
9910 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
9911
9912 2019-01-22 Jakub Jelinek <jakub@redhat.com>
9913
9914 PR target/88965
9915 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
9916 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
9917 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
9918
9919 PR middle-end/88968
9920 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
9921 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
9922
9923 PR target/87064
9924 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
9925 Disable for little endian.
9926
9927 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
9928
9929 PR target/88469
9930 * config/arm/arm.c (arm_needs_double_word_align): Check
9931 DECL_BIT_FIELD_TYPE.
9932
9933 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
9934 H.J. Lu <hongjiu.lu@intel.com>
9935
9936 PR target/88909
9937 * config/i386/i386-builtin.def: Add mask2 to all builtin
9938 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
9939 SPECIAL_ARGS.
9940 * config/i386/i386.c (BDESC): Add mask2 to the definition.
9941 (BDESC_FIRST): Likewise.
9942 (define_builtin): Add an argument for mask2. Updated to handle
9943 both ix86_isa_flags and ix86_isa_flags2.
9944 (define_builtin_const): Likewise.
9945 (define_builtin_pure): Likewise.
9946 (define_builtin2): Deleted.
9947 (define_builtin_const2): Likewise.
9948 (builtin_description): Add a member, mask2.
9949 (bdesc_*): Add mask2 to builtin initializations.
9950 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
9951 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
9952 support.
9953 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
9954
9955 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
9956
9957 PR target/88954
9958 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
9959 noplt attribute.
9960
9961 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
9962
9963 PR target/88469
9964 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
9965 alignment is dominated by a bitfield with 64-bit aligned base type.
9966 (arm_function_arg): Emit a warning if the alignment has changed since
9967 earlier GCC releases.
9968 (arm_function_arg_boundary): Likewise.
9969 (arm_setup_incoming_varargs): Likewise.
9970
9971 2019-01-22 Richard Biener <rguenther@suse.de>
9972
9973 PR tree-optimization/88862
9974 * graphite-scop-detection.c
9975 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
9976
9977 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
9978
9979 * doc/extend.tex (AMD GCN Function Attributes): New section.
9980 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
9981 * doc/invoke.texi (AMD GCN Options): New section.
9982 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
9983
9984 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
9985
9986 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
9987 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
9988
9989 2019-01-22 Jakub Jelinek <jakub@redhat.com>
9990
9991 PR tree-optimization/88044
9992 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
9993 is false in the first iteration, but !every_iteration, return false
9994 instead of true with niter->niter zero.
9995
9996 PR rtl-optimization/88904
9997 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
9998 any nonequal registers before processing BB_END (b).
9999
10000 PR target/88905
10001 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
10002 GET_MODE (op0).
10003 (expand_binop_directly, expand_doubleword_clz,
10004 expand_doubleword_popcount, expand_ctz, expand_ffs,
10005 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
10006
10007 PR rtl-optimization/49429
10008 PR target/49454
10009 PR rtl-optimization/86334
10010 PR target/88906
10011 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
10012 addressable from here...
10013 (emit_block_op_via_libcall): ... to here.
10014
10015 2019-01-22 Richard Biener <rguenther@suse.de>
10016
10017 * tree-vect-loop.c (vect_analyze_loop_operations): Use
10018 auto_vec for cost vector to fix memleak.
10019 (vectorize_fold_left_reduction): Properly gather SLP defs.
10020 (vectorizable_comparison): Do not swap operands to properly
10021 gather SLP defs.
10022
10023 2019-01-22 Alan Modra <amodra@gmail.com>
10024
10025 PR target/88614
10026 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
10027 stays a reg. Allow a const_int.
10028 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
10029 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
10030 (IS_NOMARK_TLSGETADDR): Define.
10031 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
10032 (rs6000_output_tlsargs): New function.
10033 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
10034 __tls_get_addr call takes an arg.
10035 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
10036 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
10037 delete split..
10038 (call_value_nonlocal_sysv): ..or here, delete split.
10039 (tls_gdld_nomark): Delete.
10040 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
10041 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
10042 (call_value_nonlocal_sysv): Likewise.
10043 (call_value_nonlocal_sysv_secure): Likewise.
10044 (call_value_nonlocal_aix): Likewise.
10045 (call_value_indirect_aix): Likewise.
10046 (call_value_indirect_elfv2): Likewise.
10047 (call_value_local32, call_value_local64): Disable for no-mark tls.
10048 (call_value_local_aix): Likewise.
10049
10050 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
10051
10052 PR target/88938
10053 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
10054 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
10055
10056 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
10057
10058 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
10059 string contents as hash_map keys.
10060
10061 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
10062
10063 PR c/88928
10064 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
10065 for rvalue context. Handle rvalues correctly. Use min_align_of_type
10066 instead of TYPE_ALIGN.
10067 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
10068 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
10069 pointer from TYPE_STUB_DECL.
10070
10071 2019-01-21 Richard Biener <rguenther@suse.de>
10072
10073 PR tree-optimization/88934
10074 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
10075 at the possibly non-constant operand.
10076 (vect_get_constant_vectors): Adjust.
10077
10078 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
10079
10080 PR target/71659
10081 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
10082 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
10083 instead of _X86INTRIN_H_INCLUDED.
10084 * onfig/i386/clwbintrin.h: Likewise.
10085 * config/i386/pkuintrin.h: Likewise.
10086 * config/i386/prfchwintrin.h: Likewise.
10087 * config/i386/rdseedintrin.h: Likewise.
10088 * config/i386/wbnoinvdintrin.h: Likewise.
10089 * config/i386/xsavecintrin.h: Likewise.
10090 * config/i386/xsavesintrin.h: Likewise.
10091 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
10092 * config/i386/xsaveintrin.h: Likewise.
10093 * config/i386/xsaveoptintrin.h: Likewise.
10094 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
10095 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
10096 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
10097 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
10098 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
10099 * config/i386/immintrin.h: Here.
10100
10101 2019-01-20 Martin Jambor <mjambor@suse.cz>
10102
10103 PR ipa/87615
10104 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
10105 with aa_walk_budget.
10106 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
10107 aa_walk_budget_p parameter.
10108 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
10109 walk. Updated all callers.
10110 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
10111 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
10112 unmodified_parm.
10113 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
10114 parameter info. Extract info from fbi. Pass fbi to recursive calls
10115 and to unmodified_parm.
10116 (phi_result_unknown_predicate): New parameter fbi, removed parameter
10117 info, updated call to will_be_nonconstant_expr_predicate.
10118 (param_change_prob): New parameter fbi, limit AA walking.
10119 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
10120 calls to various above functions.
10121 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
10122 parameter. Use it to limit AA walking.
10123 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
10124 fbi, limit AA walk.
10125 (detect_type_change): New parameter fbi, pass it on to
10126 detect_type_change_from_memory_writes.
10127 (detect_type_change_ssa): Likewise.
10128 (aa_overwalked): Removed.
10129 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
10130 accordingly, adjust to the neew AA limiting scheme.
10131 (parm_ref_data_preserved_p): Likewise.
10132 (ipa_compute_jump_functions_for_edge): Adjust call to
10133 get_dynamic_type.
10134 (ipa_analyze_call_uses): Likewise.
10135 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
10136 (ipa_analyze_node): Initialize aa_walk_budget.
10137 (ipcp_transform_function): Likewise.
10138 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
10139 to get_dynamic_type.
10140
10141 2019-01-19 Jakub Jelinek <jakub@redhat.com>
10142
10143 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
10144 outside of #if CHECKING_P code.
10145
10146 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
10147
10148 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
10149 New function, split out from...
10150 (loop_versioning::analyze_stride): ...here.
10151 (loop_versioning::find_per_loop_multiplication): Use gassign.
10152 (loop_versioning::analyze_term_using_scevs): Return a success code.
10153 (loop_versioning::analyze_arbitrary_term): New function.
10154 (loop_versioning::analyze_address_fragment): Use
10155 analyze_arbitrary_term if all else fails.
10156
10157 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
10158
10159 PR target/88892
10160 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
10161 operands.
10162
10163 2019-01-18 Richard Biener <rguenther@suse.de>
10164
10165 PR tree-optimization/88903
10166 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
10167 scalar stmts a SLP shift amount is composed of when detecting
10168 shifts by scalars.
10169
10170 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
10171
10172 PR target/88799
10173 * config/arm/arm-cpus.in (mp): New feature.
10174 (sec): New feature.
10175 (fgroup ARMv7ve): Add mp and sec features.
10176 (arch armv7-a): Add options to allow mp and sec extensions.
10177 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
10178 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
10179 extenstions to the base architecture.
10180 (cpu cortex-a8): Add sec extension to the base architecture.
10181 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
10182 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
10183 variants down to the base v7-a varaint.
10184 * config/arm/t-multilib (v7_a_arch_variants): New variable.
10185 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
10186 of permitted extensions for -march=armv7-a and for
10187 -mcpu=generic-armv7-a.
10188
10189 2019-01-18 Martin Liska <mliska@suse.cz>
10190
10191 * params.def: Fix comment.
10192 * tree-profile.c (gimple_init_gcov_profiler): Bump function
10193 name.
10194 (gimple_gen_ic_func_profiler): Likewise.
10195
10196 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10197
10198 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
10199 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
10200 and put in error checks for stack protector guard options.
10201 (aarch64_stack_protect_guard): New.
10202 (TARGET_STACK_PROTECT_GUARD): Define.
10203 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
10204 (reg_stack_protect_address<mode>): New.
10205 (stack_protect_set): Adjust for SSP_GLOBAL.
10206 (stack_protect_test): Likewise.
10207 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
10208 (-mstack-protector-guard): Likewise.
10209 (-mstack-protector-guard-offset): Likewise.
10210
10211 2019-01-18 Jakub Jelinek <jakub@redhat.com>
10212
10213 PR tree-optimization/86214
10214 * tree-inline.h (struct copy_body_data): Add
10215 add_clobbers_to_eh_landing_pads member.
10216 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
10217 (copy_edges_for_bb): Call it if EH edge destination is <
10218 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
10219 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
10220 if flag_stack_reuse != SR_NONE and clear it afterwards.
10221
10222 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
10223
10224 PR target/85596
10225 * doc/install.texi (with-multilib-list): Document for aarch64.
10226
10227 2019-01-18 Jakub Jelinek <jakub@redhat.com>
10228
10229 PR target/88734
10230 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
10231 (("..."))) with ("...").
10232
10233 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
10234
10235 * doc/extend.texi (Built-in Functions for Memory Model Aware
10236 Atomic Operations): Document atomic fetch and nand.
10237
10238 2019-01-18 Martin Liska <mliska@suse.cz>
10239 Richard Biener <rguenther@suse.de>
10240
10241 PR middle-end/88587
10242 * cgraph.h (create_version_clone_with_body): Add new argument
10243 with attributes.
10244 * cgraphclones.c (cgraph_node::create_version_clone): Add
10245 DECL_ATTRIBUTES to a newly created decl. And call
10246 valid_attribute_p so that proper cl_target_optimization_node
10247 is set for the newly created declaration.
10248 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
10249 for declaration.
10250 (expand_target_clones): Do not call valid_attribute_p, it must
10251 be already done.
10252 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
10253 vector types.
10254
10255 2019-01-17 Jakub Jelinek <jakub@redhat.com>
10256
10257 PR target/88734
10258 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
10259 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
10260 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
10261
10262 2019-01-17 Martin Sebor <msebor@redhat.com>
10263
10264 PR middle-end/88273
10265 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
10266 Handle anti-ranges the same as no range at all.
10267
10268 2018-01-17 Steve Ellcey <sellcey@cavium.com>
10269
10270 * config/aarch64/aarch64.c (cgraph.h): New include.
10271 (intl.h): New include.
10272 (supported_simd_type): New function.
10273 (currently_supported_simd_type): Ditto.
10274 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
10275 (aarch64_simd_clone_adjust): Ditto.
10276 (aarch64_simd_clone_usable): Ditto.
10277 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
10278 (TARGET_SIMD_CLONE_ADJUST): Ditto.
10279 (TARGET_SIMD_CLONE_USABLE): Ditto.
10280 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
10281 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
10282 call.
10283
10284 2019-01-17 Martin Sebor <msebor@redhat.com>
10285
10286 PR tree-optimization/88800
10287 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
10288 NO_WARNING bit here. Avoid folding out-of-bounds calls.
10289 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
10290 redundant argument. Add new argument and issue diagnostics under
10291 its control. Detect out-of-bounds access even with warnings
10292 disabled.
10293 (check_bounds_or_overlap): Change return type. Add argument.
10294 (wrestrict_dom_walker::check_call): Adjust.
10295 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
10296 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
10297 check_bounds_or_overlap's return value.
10298 (handle_builtin_stxncpy): Same.
10299 (handle_builtin_strcat): Same.
10300
10301 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10302 Kwok Cheung Yeung <kcy@codesourcery.com>
10303 Julian Brown <julian@codesourcery.com>
10304 Tom de Vries <tom@codesourcery.com>
10305
10306 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
10307
10308 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10309
10310 * doc/sourcebuild.texi: Document dg-require-effective-target
10311 llvm_binutils and offload_gcn.
10312
10313 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10314 Kwok Cheung Yeung <kcy@codesourcery.com>
10315 Julian Brown <julian@codesourcery.com>
10316 Tom de Vries <tom@codesourcery.com>
10317
10318 * doc/sourcebuild.texi: Document dg-required-effective-target
10319 exceptions.
10320
10321 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10322 Kwok Cheung Yeung <kcy@codesourcery.com>
10323 Julian Brown <julian@codesourcery.com>
10324 Tom de Vries <tom@codesourcery.com>
10325 Jan Hubicka <hubicka@ucw.cz>
10326 Martin Jambor <mjambor@suse.cz>
10327
10328 * config.gcc: Add amdgcn*-*-amdhsa configuration.
10329 * configure.ac: Check for dlopen.
10330 * configure: Regenerate.
10331
10332 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10333 Kwok Cheung Yeung <kcy@codesourcery.com>
10334 Julian Brown <julian@codesourcery.com>
10335 Tom de Vries <tom@codesourcery.com>
10336 Jan Hubicka <hubicka@ucw.cz>
10337 Martin Jambor <mjambor@suse.cz>
10338
10339 * common/config/gcn/gcn-common.c: New file.
10340 * config/gcn/driver-gcn.c: New file.
10341 * config/gcn/gcn-builtins.def: New file.
10342 * config/gcn/gcn-hsa.h: New file.
10343 * config/gcn/gcn-modes.def: New file.
10344 * config/gcn/gcn-opts.h: New file.
10345 * config/gcn/gcn-passes.def: New file.
10346 * config/gcn/gcn-protos.h: New file.
10347 * config/gcn/gcn-run.c: New file.
10348 * config/gcn/gcn-tree.c: New file.
10349 * config/gcn/gcn.c: New file.
10350 * config/gcn/gcn.h: New file.
10351 * config/gcn/gcn.opt: New file.
10352 * config/gcn/t-gcn-hsa: New file.
10353
10354 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10355 Kwok Cheung Yeung <kcy@codesourcery.com>
10356 Julian Brown <julian@codesourcery.com>
10357 Tom de Vries <tom@codesourcery.com>
10358 Jan Hubicka <hubicka@ucw.cz>
10359 Martin Jambor <mjambor@suse.cz>
10360
10361 * config/gcn/constraints.md: New file.
10362 * config/gcn/gcn-valu.md: New file.
10363 * config/gcn/gcn.md: New file.
10364 * config/gcn/predicates.md: New file.
10365
10366 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
10367
10368 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
10369 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
10370 (stmt_uses_0_or_null_in_undefined_way): Likewise.
10371 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
10372
10373 2019-01-17 Tamar Christina <tamar.christina@arm.com>
10374
10375 PR target/88851
10376 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
10377 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
10378 it and document registers.
10379
10380 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10381
10382 * config/aarch64/aarch64.c (ares_tunings): Define.
10383 * config/aarch64/aarch64-cores.def (ares): Use the above.
10384
10385 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10386
10387 PR target/88794
10388 Revert:
10389 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
10390
10391 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
10392 (_mm512_fixupimm_round_pd): Update parameters and builtin.
10393 (_mm512_maskz_fixupimm_round_pd): Ditto.
10394 (_mm512_fixupimm_round_ps): Ditto.
10395 (_mm512_maskz_fixupimm_round_ps): Ditto.
10396 (_mm_fixupimm_round_sd): Ditto.
10397 (_mm_maskz_fixupimm_round_sd): Ditto.
10398 (_mm_fixupimm_round_ss): Ditto.
10399 (_mm_maskz_fixupimm_round_ss): Ditto.
10400 (_mm512_fixupimm_pd): Ditto.
10401 (_mm512_maskz_fixupimm_pd): Ditto.
10402 (_mm512_fixupimm_ps): Ditto.
10403 (_mm512_maskz_fixupimm_ps): Ditto.
10404 (_mm_fixupimm_sd): Ditto.
10405 (_mm_maskz_fixupimm_sd): Ditto.
10406 (_mm_fixupimm_ss): Ditto.
10407 (_mm_maskz_fixupimm_ss): Ditto.
10408 (_mm512_mask_fixupimm_round_pd): Update builtin.
10409 (_mm512_mask_fixupimm_round_ps): Ditto.
10410 (_mm_mask_fixupimm_round_sd): Ditto.
10411 (_mm_mask_fixupimm_round_ss): Ditto.
10412 (_mm512_mask_fixupimm_pd): Ditto.
10413 (_mm512_mask_fixupimm_ps): Ditto.
10414 (_mm_mask_fixupimm_sd): Ditto.
10415 (_mm_mask_fixupimm_ss): Ditto.
10416 * config/i386/avx512vlintrin.h:
10417 (_mm256_fixupimm_pd): Update parameters and builtin.
10418 (_mm256_maskz_fixupimm_pd): Ditto.
10419 (_mm256_fixupimm_ps): Ditto.
10420 (_mm256_maskz_fixupimm_ps): Ditto.
10421 (_mm_fixupimm_pd): Ditto.
10422 (_mm_maskz_fixupimm_pd): Ditto.
10423 (_mm_fixupimm_ps): Ditto.
10424 (_mm_maskz_fixupimm_ps): Ditto.
10425 (_mm256_mask_fixupimm_pd): Update builtin.
10426 (_mm256_mask_fixupimm_ps): Ditto.
10427 (_mm_mask_fixupimm_pd): Ditto.
10428 (_mm_mask_fixupimm_ps): Ditto.
10429 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
10430 * config/i386/i386-builtin.def: Update builtin definitions.
10431 * config/i386/i386.c: Handle new builtin types and remove useless ones.
10432 * config/i386/sse.md: Update VFIXUPIMM* patterns.
10433 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10434 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10435 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
10436 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10437 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10438 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
10439 * config/i386/subst.md:
10440 (round_saeonly_sd_mask_operand4): Add new subst_attr.
10441 (round_saeonly_sd_mask_op4): Ditto.
10442 (round_saeonly_expand_operand5): Ditto.
10443 (round_saeonly_expand): Update.
10444
10445 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10446
10447 PR target/88794
10448 Revert:
10449 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
10450
10451 * config/i386/sse.md: Combine VFIXUPIMM* patterns
10452 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10453 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10454 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
10455 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10456 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10457 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
10458
10459 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10460
10461 PR target/88794
10462 Revert:
10463 2018-12-15 Jakub Jelinek <jakub@redhat.com>
10464
10465 PR target/88489
10466 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
10467 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
10468 instead of UNSPEC_FIXUPIMM.
10469
10470 2019-01-17 Richard Biener <rguenther@suse.de>
10471
10472 PR lto/86736
10473 * dwarf2out.c (want_pubnames): Never generate pubnames sections
10474 and friends for the LTO part of debug info.
10475
10476 2019-01-17 Jakub Jelinek <jakub@redhat.com>
10477
10478 PR tree-optimization/86214
10479 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
10480 if x == y.
10481
10482 PR rtl-optimization/88870
10483 * dce.c (deletable_insn_p): Never delete const/pure calls that can
10484 throw if we can't alter the cfg or delete dead exceptions.
10485 (mark_insn): Don't call find_call_stack_args for such calls.
10486
10487 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
10488
10489 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
10490 prototypes for vec_st.
10491 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
10492 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
10493 mainly on signed/unsigned long long and double.
10494
10495 2019-01-16 David Malcolm <dmalcolm@redhat.com>
10496
10497 PR target/88861
10498 * combine.c (delete_noop_moves): Convert to "bool" return,
10499 returning true if any edges are eliminated.
10500 (combine_instructions): Also return true if delete_noop_moves
10501 returns true.
10502
10503 2019-01-16 Tamar Christina <tamar.christina@arm.com>
10504
10505 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
10506 correct max nunits for endian swap.
10507 (aarch64_expand_fcmla_builtin): Correct subreg code.
10508 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
10509 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
10510 lane endianness.
10511
10512 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
10513
10514 * config/alpha/alpha.c (alpha_gimplify_va_arg):
10515 Handle split indirect COMPLEX_TYPE arguments.
10516
10517 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
10518
10519 PR target/86891
10520 * config/aarch64/aarch64-modes.def: Add comment about how the carry
10521 bit is set by add and compare.
10522 (CC_ADC): New CC_MODE.
10523 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
10524 to cache the code and mode of X. Adjust the shape of a CC_Cmode
10525 comparison. Add detection for CC_ADCmode.
10526 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
10527 CC_ADCmode.
10528 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
10529 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
10530 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
10531 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
10532 to eliminate the need for zero-extending the operands.
10533 (add<mode>3_compareC_imm): Delete. Merge into ...
10534 (add<mode>3_compareC): ... this. Restructure the comparison to
10535 eliminate the need for zero-extending the operands.
10536 (add<mode>3_carryin): Use LTU for the overflow detection.
10537 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
10538 Reexpress comparison for overflow.
10539 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
10540 (add<mode>3_carryinC): Likewise.
10541 (add<mode>3_carryinV): Use LTU for carry between partials.
10542 * config/aarch64/predicates.md (aarch64_carry_operation): Update
10543 handling of CC_Cmode and add CC_ADCmode.
10544 (aarch64_borrow_operation): Likewise.
10545
10546 2019-01-16 Tamar Christina <tamar.christina@arm.com>
10547
10548 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
10549 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
10550 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
10551 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
10552
10553 2019-01-16 Martin Liska <mliska@suse.cz>
10554
10555 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
10556 for GCC driver.
10557 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
10558 a new argument.
10559 * gcc.c (add_sysrooted_hdrs_prefix): New function.
10560 (path_prefix_reset): Move up in the source file.
10561 (find_fortran_preinclude_file): Make complex search for the
10562 fortran header files.
10563
10564 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
10565
10566 * godump.c (go_output_typedef): When outputting a typedef, refer
10567 to the underlying type by its name and not its structure.
10568
10569 2019-01-15 David Malcolm <dmalcolm@redhat.com>
10570
10571 PR c++/88795
10572 * tree.c (build_function_type): Assert that arg_types is not
10573 error_mark_node.
10574
10575 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
10576
10577 PR inline-asm/52813
10578 * doc/extend.texi: Document that listing the stack pointer in the
10579 clobber list of an asm is a deprecated feature.
10580 * common.opt (Wdeprecated): Moved from c-family/c.opt.
10581 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
10582 warning instead of an error for clobbers of the stack pointer.
10583 Add a note explaining why.
10584
10585 2019-01-15 Richard Biener <rguenther@suse.de>
10586
10587 PR debug/88046
10588 * dwarf2out.c (gen_member_die): Do not generate inheritance
10589 DIEs late.
10590
10591 2019-01-15 Richard Biener <rguenther@suse.de>
10592
10593 PR tree-optimization/88855
10594 * tree-if-conv.c (combine_blocks): Collect
10595 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
10596
10597 2019-01-15 Tom de Vries <tdevries@suse.de>
10598
10599 PR target/80547
10600 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
10601 lhs == NULL_TREE for gang-level reduction.
10602
10603 2019-01-15 Richard Biener <rguenther@suse.de>
10604 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10605
10606 PR ipa/88788
10607 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
10608 return true if SSA_NAME is already marked in visited bitmap.
10609 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
10610
10611 2019-01-15 Jakub Jelinek <jakub@redhat.com>
10612
10613 PR tree-optimization/88775
10614 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
10615 equal == 0 equality pointer comparisons some more if compared in
10616 integral types and either one points to an automatic var and the
10617 other to a global, or we can prove at least one points to the middle
10618 or both point to start or both point to end.
10619
10620 2019-01-14 Andi Kleen <ak@linux.intel.com>
10621
10622 * Makefile.in: Lower autofdo sampling rate by 10x.
10623 * Makefile.tpl: Dito.
10624
10625 2019-01-14 Tom Honermann <tom@honermann.net>
10626
10627 * defaults.h: Define CHAR8_TYPE.
10628
10629 2019-01-14 Martin Sebor <msebor@redhat.com>
10630
10631 PR target/88638
10632 * doc/extend.texi (Darwin Format Checks): Clarify.
10633
10634 2019-01-14 Richard Biener <rguenther@suse.de>
10635
10636 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
10637 whether we are in (simplify ...) or (match ...) context.
10638
10639 2019-01-14 Jakub Jelinek <jakub@redhat.com>
10640
10641 PR rtl-optimization/88796
10642 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
10643 * cfgexpand.c (stack_protect_prologue): Initialize
10644 crtl->stack_protect_guard_decl.
10645 * function.c (stack_protect_epilogue): Use it instead of calling
10646 targetm.stack_protect_guard again.
10647 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
10648 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
10649 crtl->stack_protect_guard_decl.
10650 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
10651 on the returned MEM_EXPR.
10652
10653 2019-01-12 Tom de Vries <tdevries@suse.de>
10654
10655 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
10656 vector length using -fopenacc-dim.
10657
10658 2019-01-12 Tom de Vries <tdevries@suse.de>
10659
10660 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
10661 lengths into account.
10662
10663 2019-01-12 Svante Signell <svante.signell@gmail.com>
10664
10665 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
10666 (TARGET_CAN_SPLIT_STACK): Define.
10667 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10668
10669 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
10670
10671 * params.def (inline-unit-growth): Set to 40.
10672
10673 2019-01-12 Jakub Jelinek <jakub@redhat.com>
10674
10675 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
10676
10677 2019-01-12 Tom de Vries <tdevries@suse.de>
10678
10679 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
10680 region calling vector-partitionable routine, set default_vector_length
10681 to WARP_SIZE.
10682
10683 2019-01-12 Tom de Vries <tdevries@suse.de>
10684
10685 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
10686 variable default_vector_length.
10687
10688 2019-01-12 Tom de Vries <tdevries@suse.de>
10689
10690 PR middle-end/88703
10691 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
10692 from oacc_default_dims, as oacc_validate_dims would do it, and apply
10693 dimensions limits.
10694
10695 2019-01-12 Tom de Vries <tdevries@suse.de>
10696
10697 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
10698 (nvptx_goacc_validate_dims): Add used parameter.
10699 * doc/tm.texi: Regenerate.
10700 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
10701 argument to call to targetm.goacc.validate_dims.
10702 (default_goacc_validate_dims): Add used
10703 parameter.
10704 * target.def (validate_dims): Add used parameter in DEFHOOK.
10705 * targhooks.h (default_goacc_validate_dims): Add used parameter.
10706
10707 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10708
10709 PR middle-end/85956
10710 PR lto/88733
10711 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
10712 field.
10713 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
10714 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
10715 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
10716 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
10717
10718 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
10719
10720 PR rtl-optimization/87305
10721 * lra-assigns.c
10722 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
10723 for little endian pseudos used as paradoxical subreg.
10724
10725 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10726
10727 PR tree-optimization/88693
10728 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
10729 for STRING_CSTs that don't contain any NUL characters in the first
10730 TREE_STRING_LENGTH bytes.
10731
10732 2019-01-11 Alan Modra <amodra@gmail.com>
10733
10734 PR 88777
10735 PR 88614
10736 * genattrtab.c (min_fn): Don't translate values.
10737 (min_attr_value): Return INT_MAX when the value can't be calculated.
10738 Return minimum among any values that can be calculated.
10739 (max_attr_value): Adjust.
10740
10741 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10742
10743 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
10744
10745 2019-01-11 Steve Ellcey <sellcey@marvell.com>
10746
10747 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
10748 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
10749 (aarch64_return_call_with_max_clobbers): New function.
10750 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
10751 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
10752 argument.
10753 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
10754 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
10755 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
10756 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
10757 * cselib.c (cselib_process_insn): Add argument to
10758 targetm.hard_regno_call_part_clobbered call.
10759 * ira-conflicts.c (ira_build_conflicts): Ditto.
10760 * ira-costs.c (ira_tune_allocno_costs): Ditto.
10761 * lra-constraints.c (inherit_reload_reg): Ditto.
10762 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
10763 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
10764 argument. Call targetm.return_call_with_max_clobbers.
10765 Add argument to targetm.hard_regno_call_part_clobbered call.
10766 (calls_have_same_clobbers_p): New function.
10767 (process_bb_lives): Add call_insn and last_call_insn variables.
10768 Pass call_insn to check_pseudos_live_through_calls.
10769 Modify if stmt to check targetm.return_call_with_max_clobbers.
10770 Update setting of flush variable.
10771 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
10772 to false.
10773 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
10774 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
10775 targetm.hard_regno_call_part_clobbered call.
10776 * reginfo.c (choose_hard_reg_mode): Ditto.
10777 * regrename.c (check_new_reg_p): Ditto.
10778 * reload.c (find_equiv_reg): Ditto.
10779 * reload1.c (emit_reload_insns): Ditto.
10780 * sched-deps.c (deps_analyze_insn): Ditto.
10781 * sel-sched.c (init_regs_for_mode): Ditto.
10782 (mark_unavailable_hard_regs): Ditto.
10783 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
10784 * target.def (hard_regno_call_part_clobbered): Add insn argument.
10785 (return_call_with_max_clobbers): New target function.
10786 * doc/tm.texi: Regenerate.
10787 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
10788 * hooks.c (hook_bool_uint_mode_false): Change to
10789 hook_bool_insn_uint_mode_false.
10790 * hooks.h (hook_bool_uint_mode_false): Ditto.
10791
10792 2019-01-11 Steve Ellcey <sellcey@marvell.com>
10793
10794 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
10795 (aarch64_remove_extra_call_preserved_regs): New function.
10796 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
10797 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
10798 * doc/tm.texi: Regenerate.
10799 * final.c (get_call_reg_set_usage): Call new hook.
10800 * target.def (remove_extra_call_preserved_regs): New hook.
10801 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
10802 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
10803
10804 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10805
10806 PR bootstrap/88714
10807 * passes.c (finish_optimization_passes): Call print_combine_total_stats
10808 inside of pass_combine_1 dump rather than pass_profile_1.
10809
10810 2019-01-11 Tom de Vries <tdevries@suse.de>
10811
10812 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
10813 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
10814 (PTX_NUM_PER_WORKER_BARRIERS): Define.
10815 (nvptx_apply_dim_limits): Prevent vector_length 64 and
10816 num_workers 16.
10817
10818 2019-01-11 Tom de Vries <tdevries@suse.de>
10819
10820 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
10821
10822 2019-01-11 Jan Beulich <jbeulich@suse.com>
10823
10824 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
10825 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
10826 sse2_cvtsi2sd): Add {l}.
10827 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
10828 syntax.
10829
10830 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10831
10832 PR target/88785
10833 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
10834 define_expand.
10835 (*float<floatunssuffix>v2div2sf2): New define_insn.
10836 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
10837 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
10838 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
10839 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
10840 match_operands with "const0_operand" "C".
10841
10842 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10843
10844 * config/aarch64/aarch64-builtins.c
10845 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
10846 (aarch64_init_simd_builtins): ...Here
10847
10848 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
10849
10850 PR rtl-optimization/87305
10851 * lra-assigns.c
10852 (setup_live_pseudos_and_spill_after_risky_transforms): Check
10853 allocation for big endian pseudos used as paradoxical subregs and
10854 spill them if it is wrong.
10855 * lra-constraints.c (lra_constraints): Add a comment.
10856
10857 2019-01-10 Richard Biener <rguenther@suse.de>
10858
10859 PR tree-optimization/88792
10860 * tree-ssa-pre.c (get_representative_for): Do not return a
10861 value-number here.
10862
10863 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10864
10865 PR middle-end/84877
10866 PR bootstrap/88450
10867 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
10868 (assign_parm_setup_block): Do the argument slot realignment here
10869 instead.
10870
10871 2019-01-10 Stefan Agner <stefan@agner.ch>
10872
10873 PR target/88648
10874 * config/arm/arm.c (arm_option_override_internal): Force
10875 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
10876
10877 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10878
10879 PR c/88568
10880 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
10881 DECL_EXTERNAL.
10882
10883 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10884
10885 * config/arm/arm-builtins.c
10886 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
10887 (MAC_LANE_PAIR_QUALIFIERS): New.
10888 (arm_expand_builtin_args): Use it.
10889 (arm_expand_builtin_1): Likewise.
10890 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
10891 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
10892 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
10893 * config/arm/arm_neon.h:
10894 (vcadd_rot90_f16): New.
10895 (vcaddq_rot90_f16): New.
10896 (vcadd_rot270_f16): New.
10897 (vcaddq_rot270_f16): New.
10898 (vcmla_f16): New.
10899 (vcmlaq_f16): New.
10900 (vcmla_lane_f16): New.
10901 (vcmla_laneq_f16): New.
10902 (vcmlaq_lane_f16): New.
10903 (vcmlaq_laneq_f16): New.
10904 (vcmla_rot90_f16): New.
10905 (vcmlaq_rot90_f16): New.
10906 (vcmla_rot90_lane_f16): New.
10907 (vcmla_rot90_laneq_f16): New.
10908 (vcmlaq_rot90_lane_f16): New.
10909 (vcmlaq_rot90_laneq_f16): New.
10910 (vcmla_rot180_f16): New.
10911 (vcmlaq_rot180_f16): New.
10912 (vcmla_rot180_lane_f16): New.
10913 (vcmla_rot180_laneq_f16): New.
10914 (vcmlaq_rot180_lane_f16): New.
10915 (vcmlaq_rot180_laneq_f16): New.
10916 (vcmla_rot270_f16): New.
10917 (vcmlaq_rot270_f16): New.
10918 (vcmla_rot270_lane_f16): New.
10919 (vcmla_rot270_laneq_f16): New.
10920 (vcmlaq_rot270_lane_f16): New.
10921 (vcmlaq_rot270_laneq_f16): New.
10922 (vcadd_rot90_f32): New.
10923 (vcaddq_rot90_f32): New.
10924 (vcadd_rot270_f32): New.
10925 (vcaddq_rot270_f32): New.
10926 (vcmla_f32): New.
10927 (vcmlaq_f32): New.
10928 (vcmla_lane_f32): New.
10929 (vcmla_laneq_f32): New.
10930 (vcmlaq_lane_f32): New.
10931 (vcmlaq_laneq_f32): New.
10932 (vcmla_rot90_f32): New.
10933 (vcmlaq_rot90_f32): New.
10934 (vcmla_rot90_lane_f32): New.
10935 (vcmla_rot90_laneq_f32): New.
10936 (vcmlaq_rot90_lane_f32): New.
10937 (vcmlaq_rot90_laneq_f32): New.
10938 (vcmla_rot180_f32): New.
10939 (vcmlaq_rot180_f32): New.
10940 (vcmla_rot180_lane_f32): New.
10941 (vcmla_rot180_laneq_f32): New.
10942 (vcmlaq_rot180_lane_f32): New.
10943 (vcmlaq_rot180_laneq_f32): New.
10944 (vcmla_rot270_f32): New.
10945 (vcmlaq_rot270_f32): New.
10946 (vcmla_rot270_lane_f32): New.
10947 (vcmla_rot270_laneq_f32): New.
10948 (vcmlaq_rot270_lane_f32): New.
10949 (vcmlaq_rot270_laneq_f32): New.
10950 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
10951 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
10952 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
10953 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
10954 vcmlaq_lane270): New.
10955 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
10956 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
10957 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
10958 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
10959 (arm_option_reconfigure_globals): Use them.
10960 * config/arm/iterators.md (VDF, VQ_HSF): New.
10961 (VCADD, VCMLA): New.
10962 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
10963 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
10964 New.
10965 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
10966 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
10967
10968 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10969
10970 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
10971 Add qualifier_lane_pair_index.
10972 (emit-rtl.h): Include.
10973 (TYPES_QUADOP_LANE_PAIR): New.
10974 (aarch64_simd_expand_args): Use it.
10975 (aarch64_simd_expand_builtin): Likewise.
10976 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
10977 New.
10978 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
10979 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
10980 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
10981 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
10982 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
10983 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
10984 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
10985 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
10986 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
10987 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
10988 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
10989 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
10990 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
10991 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
10992 Add __ARM_FEATURE_COMPLEX.
10993 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
10994 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
10995 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
10996 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
10997 fcmlaq_lane270): New.
10998 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
10999 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
11000 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
11001 * config/aarch64/arm_neon.h:
11002 (vcadd_rot90_f16): New.
11003 (vcaddq_rot90_f16): New.
11004 (vcadd_rot270_f16): New.
11005 (vcaddq_rot270_f16): New.
11006 (vcmla_f16): New.
11007 (vcmlaq_f16): New.
11008 (vcmla_lane_f16): New.
11009 (vcmla_laneq_f16): New.
11010 (vcmlaq_lane_f16): New.
11011 (vcmlaq_rot90_lane_f16): New.
11012 (vcmla_rot90_laneq_f16): New.
11013 (vcmla_rot90_lane_f16): New.
11014 (vcmlaq_rot90_f16): New.
11015 (vcmla_rot90_f16): New.
11016 (vcmlaq_laneq_f16): New.
11017 (vcmla_rot180_laneq_f16): New.
11018 (vcmla_rot180_lane_f16): New.
11019 (vcmlaq_rot180_f16): New.
11020 (vcmla_rot180_f16): New.
11021 (vcmlaq_rot90_laneq_f16): New.
11022 (vcmlaq_rot270_laneq_f16): New.
11023 (vcmlaq_rot270_lane_f16): New.
11024 (vcmla_rot270_laneq_f16): New.
11025 (vcmlaq_rot270_f16): New.
11026 (vcmla_rot270_f16): New.
11027 (vcmlaq_rot180_laneq_f16): New.
11028 (vcmlaq_rot180_lane_f16): New.
11029 (vcmla_rot270_lane_f16): New.
11030 (vcadd_rot90_f32): New.
11031 (vcaddq_rot90_f32): New.
11032 (vcaddq_rot90_f64): New.
11033 (vcadd_rot270_f32): New.
11034 (vcaddq_rot270_f32): New.
11035 (vcaddq_rot270_f64): New.
11036 (vcmla_f32): New.
11037 (vcmlaq_f32): New.
11038 (vcmlaq_f64): New.
11039 (vcmla_lane_f32): New.
11040 (vcmla_laneq_f32): New.
11041 (vcmlaq_lane_f32): New.
11042 (vcmlaq_laneq_f32): New.
11043 (vcmla_rot90_f32): New.
11044 (vcmlaq_rot90_f32): New.
11045 (vcmlaq_rot90_f64): New.
11046 (vcmla_rot90_lane_f32): New.
11047 (vcmla_rot90_laneq_f32): New.
11048 (vcmlaq_rot90_lane_f32): New.
11049 (vcmlaq_rot90_laneq_f32): New.
11050 (vcmla_rot180_f32): New.
11051 (vcmlaq_rot180_f32): New.
11052 (vcmlaq_rot180_f64): New.
11053 (vcmla_rot180_lane_f32): New.
11054 (vcmla_rot180_laneq_f32): New.
11055 (vcmlaq_rot180_lane_f32): New.
11056 (vcmlaq_rot180_laneq_f32): New.
11057 (vcmla_rot270_f32): New.
11058 (vcmlaq_rot270_f32): New.
11059 (vcmlaq_rot270_f64): New.
11060 (vcmla_rot270_lane_f32): New.
11061 (vcmla_rot270_laneq_f32): New.
11062 (vcmlaq_rot270_lane_f32): New.
11063 (vcmlaq_rot270_laneq_f32): New.
11064 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
11065 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
11066 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
11067 (FCADD, FCMLA): New.
11068 (rot): New.
11069 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
11070
11071 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
11072
11073 PR other/16615
11074
11075 * config/pa/pa.c: Change "can not" to "cannot".
11076 * gimple-ssa-evrp-analyze.c: Likewise.
11077 * ipa-icf.c: Likewise.
11078 * ipa-polymorphic-call.c: Likewise.
11079 * ipa-pure-const.c: Likewise.
11080 * lra-constraints.c: Likewise.
11081 * lra-remat.c: Likewise.
11082 * reload1.c: Likewise.
11083 * reorg.c: Likewise.
11084 * tree-ssa-uninit.c: Likewise.
11085
11086 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
11087
11088 PR other/16615
11089
11090 * Makefile.in: Mechanically replace "can not" with "cannot".
11091 * alias.c: Likewise.
11092 * builtins.c: Likewise.
11093 * calls.c: Likewise.
11094 * cgraph.c: Likewise.
11095 * cgraph.h: Likewise.
11096 * cgraphclones.c: Likewise.
11097 * cgraphunit.c: Likewise.
11098 * combine-stack-adj.c: Likewise.
11099 * combine.c: Likewise.
11100 * common/config/i386/i386-common.c: Likewise.
11101 * config/aarch64/aarch64.c: Likewise.
11102 * config/alpha/sync.md: Likewise.
11103 * config/arc/arc.c: Likewise.
11104 * config/arc/predicates.md: Likewise.
11105 * config/arm/arm-c.c: Likewise.
11106 * config/arm/arm.c: Likewise.
11107 * config/arm/arm.h: Likewise.
11108 * config/arm/arm.md: Likewise.
11109 * config/arm/cortex-r4f.md: Likewise.
11110 * config/csky/csky.c: Likewise.
11111 * config/csky/csky.h: Likewise.
11112 * config/darwin-f.c: Likewise.
11113 * config/epiphany/epiphany.md: Likewise.
11114 * config/i386/i386.c: Likewise.
11115 * config/i386/sol2.h: Likewise.
11116 * config/m68k/m68k.c: Likewise.
11117 * config/mcore/mcore.h: Likewise.
11118 * config/microblaze/microblaze.md: Likewise.
11119 * config/mips/20kc.md: Likewise.
11120 * config/mips/sb1.md: Likewise.
11121 * config/nds32/nds32.c: Likewise.
11122 * config/nds32/predicates.md: Likewise.
11123 * config/pa/pa.c: Likewise.
11124 * config/rs6000/e300c2c3.md: Likewise.
11125 * config/rs6000/rs6000.c: Likewise.
11126 * config/s390/s390.h: Likewise.
11127 * config/sh/sh.c: Likewise.
11128 * config/sh/sh.md: Likewise.
11129 * config/spu/vmx2spu.h: Likewise.
11130 * cprop.c: Likewise.
11131 * dbxout.c: Likewise.
11132 * df-scan.c: Likewise.
11133 * doc/cfg.texi: Likewise.
11134 * doc/extend.texi: Likewise.
11135 * doc/fragments.texi: Likewise.
11136 * doc/gty.texi: Likewise.
11137 * doc/invoke.texi: Likewise.
11138 * doc/lto.texi: Likewise.
11139 * doc/md.texi: Likewise.
11140 * doc/objc.texi: Likewise.
11141 * doc/rtl.texi: Likewise.
11142 * doc/tm.texi: Likewise.
11143 * dse.c: Likewise.
11144 * emit-rtl.c: Likewise.
11145 * emit-rtl.h: Likewise.
11146 * except.c: Likewise.
11147 * expmed.c: Likewise.
11148 * expr.c: Likewise.
11149 * fold-const.c: Likewise.
11150 * genautomata.c: Likewise.
11151 * gimple-fold.c: Likewise.
11152 * hard-reg-set.h: Likewise.
11153 * ifcvt.c: Likewise.
11154 * ipa-comdats.c: Likewise.
11155 * ipa-cp.c: Likewise.
11156 * ipa-devirt.c: Likewise.
11157 * ipa-fnsummary.c: Likewise.
11158 * ipa-icf.c: Likewise.
11159 * ipa-inline-transform.c: Likewise.
11160 * ipa-inline.c: Likewise.
11161 * ipa-polymorphic-call.c: Likewise.
11162 * ipa-profile.c: Likewise.
11163 * ipa-prop.c: Likewise.
11164 * ipa-pure-const.c: Likewise.
11165 * ipa-reference.c: Likewise.
11166 * ipa-split.c: Likewise.
11167 * ipa-visibility.c: Likewise.
11168 * ipa.c: Likewise.
11169 * ira-build.c: Likewise.
11170 * ira-color.c: Likewise.
11171 * ira-conflicts.c: Likewise.
11172 * ira-costs.c: Likewise.
11173 * ira-int.h: Likewise.
11174 * ira-lives.c: Likewise.
11175 * ira.c: Likewise.
11176 * ira.h: Likewise.
11177 * loop-invariant.c: Likewise.
11178 * loop-unroll.c: Likewise.
11179 * lower-subreg.c: Likewise.
11180 * lra-assigns.c: Likewise.
11181 * lra-constraints.c: Likewise.
11182 * lra-eliminations.c: Likewise.
11183 * lra-lives.c: Likewise.
11184 * lra-remat.c: Likewise.
11185 * lra-spills.c: Likewise.
11186 * lra.c: Likewise.
11187 * lto-cgraph.c: Likewise.
11188 * lto-streamer-out.c: Likewise.
11189 * postreload-gcse.c: Likewise.
11190 * predict.c: Likewise.
11191 * profile-count.h: Likewise.
11192 * profile.c: Likewise.
11193 * recog.c: Likewise.
11194 * ree.c: Likewise.
11195 * reload.c: Likewise.
11196 * reload1.c: Likewise.
11197 * reorg.c: Likewise.
11198 * resource.c: Likewise.
11199 * rtl.def: Likewise.
11200 * rtl.h: Likewise.
11201 * rtlanal.c: Likewise.
11202 * sched-deps.c: Likewise.
11203 * sched-ebb.c: Likewise.
11204 * sched-rgn.c: Likewise.
11205 * sel-sched-ir.c: Likewise.
11206 * sel-sched.c: Likewise.
11207 * shrink-wrap.c: Likewise.
11208 * simplify-rtx.c: Likewise.
11209 * symtab.c: Likewise.
11210 * target.def: Likewise.
11211 * toplev.c: Likewise.
11212 * tree-call-cdce.c: Likewise.
11213 * tree-cfg.c: Likewise.
11214 * tree-complex.c: Likewise.
11215 * tree-core.h: Likewise.
11216 * tree-eh.c: Likewise.
11217 * tree-inline.c: Likewise.
11218 * tree-loop-distribution.c: Likewise.
11219 * tree-nrv.c: Likewise.
11220 * tree-profile.c: Likewise.
11221 * tree-sra.c: Likewise.
11222 * tree-ssa-alias.c: Likewise.
11223 * tree-ssa-dce.c: Likewise.
11224 * tree-ssa-dom.c: Likewise.
11225 * tree-ssa-forwprop.c: Likewise.
11226 * tree-ssa-loop-im.c: Likewise.
11227 * tree-ssa-loop-ivcanon.c: Likewise.
11228 * tree-ssa-loop-ivopts.c: Likewise.
11229 * tree-ssa-loop-niter.c: Likewise.
11230 * tree-ssa-phionlycprop.c: Likewise.
11231 * tree-ssa-phiopt.c: Likewise.
11232 * tree-ssa-propagate.c: Likewise.
11233 * tree-ssa-threadedge.c: Likewise.
11234 * tree-ssa-threadupdate.c: Likewise.
11235 * tree-ssa-uninit.c: Likewise.
11236 * tree-ssanames.c: Likewise.
11237 * tree-streamer-out.c: Likewise.
11238 * tree.c: Likewise.
11239 * tree.h: Likewise.
11240 * vr-values.c: Likewise.
11241
11242 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
11243
11244 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
11245 (ix86_split_xorsign): Ditto.
11246 * config/i386/i386.c (ix86_expand_xorsign): New function.
11247 (ix86_split_xorsign): Ditto.
11248 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
11249 (xorsign<mode>3): New expander.
11250 (xorsign<mode>3_1): New insn_and_split pattern.
11251 * config/i386/sse.md (xorsign<mode>3): New expander.
11252
11253 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11254
11255 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
11256 (*tablejump_sp64): Likewise.
11257 (*tablejump<P:mode>): ...this.
11258 (*call_address_sp32): Merge into...
11259 (*call_address_sp64): Likewise.
11260 (*call_address<P:mode>): ...this.
11261 (*call_symbolic_sp32): Merge into...
11262 (*call_symbolic_sp64): Likewise.
11263 (*call_symbolic<P:mode>): ...this.
11264 (call_value): Remove constraint and add predicate.
11265 (*call_value_address_sp32): Merge into...
11266 (*call_value_address_sp64): Likewise.
11267 (*call_value_address<P:mode>): ...this.
11268 (*call_value_symbolic_sp32): Merge into...
11269 (*call_value_symbolic_sp64): Likewise.
11270 (*call_value_symbolic<P:mode>): ...this.
11271 (*sibcall_symbolic_sp32): Merge into...
11272 (*sibcall_symbolic_sp64): Likewise.
11273 (*sibcall_symbolic<P:mode>): ...this.
11274 (sibcall_value): Remove constraint and add predicate.
11275 (*sibcall_value_symbolic_sp32): Merge into...
11276 (*sibcall_value_symbolic_sp64): Likewise.
11277 (*sibcall_value_symbolic<P:mode>): ...this.
11278 (window_save): Minor tweak.
11279 (*branch_sp32): Merge into...
11280 (*branch_sp64): Likewise.
11281 (*branch<P:mode>): ...this.
11282
11283 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11284 James Clarke <jrtc27@jrtc27.com>
11285
11286 PR target/84010
11287 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
11288 consistently in TLS address generation and adjust code to the renaming
11289 of patterns. Mark calls to __tls_get_addr as const.
11290 * config/sparc/sparc.md (tgd_hi22): Turn into...
11291 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
11292 (tgd_lo10): Turn into...
11293 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
11294 (tgd_add32): Merge into...
11295 (tgd_add64): Likewise.
11296 (tgd_add<P:mode>): ...this and use Pmode throughout.
11297 (tldm_hi22): Turn into...
11298 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
11299 (tldm_lo10): Turn into...
11300 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
11301 (tldm_add32): Merge into...
11302 (tldm_add64): Likewise.
11303 (tldm_add<P:mode>): ...this and use Pmode throughout.
11304 (tldm_call32): Merge into...
11305 (tldm_call64): Likewise.
11306 (tldm_call<P:mode>): ...this and use Pmode throughout.
11307 (tldo_hix22): Turn into...
11308 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
11309 (tldo_lox10): Turn into...
11310 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
11311 (tldo_add32): Merge into...
11312 (tldo_add64): Likewise.
11313 (tldo_add<P:mode>): ...this and use Pmode throughout.
11314 (tie_hi22): Turn into...
11315 (tie_hi22<P:mode>): ...this and use Pmode throughout.
11316 (tie_lo10): Turn into...
11317 (tie_lo10<P:mode>): ...this and use Pmode throughout.
11318 (tie_ld64): Use DImode throughout.
11319 (tie_add32): Merge into...
11320 (tie_add64): Likewise.
11321 (tie_add<P:mode>): ...this and use Pmode throughout.
11322 (tle_hix22_sp32): Merge into...
11323 (tle_hix22_sp64): Likewise.
11324 (tle_hix22<P:mode>): ...this and use Pmode throughout.
11325 (tle_lox22_sp32): Merge into...
11326 (tle_lox22_sp64): Likewise.
11327 (tle_lox22<P:mode>): ...this and use Pmode throughout.
11328 (*tldo_ldub_sp32): Merge into...
11329 (*tldo_ldub_sp64): Likewise.
11330 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
11331 (*tldo_ldub1_sp32): Merge into...
11332 (*tldo_ldub1_sp64): Likewise.
11333 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
11334 (*tldo_ldub2_sp32): Merge into...
11335 (*tldo_ldub2_sp64): Likewise.
11336 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
11337 (*tldo_ldsb1_sp32): Merge into...
11338 (*tldo_ldsb1_sp64): Likewise.
11339 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
11340 (*tldo_ldsb2_sp32): Merge into...
11341 (*tldo_ldsb2_sp64): Likewise.
11342 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
11343 (*tldo_ldub3_sp64): Use DImode throughout.
11344 (*tldo_ldsb3_sp64): Likewise.
11345 (*tldo_lduh_sp32): Merge into...
11346 (*tldo_lduh_sp64): Likewise.
11347 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
11348 (*tldo_lduh1_sp32): Merge into...
11349 (*tldo_lduh1_sp64): Likewise.
11350 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
11351 (*tldo_ldsh1_sp32): Merge into...
11352 (*tldo_ldsh1_sp64): Likewise.
11353 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
11354 (*tldo_lduh2_sp64): Use DImode throughout.
11355 (*tldo_ldsh2_sp64): Likewise.
11356 (*tldo_lduw_sp32): Merge into...
11357 (*tldo_lduw_sp64): Likewise.
11358 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
11359 (*tldo_lduw1_sp64): Use DImode throughout.
11360 (*tldo_ldsw1_sp64): Likewise.
11361 (*tldo_ldx_sp64): Likewise.
11362 (*tldo_stb_sp32): Merge into...
11363 (*tldo_stb_sp64): Likewise.
11364 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
11365 (*tldo_sth_sp32): Merge into...
11366 (*tldo_sth_sp64): Likewise.
11367 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
11368 (*tldo_stw_sp32): Merge into...
11369 (*tldo_stw_sp64): Likewise.
11370 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
11371 (*tldo_stx_sp64): Use DImode throughout.
11372
11373 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11374
11375 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
11376 check configure option to set BTI and Return Address Signing.
11377 * configure.ac: Add --enable-standard-branch-protection and
11378 --disable-standard-branch-protection.
11379 * configure: Regenerated.
11380 * doc/install.texi: Document the same.
11381
11382 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11383 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11384
11385 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
11386 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
11387 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
11388 if bti is enabled.
11389 * config/aarch64/aarch64-bti-insert.c: New file.
11390 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
11391 pass.
11392 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
11393 new bti pass.
11394 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
11395 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
11396 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
11397 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
11398
11399 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11400
11401 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
11402 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
11403 Disable bti for -mbranch-protection=none.
11404 (aarch64_handle_standard_branch_protection): Enable bti for
11405 -mbranch-protection=standard.
11406 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
11407 -mbranch-protection.
11408 (aarch64_bti_enabled): Check if bti is enabled.
11409 * config/aarch64/aarch64.opt: Declare target variable.
11410 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
11411
11412 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11413
11414 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
11415 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
11416 (aarch64_expand_epilogue): Likewise.
11417 (aarch64_output_mi_thunk): Likewise
11418 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
11419 TAILCALL_ADDR_REGS to x16 and x17.
11420 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
11421
11422 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11423
11424 * config/aarch64/aarch64-option-extensions.def: Define
11425 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
11426 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
11427 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
11428 (AARCH64_FL_PREDRES): New.
11429 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
11430 AARCH64_FL_PREDRES by default.
11431 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
11432
11433 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11434
11435 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
11436 ARMv8.5-A.
11437 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
11438 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
11439 * doc/invoke.texi: Document ARMv8.5-A.
11440
11441 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11442
11443 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
11444 (xorsign<mode>3): Likewise.
11445
11446 2019-01-09 Jelinek <jakub@redhat.com>
11447
11448 PR middle-end/88758
11449 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
11450 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
11451
11452 PR rtl-optimization/88331
11453 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
11454 not currently_expanding_to_rtl.
11455
11456 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11457
11458 * doc/invoke.texi (-Os): Remove trailing spaces.
11459 (-finline-functions): Remove reference to -O2.
11460
11461 2019-01-08 Jakub Jelinek <jakub@redhat.com>
11462
11463 PR rtl-optimization/79593
11464 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
11465
11466 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
11467 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
11468
11469 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
11470
11471 PR bootstrap/88721
11472 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
11473 to -1 on entry.
11474
11475 PR debug/88723
11476 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
11477 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
11478
11479 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
11480
11481 PR target/88717
11482 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
11483 ix86_avx_u128_mode_entry.
11484
11485 2019-01-08 Martin Liska <mliska@suse.cz>
11486
11487 PR tree-optimization/88753
11488 * tree-switch-conversion.c (switch_conversion::build_one_array):
11489 Come up with local variable constructor. Convert first to
11490 type of constructor values.
11491
11492 2019-01-08 Richard Biener <rguenther@suse.de>
11493
11494 PR tree-optimization/86554
11495 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
11496 rpo_avail): Move earlier.
11497 (visit_nary_op): When value-numbering to expressions
11498 with different overflow behavior make sure there's an
11499 available expression on the path.
11500
11501 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
11502
11503 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
11504 aarch64_parse_branch_protection,
11505 struct aarch64_branch_protect_type,
11506 aarch64_handle_no_branch_protection,
11507 aarch64_handle_standard_branch_protection,
11508 aarch64_validate_mbranch_protection,
11509 aarch64_handle_pac_ret_protection,
11510 aarch64_handle_attr_branch_protection,
11511 accepted_branch_protection_string,
11512 aarch64_pac_ret_subtypes,
11513 aarch64_branch_protect_types,
11514 aarch64_handle_pac_ret_leaf): Define.
11515 (aarch64_override_options_after_change_1, aarch64_override_options):
11516 Add check for accepted_branch_protection_string.
11517 (aarch64_option_save): Save accepted_branch_protection_string.
11518 (aarch64_option_restore): Save accepted_branch_protection_string.
11519 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
11520 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
11521 msign-return-address.
11522 * doc/invoke.texi: Add mbranch-protection.
11523
11524 2019-01-08 Alan Modra <amodra@gmail.com>
11525
11526 PR target/88614
11527 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
11528 Delete "unknownp" parameter. Adjust callers. Handle
11529 CONST_INT, PLUS, MINUS, and MULT.
11530 (attr_value_aligned): Renamed from or_attr_value.
11531 (min_attr_value): Return INT_MIN for unhandled rtl case..
11532 (min_fn): ..and translate to INT_MAX here.
11533 (write_length_unit_log): Modify to cope without "unknown".
11534 (write_attr_value): Handle IF_THEN_ELSE.
11535
11536 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11537
11538 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
11539 optimization for masked stores.
11540
11541 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11542
11543 PR middle-end/88567
11544 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
11545 output vector directly to duplicate_and_interleave instead of
11546 going through a temporary. Postpone insertion of ctor_seq to
11547 the end of the loop.
11548
11549 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
11550
11551 PR target/86891
11552 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
11553 unsigned_p. Handle signed and unsigned overflow correction as
11554 required.
11555 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
11556 prototype.
11557 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
11558 for operand 2.
11559 (add<mode>3_compareV_imm): Make this callable for expanding.
11560 (subv<GPI:mode>4): Use register_operand for operand 1. Use
11561 aarch64_plus_operand for operand 2.
11562 (subv<GPI:mode>_insn): New insn pattern.
11563 (subv<GPI:mode>_imm): Likewise.
11564 (negv<GPI:mode>3): New expand pattern.
11565 (negv<GPI:mode>_insn): New insn pattern.
11566 (negv<GPI:mode>_cmp_only): Likewise.
11567 (cmpv<GPI:mode>_insn): Likewise.
11568 (subvti4): Use register_operand for operand 1. Update call to
11569 aarch64_expand_subvti.
11570 (usubvti4): Likewise.
11571 (negvti3): New expand pattern.
11572 (negdi_carryout): New insn pattern.
11573 (negvdi_carryinV): New insn pattern.
11574 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
11575 version the named version.
11576 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
11577 operands.
11578 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
11579 patterns.
11580 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
11581 patterns.
11582 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
11583 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
11584 (sub<mode>3_carryinCV): Delete.
11585 (sub<GPI:mode>3_carryinV): New expand pattern.
11586 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
11587
11588 2019-01-07 Richard Biener <rguenther@suse.de>
11589
11590 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
11591 of tree_operand_hash.
11592
11593 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11594
11595 PR tree-optimization/88598
11596 * tree.h (single_nonzero_element): Declare.
11597 * tree.c (single_nonzero_element): New function.
11598 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
11599 if I is the only nonzero element of CST.
11600
11601 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11602
11603 PR tree-optimization/88598
11604 * tree.h (initializer_each_zero_or_onep): Declare.
11605 * tree.c (initializer_each_zero_or_onep): New function.
11606 (signed_or_unsigned_type_for): Handle float types too.
11607 (unsigned_type_for, signed_type_for): Update comments accordingly.
11608 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
11609 x & { 0 or -1, 0 or -1, ... }.
11610
11611 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
11612
11613 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
11614 with x86_64-pc-linux-gnu.
11615
11616 2019-01-07 Tom de Vries <tdevries@suse.de>
11617
11618 PR target/85486
11619 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
11620 function.
11621 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
11622 routines.
11623
11624 2019-01-07 Jakub Jelinek <jakub@redhat.com>
11625
11626 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
11627 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
11628 TARGET_AVX512F as condition.
11629
11630 PR debug/88723
11631 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
11632 const_not_ok_for_debug_p target hook.
11633 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
11634 on UNSPEC and subexpressions thereof if all subexpressions of the
11635 UNSPEC are CONSTANT_P.
11636
11637 PR tree-optimization/88676
11638 * tree-ssa-phiopt.c (two_value_replacement): New function.
11639 (tree_ssa_phiopt_worker): Call it.
11640
11641 PR sanitizer/88619
11642 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
11643 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
11644
11645 PR c++/85052
11646 * tree-vect-generic.c: Include insn-config.h and recog.h.
11647 (expand_vector_piecewise): Add defaulted ret_type argument,
11648 if non-NULL, use that in preference to type for the result type.
11649 (expand_vector_parallel): Formatting fix.
11650 (do_vec_conversion, do_vec_narrowing_conversion,
11651 expand_vector_conversion): New functions.
11652 (expand_vector_operations_1): Call expand_vector_conversion
11653 for VEC_CONVERT ifn calls.
11654 * internal-fn.def (VEC_CONVERT): New internal function.
11655 * internal-fn.c (expand_VEC_CONVERT): New function.
11656 * fold-const-call.c (fold_const_vec_convert): New function.
11657 (fold_const_call): Use it for CFN_VEC_CONVERT.
11658 * doc/extend.texi (__builtin_convertvector): Document.
11659
11660 2019-01-07 Tom de Vries <tdevries@suse.de>
11661
11662 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
11663 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
11664 vector_red_partition, vector_red_sym): New global variables.
11665 (nvptx_option_override): Initialize vector_red_sym.
11666 (nvptx_declare_function_name): Restore red_partition register.
11667 (nvptx_file_end): Emit code to declare the vector reduction variables.
11668 (nvptx_output_red_partition): New function.
11669 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
11670 large vector reductions.
11671 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
11672 (nvptx_init_builtins): Add VECTOR_ADDR.
11673 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
11674 Handle nvptx_expand_shared_addr.
11675 (nvptx_get_shared_red_addr): Add vector argument and handle large
11676 vectors.
11677 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
11678 large vectors.
11679 (nvptx_goacc_reduction_init): Likewise.
11680 (nvptx_goacc_reduction_fini): Likewise.
11681 (nvptx_goacc_reduction_teardown): Likewise.
11682 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
11683 init,fini,teardown}.
11684 (nvptx_init_axis_predicate): Initialize vector_red_partition.
11685 (nvptx_set_current_function): Init vector_red_partition.
11686 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
11687 (nvptx_red_partition): New insn.
11688 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
11689
11690 2019-01-07 Tom de Vries <tdevries@suse.de>
11691
11692 PR target/85381
11693 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
11694 empty loops.
11695
11696 2019-01-07 Tom de Vries <tdevries@suse.de>
11697
11698 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
11699 (nvptx_option_override): Init oacc_bcast_partition.
11700 (nvptx_init_oacc_workers): New function.
11701 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
11702 (nvptx_needs_shared_bcast): New function.
11703 (nvptx_find_par): Generalize to enable vectors to use shared-memory
11704 to propagate state.
11705 (nvptx_shared_propagate): Initialize vector bcast partition and
11706 synchronization state.
11707 (nvptx_single): Generalize to enable vectors to use shared-memory
11708 to propagate state.
11709 (nvptx_process_pars): Likewise.
11710 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
11711 * config/nvptx/nvptx.h (struct machine_function): Add
11712 bcast_partition and sync_bar members.
11713
11714 2019-01-07 Tom de Vries <tdevries@suse.de>
11715
11716 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
11717 (nvptx_apply_dim_limits): New function.
11718 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
11719 PTX_WARP_SIZE.
11720
11721 2019-01-07 Tom de Vries <tdevries@suse.de>
11722
11723 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
11724 as late as possible.
11725
11726 2019-01-07 Tom de Vries <tdevries@suse.de>
11727
11728 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
11729 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
11730 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
11731 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
11732 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
11733
11734 2019-01-07 Tom de Vries <tdevries@suse.de>
11735
11736 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
11737
11738 2019-01-07 Tom de Vries <tdevries@suse.de>
11739
11740 * omp-offload.c (oacc_get_min_dim): New function.
11741 * omp-offload.h (oacc_get_min_dim): Declare.
11742
11743 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
11744
11745 PR target/88521
11746 * config/i386/i386.c (function_value_ms_64): Return small sturct in
11747 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
11748
11749 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11750
11751 PR tree-opt/86020
11752 Revert:
11753 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11754
11755 * ipa-inline.c (edge_badness): Use inlined_time instead of
11756 inline_summaries->get.
11757
11758 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11759
11760 * opts.c (enable_fdo_optimizations): Enable
11761 version-loops-for-strides, loop-interchange, unrol-and-jam
11762 and tree-loop-distribution.
11763 * invoke.texi: Document newly enabled options.
11764
11765 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11766
11767 * doc/invoke.texi (max-inline-insns-small): New parameters.
11768 * ipa-inline.c (want_early_inline_function_p): simplify.
11769 (want_inline_small_function_p): Fix pasto from previous patch;
11770 use max-inline-insns-small bound.
11771 * params.def (max-inline-insns-small): New param.
11772 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
11773 variables correctly.
11774
11775 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11776
11777 * doc/invoke.texi: Document max-inline-insns-size,
11778 uninlined-function-insns, uninlined-function-time,
11779 uninlined-thunk-insns and uninlined-thunk-time.
11780 * params.def: Add max-inline-insns-size,
11781 uninlined-function-insns, uninlined-function-time,
11782 uninlined-thunk-insns and uninlined-thunk-time.
11783 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
11784 new parameters.
11785 * ipa-inline.c (can_inline_edge_by_limits_p,
11786 want_inline_small_function_p): Use new parameters.
11787
11788 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11789
11790 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
11791
11792 2019-01-05 Jakub Jelinek <jakub@redhat.com>
11793
11794 PR middle-end/82564
11795 PR target/88620
11796 * expr.c (expand_assignment): For calls returning VLA structures
11797 if to_rtx is not a MEM, force it into a stack temporary.
11798
11799 PR debug/88635
11800 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
11801 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
11802 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
11803 subexpressions of both operands.
11804 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
11805 subrtxes are CONSTANT_P.
11806 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
11807 2018-11-09 changes.
11808
11809 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
11810
11811 * params.def (hot-bb-count-ws-permille): Set to 990.
11812
11813 2019-01-04 Martin Sebor <msebor@redhat.com>
11814
11815 PR c/88546
11816 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
11817 leaf.
11818
11819 2019-01-04 Martin Sebor <msebor@redhat.com>
11820
11821 PR c/88363
11822 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
11823
11824 2019-01-04 Jakub Jelinek <jakub@redhat.com>
11825
11826 * gdbinit.in: Turn off pagination for the skip commands, restore
11827 it to previous state afterwards.
11828
11829 2019-01-04 Jakub Jelinek <jakub@redhat.com>
11830
11831 PR target/88594
11832 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
11833 of GET_MODE (opN) as modes of the libcall arguments.
11834
11835 2019-01-04 Jan Beulich <jbeulich@suse.com>
11836
11837 * config/i386/sse.md
11838 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
11839 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
11840 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
11841 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
11842 avx512f_vmcmp<mode>3<round_saeonly_name>,
11843 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
11844 avx512f_maskcmp<mode>3,
11845 <avx512>_cvt<ssemodesuffix>2mask<mode>,
11846 <avx512>_cvt<ssemodesuffix>2mask<mode>,
11847 *<avx512>_cvtmask2<ssemodesuffix><mode>,
11848 *<avx512>_cvtmask2<ssemodesuffix><mode>,
11849 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
11850 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
11851 <avx512>_gt<mode>3<mask_scalar_merge_name>,
11852 <avx512>_gt<mode>3<mask_scalar_merge_name>,
11853 <avx512>_testm<mode>3<mask_scalar_merge_name>,
11854 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
11855 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
11856 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
11857 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
11858 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
11859 avx512cd_maskb_vec_dup<mode>,
11860 avx512cd_maskw_vec_dup<mode>,
11861 avx512dq_fpclass<mode><mask_scalar_merge_name>,
11862 avx512dq_vmfpclass<mode>,
11863 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
11864 instead of =Yk.
11865
11866 2019-01-03 Martin Sebor <msebor@redhat.com>
11867
11868 PR tree-optimization/88659
11869 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
11870
11871 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
11872
11873 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
11874 unaligned vsx and avoid lxvd2x/stxvd2x.
11875 (gen_lvx_v4si_move): New function.
11876
11877 2019-01-03 Tom de Vries <tdevries@suse.de>
11878
11879 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
11880 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
11881 function.
11882 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
11883
11884 2019-01-03 Tom de Vries <tdevries@suse.de>
11885
11886 * config/nvptx/nvptx.c (struct offload_attrs): New.
11887 (populate_offload_attrs): New function. Factor mask extraction out of
11888 nvptx_reorg. Add extraction of dimensions.
11889 (nvptx_reorg): Use populate_offload_attrs.
11890
11891 2019-01-03 Tom de Vries <tdevries@suse.de>
11892
11893 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
11894 cases for oacc_min_dims_p and routine_p. Add asserts for
11895 oacc_default_dims_p and offload_region_p.
11896
11897 2019-01-03 Tom de Vries <tdevries@suse.de>
11898
11899 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
11900 factored out of ...
11901 (nvptx_goacc_validate_dims): ... here.
11902
11903 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
11904
11905 PR tree-optimization/85574
11906 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
11907 structure.
11908 (struct ssa_equip_hash_traits): Declare.
11909 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
11910
11911 2019-01-03 Jakub Jelinek <jakub@redhat.com>
11912
11913 PR debug/88644
11914 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
11915 change it to qualified_type.
11916
11917 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
11918
11919 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
11920 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
11921
11922 2019-01-02 Martin Sebor <msebor@redhat.com>
11923 Jeff Law <law@redhat.com>
11924
11925 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
11926 (get_range_strlen_tree): Update appropriately.
11927 (get_range_strlen)
11928 * gimple-fold.h (get_range_strlen): Drop unused last argument.
11929
11930 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
11931 rather than set_range_info.
11932 * tree-ssa-strlen.c (set_strlen_range): Extracted from
11933 maybe_set_strlen_range. Handle potentially boundary crossing
11934 cases more conservatively.
11935 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
11936 Call set_strlen_range.
11937 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
11938
11939 PR middle-end/88663
11940 * gimple-fold.c (get_range_strlen): Update prototype to no longer
11941 need the flexp argument.
11942 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
11943 from calls to get_range_strlen. Update comments. Just update
11944 VAL for an unterminated const char array and let the reset of the
11945 code handle it normally. No longer try to set *flexp. Adjust
11946 return value.
11947 (get_range_strlen): Update for the new get_range_strlen API.
11948 (get_maxval_strlen): Similarly.
11949 (gimple_fold_builtin_strlen): Handle update meaning of return value
11950 from get_range_strlen.
11951 * gimple-ssa-sprintf.c (get_string_length): Update for the new
11952 get_range_strlen API.
11953
11954 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
11955
11956 PR lto/88130
11957 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
11958 false at WPA time when body was removed.
11959
11960 2019-01-02 Martin Liska <mliska@suse.cz>
11961
11962 PR tree-optimization/88650
11963 * predict.c (set_even_probabilities): Calculate probability
11964 remainer only when really used.
11965
11966 2019-01-02 Richard Biener <rguenther@suse.de>
11967
11968 PR middle-end/88651
11969 * tree-data-ref.c (analyze_subscript_affine_affine): Use
11970 widest_ints when mangling max_stmt_execution results.
11971
11972 2019-01-02 Richard Biener <rguenther@suse.de>
11973
11974 PR tree-optimization/88621
11975 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
11976 bitfields when canoncalizing.
11977
11978 2019-01-02 Richard Biener <rguenther@suse.de>
11979
11980 PR target/87545
11981 * config/i386/x86-tune-costs.h (intel_cost): Adjust
11982 cost of cheap SSE instruction.
11983
11984 2019-01-02 Richard Biener <rguenther@suse.de>
11985
11986 PR ipa/85574
11987 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
11988 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
11989 function.
11990 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
11991 set after UIDs before splitting them.
11992
11993 2019-01-01 Martin Sebor <msebor@redhat.com>
11994 Jeff Law <law@redhat.com>
11995
11996 * gimple-fold.c (get_range_strlen_tree): Record if the computed
11997 length is optimistic. If it is, then arrange to compute the
11998 conservative length as well.
11999
12000 * gimple-fold.h (get_range_strlen): Update prototype.
12001 * builtins.c (check_access): Update call to get_range_strlen to use
12002 c_strlen_data pointer. Change various variable accesses to instead
12003 pull data from the c_strlen_data structure.
12004 (check_strncat_sizes, expand_builtin_strncat): Likewise.
12005 * calls.c (maybe_warn_nonstring_arg): Likewise.
12006 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
12007 minimum length if maximum lengh is unknown.
12008 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
12009 that used c_strlen, it's no longer needed. Restructure slightly.
12010 (format_string): Set unlikely range appropriately.
12011 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
12012 formatting issues.
12013 (get_range_strlen): Accept c_strlen_data pointer for external
12014 call sites as well. Pass through to call to internal get_range_strlen.
12015 Adjust minlen, maxlen and maxbound as needed.
12016 (get_maxval_strlen): Update comments.
12017 (gimple_fold_builtin_strlen): Update call to get_range_strlen
12018 to use c_strlen_data pointer. Change variable accesses to instead
12019 use c_strlen_data data members.
12020
12021 * gimple-fold.c (get_range_strlen): Update prototype.
12022 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
12023 local variables. Use pdata to return information to caller.
12024 Update calls to get_range_strlen. Update pdata->maxbound.
12025 (get_range_strlen -- static version): Similarly.
12026 (get_range_strlen -- extern version): Update for internal
12027 get_range_strlen API change. Convert to external data format.
12028 (get_maxval_strlen): Similarly.
12029
12030 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
12031
12032 * coverage.c (get_coverage_counts): Use current_function_decl.
12033 * profile.c (read_thunk_profile): New function.
12034 (branch_prob): Add THUNK parameter.
12035 * tree-profile.c (tree_profiling): Handle thunks.
12036 * value-prof.c (init_node_map): Handle thunks.
12037 * value-prof.h (branch_prob): Upate prototype.
12038 (read_thunk_profile): Declare.
12039
12040 2019-01-01 Jakub Jelinek <jakub@redhat.com>
12041
12042 Update copyright years.
12043
12044 * gcc.c (process_command): Update copyright notice dates.
12045 * gcov-dump.c (print_version): Ditto.
12046 * gcov.c (print_version): Ditto.
12047 * gcov-tool.c (print_version): Ditto.
12048 * gengtype.c (create_file): Ditto.
12049 * doc/cpp.texi: Bump @copying's copyright year.
12050 * doc/cppinternals.texi: Ditto.
12051 * doc/gcc.texi: Ditto.
12052 * doc/gccint.texi: Ditto.
12053 * doc/gcov.texi: Ditto.
12054 * doc/install.texi: Ditto.
12055 * doc/invoke.texi: Ditto.
12056 \f
12057 Copyright (C) 2019 Free Software Foundation, Inc.
12058
12059 Copying and distribution of this file, with or without modification,
12060 are permitted in any medium without royalty provided the copyright
12061 notice and this notice are preserved.