]> git.ipfire.org Git - thirdparty/gcc.git/blob - gcc/ChangeLog
[AArch64] Factor out ptrue predicate creation
[thirdparty/gcc.git] / gcc / ChangeLog
1 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
2
3 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
4 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
5 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
6 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
7 (aarch64_expand_sve_vec_cmp_int): Use it.
8 (aarch64_expand_sve_vec_cmp_float): Likewise.
9 * config/aarch64/aarch64-sve.md: Likewise throughout.
10
11 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
12
13 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
14 (*cond_<optab><mode>_z): Fold into...
15 (*cond_<optab><mode>_any): ...here. Also handle cases in which
16 operand 4 can be tied to operand 0 (either inherently or via RA).
17
18 2019-06-18 Richard Biener <rguenther@suse.de>
19
20 PR debug/90900
21 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
22 as if optimized away.
23
24 2019-06-18 Tom de Vries <tdevries@suse.de>
25
26 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
27 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
28 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"): Rename to ...
29 (define_insn "@set_softstack_<mode>"): ... this.
30 (define_insn "omp_simt_enter_<mode>"): Rename to ...
31 (define_insn "@omp_simt_enter_<mode>"): ... this.
32 (define_insn "omp_simt_exit_<mode>"): Rename to ...
33 (define_insn "@omp_simt_exit_<mode>"): ... this.
34
35 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
36
37 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
38 vf parameter. Restore the previous iv step of nscalars_step,
39 but give it iv_type rather than compare_type. Tweak code order
40 to match the comments.
41 (vect_set_loop_condition_masked): Update accordingly.
42 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
43 for iv_precision. Tweak comment formatting.
44
45 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
46
47 * config/darwin.c: Strip trailing whitespace.
48
49 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
50
51 * config/darwin.c (darwin_emit_unwind_label): New default to false.
52 (darwin_override_options): Set darwin_emit_unwind_label as needed.
53
54 2019-06-18 Martin Jambor <mjambor@suse.cz>
55
56 PR ipa/90889
57 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
58 caller does not have flag_ipa_cp set.
59
60 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
61
62 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
63 from "*fold_left_plus_<mode>", updated operands order.
64 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
65 * internal-fn.c (mask_fold_left_direct): New define.
66 (expand_mask_fold_left_optab_fn): Likewise.
67 (direct_mask_fold_left_optab_supported_p): Likewise.
68 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
69 * optabs.def (mask_fold_left_plus_optab): New optab.
70 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
71 masked internal_fn for a reduction ifn.
72 (vectorize_fold_left_reduction): Add support for masking reductions.
73
74 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
75
76 PR middle-end/80791
77 * target.def (predict_doloop_p): New hook.
78 * targhooks.h (default_predict_doloop_p): New declaration.
79 * targhooks.c (default_predict_doloop_p): New function.
80 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
81 * doc/tm.texi: Regenerate.
82 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
83 (TARGET_PREDICT_DOLOOP_P): New macro.
84 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
85
86 2019-06-17 Jakub Jelinek <jakub@redhat.com>
87
88 * omp-low.c (struct omp_context): Add scan_inclusive field.
89 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
90 if inclusive scan.
91 (struct omplow_simd_context): Add lastlane member.
92 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
93 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
94 1 or 2 argument.
95 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
96 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
97 (lower_omp_scan): New function.
98 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
99 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
100 check 3rd argument if present rather than 2nd.
101 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
102 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
103 2-bit bitfield.
104 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
105 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
106 than 2nd.
107 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
108 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
109 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
110 init.
111 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
112 IFN_GOMP_SIMD_LANE argument.
113 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
114 encoded ->aux value.
115 * tree-vect-stmts.c: Include attribs.h.
116 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
117 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
118 functions.
119 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
120 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
121
122 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
123
124 PR target/62055
125 * config/i386/i386.md (*nabstf2_1): New insn pattern.
126 (*nabs<mode>2_1): Ditto.
127 (nabs sse-reg splitter): New splitter.
128 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
129
130 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
131
132 PR bootstrap/90873.
133 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
134 TMR index check.
135
136 2019-06-17 Tom de Vries <tdevries@suse.de>
137
138 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
139 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
140 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
141 ...
142 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
143 match_operand 0.
144 (define_insn "omp_simt_enter_insn"): Rename to ...
145 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
146 match_operand 0, 1 and 2, as well as the unspec_volatile result.
147 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
148 gen_omp_simt_enter_si.
149 (define_expand "omp_simt_exit"): New.
150 (define_insn "omp_simt_exit"): Rename to ...
151 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
152 match_operand 0.
153
154 2019-06-17 Matthew Green <mrg@eterna.com.au>
155 Maya Rashish <coypu@sdf.org>
156
157 * config.gcc (aarch64*-*-netbsd*): New target.
158 * config/aarch64/aarch64-netbsd.h: New file.
159 * config/aarch64/t-aarch64-netbsd: Likewise.
160
161 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
162
163 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
164 the access path from base to first VIEW_CONVERT_EXPR or
165 BIT_FIELD_REF.
166
167 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
168
169 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
170 access path on BIT_FIELD_REFs.
171
172 2019-06-17 Martin Liska <mliska@suse.cz>
173
174 PR ipa/90874
175 * ipa-utils.h (odr_type_p): Remove dead code.
176
177 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
178
179 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
180 alternative Solaris 11.4 format.
181 * configure: Regenerate.
182
183 2019-06-17 Tom de Vries <tdevries@suse.de>
184
185 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
186 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
187 match_operand 0.
188 (define_insn "call_value_insn"): Rename to ...
189 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
190 match_operand 0.
191 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
192 DI.
193
194 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
195
196 PR middle-end/64242
197 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
198 frame clobbers and schedule block.
199 (builtin_longjmp): Likewise.
200
201 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
202
203 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
204 describe how to perform MSPABI compliant 64-bit shift.
205 * config/msp430/msp430.md (ashldi3): New define_expand.
206 (ashrdi3): New define_expand.
207 (lshrdi3): New define_expand.
208
209 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
210
211 * doc/sourcebuild.texi: Document new effective target keyword
212 longlong64.
213
214 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
215
216 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
217 indirect_refs_may_alias_p): Revert accidental commits.
218
219 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
220 at the end of structures.
221
222 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
223
224 * config/darwin.c (machopic_indirect_call_target): Use renamed
225 darwin_picsymbol_stubs to decide on output.
226 (darwin_override_options): Handle darwin_picsymbol_stubs.
227 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
228 (LD64_VERSION): Revise default.
229 * config/darwin.opt: (mpic-symbol-stubs): New option.
230 (darwin_picsymbol_stubs): New variable.
231 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
232 rename to TARGET_MACHO_PICSYM_STUBS.
233 * config/i386/i386.c (output_pic_addr_const): Likewise.
234 * config/i386/i386.h Likewise.
235 * config/rs6000/darwin.h: Likewise.
236 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
237 darwin_picsymbol_stubs.
238
239 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
240
241 * config/darwin.opt (prebind, noprebind, seglinkedit,
242 noseglinkedit): Add RejectNegative.
243
244 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
245
246 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
247 in my previous patch.
248
249 2019-06-16 Tom de Vries <tdevries@suse.de>
250
251 PR tree-optimization/89376
252 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
253
254 2019-06-15 Maya Rashish <coypu@sdf.org>
255
256 * doc/invoke.texi (Spec Files): Update location of the
257 Fortran spec file.
258
259 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
260
261 * doc/extend.texi (Common Function Attributes): Clarify
262 no_sanitize. Fix grammar.
263
264 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
265
266 * tree-ssa-alias.c (alias_stats): Add
267 nonoverlapping_component_refs_p_may_alias,
268 nonoverlapping_component_refs_p_no_alias,
269 nonoverlapping_component_refs_of_decl_p_may_alias,
270 nonoverlapping_component_refs_of_decl_p_no_alias.
271 (dump_alias_stats): Dump them.
272 (nonoverlapping_component_refs_of_decl_p): Add stats.
273 (nonoverlapping_component_refs_p): Add stats; do not stop on first
274 ARRAY_REF.
275
276 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
277
278 * config/i386/i386.md (and<mode>3): Generate zero-extends for
279 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
280 only.
281 (*anddi3_doubleword): Split before reload. Merge with
282 anddi->zext pre-reload splitter.
283 (*andndi3_doubleword): Split before reload.
284 (*<code>di3_doubleword): Ditto.
285 (*one_cmpldi2_doubleword): Ditto.
286
287 2019-06-15 Jakub Jelinek <jakub@redhat.com>
288
289 PR middle-end/90779
290 * gimplify.c: Include omp-offload.h and context.h.
291 (gimplify_bind_expr): Add "omp declare target" attributes
292 to static block scope variables inside of target region or target
293 functions.
294
295 2019-06-15 Tom de Vries <tdevries@suse.de>
296
297 PR tree-optimization/90009
298 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
299 Return NULL if bb contains IFN_UNIQUE.
300
301 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
302
303 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
304 (un): New define_mode_attr.
305 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
306 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
307 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
308 merge into ...
309 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
310
311 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
312
313 * config/darwin.opt: Add RejectNegative where needed, reorder
314 and add minimal functional descriptions.
315
316 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
317
318 PR rtl-optimization/90765
319 * calls.c (update_stack_alignment_for_call): New function.
320 (expand_call): Call update_stack_alignment_for_call when
321 outgoing parameter is passed in the stack.
322 (emit_library_call_value_1): Likewise.
323 * function.c (locate_and_pad_parm): Don't update
324 stack_alignment_needed and preferred_stack_boundary.
325
326 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
327
328 PR target/90877
329 * config/i386/i386-features.c
330 (dimode_scalar_chain::compute_convert_gain): Replace
331 mmxsse_to_integer with sse_to_integer.
332 * config/i386/i386.c (ix86_register_move_cost): Verify that
333 moves between MMX and non-MMX units require secondary memory.
334 Correct costs of moves between SSE and integer units.
335 * config/i386/i386.h (processor_costs): Rename cost of moving
336 SSE register to integer to sse_to_integer. Rename cost of
337
338 2019-06-14 Matt Thomas <matt@3am-software.com>
339 Matthew Green <mrg@eterna.com.au>
340 Nick Hudson <skrll@netbsd.org>
341 Maya Rashish <coypu@sdf.org>
342 Richard Earnshaw <rearnsha@arm.com>
343
344 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
345 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
346 * config/arm/netbsd-eabi.h: New file.
347 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
348 redefining.
349 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
350 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
351 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
352 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
353
354 2019-06-14 Richard Biener <rguenther@suse.de>
355
356 * tree-loop-distribution.c (classify_partition): Return
357 whether a reduction appeared in all partitions and do not
358 stop builtin detection because of this.
359 (distribute_loop): Sort a non-builtin partition last if
360 there's a reduction in all partitions and make sure the
361 partition prevailing as last is not a builtin.
362
363 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
364
365 PR ipa/90401
366 * ipa-prop.c (add_to_agg_contents_list): New function.
367 (clobber_by_agg_contents_list_p): Likewise.
368 (extract_mem_content): Likewise.
369 (get_place_in_agg_contents_list): Delete.
370 (determine_known_aggregate_parts): Renamed from
371 determine_locally_known_aggregate_parts. New parameter
372 aa_walk_budget_p.
373
374 2019-06-13 Martin Sebor <msebor@redhat.com>
375
376 PR tree-optimization/90662
377 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
378 to the same type.
379
380 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
381
382 PR bootstrap/90873
383 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
384 dbase is not TARGET_MEM_REF.
385
386 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
387
388 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
389 Update all uses.
390 (and<mode>3): Use gen_extend_insn instead of indirect functions.
391 Do not generate DImode extends for 32bit targets.
392 (and->zext post-reload splitter): Use gen_extend_insn
393 instead of indirect functions.
394 (anddi->zext pre-reload splitter): New.
395 (*zext<mode>_doubleword_and): Remove.
396 (*zext<mode>_doubleword): Ditto.
397 (*zextsi_doubleword): Dittto.
398
399 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
400
401 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
402 Use gen_sub3_insn instead of indirect function.
403 (ix86_expand_ashl_const): Use gen_add2_insn instead of
404 indirect function.
405 (ix86_adjust_counter): Ditto.
406
407 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
408 Lijia He <helijia@linux.ibm.com>
409
410 PR tree-optimization/77820
411 * tree-ssa-threadedge.c
412 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
413 function.
414 (thread_across_edge): Add call to
415 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
416
417 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
418
419 * config/darwin-driver.c (validate_macosx_version_min): New.
420 (darwin_default_min_version): Cleanup and validate supplied version.
421 (darwin_driver_init): Likewise and push cleaned version into opts.
422
423 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
424
425 PR tree-optimization/90869
426 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
427 converts in MEM_REF referencing decl rather than view converts
428 from decl type to MEM_REF type.
429
430 2019-06-13 Richard Biener <rguenther@suse.de>
431
432 PR tree-optimization/90856
433 * tree-sra.c (build_ref_for_model): Only use
434 build_reconstructed_reference when address-spaces are the same.
435
436 2019-06-13 Jakub Jelinek <jakub@redhat.com>
437
438 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
439 wrap ei variable name in the declaration in ()s.
440 (nvptx_single): Actually use mode_label variable. Formatting fix.
441
442 2019-06-13 Richard Biener <rguenther@suse.de>
443
444 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
445 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
446 also return the condition stmt.
447 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
448 loop we can version and version that, reusing the loop version
449 created by if-conversion instead of versioning again.
450
451 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
452
453 * gimple-loop-versioning.cc (prune_loop_conditions): Use
454 may_contain_p.
455 * tree-vrp (value_range_base::may_contain_p): Call into
456 value_inside_range.
457 (value_inside_range): Make private inside value_range_base class.
458 Take min/max from *this.
459 (range_includes_p): Remove.
460 * tree-vrp.h (value_range_base): Add value_inside_range.
461 (range_includes_p): Remove.
462 (range_includes_zero_p): Call may_contain_p.
463 * vr-values.c (compare_range_with_value): Same.
464
465 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
466
467 * doc/extend.texi (ARC Function Attributes): Update info.
468
469 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
470
471 PR tree-optimization/89713
472 * doc/invoke.texi (-ffinite-loops): Document new option.
473 * common.opt (-ffinite-loops): New option.
474 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
475 IFN_GOACC_LOOP calls as necessary.
476 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
477 is finite.
478 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
479 IFN_GOACC_LOOP call is not used.
480 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
481
482 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
483
484 PR target/88838
485 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
486 compare_type is not with Pmode size, we will create an IV with
487 Pmode size with truncated use (i.e. converted to the correct type).
488 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
489 (vect_iv_limit_for_full_masking): New. Factored out of
490 vect_set_loop_condition_masked.
491 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
492 (vect_iv_limit_for_full_masking): Declare.
493
494 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
495
496 PR target/88834
497 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
498 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
499 (get_alias_ptr_type_for_ptr_address): Likewise.
500 (add_iv_candidate_for_use): Add scaled index candidate if useful.
501 * tree-ssa-address.c (preferred_mem_scale_factor): New.
502 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
503 allow_reg_index_p.
504
505 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
506
507 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
508
509 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
510
511 * common/config/pru/pru-common.c: New file.
512 * config.gcc: Add PRU target.
513 * config/pru/alu-zext.md: New file.
514 * config/pru/constraints.md: New file.
515 * config/pru/predicates.md: New file.
516 * config/pru/pru-opts.h: New file.
517 * config/pru/pru-passes.c: New file.
518 * config/pru/pru-pragma.c: New file.
519 * config/pru/pru-protos.h: New file.
520 * config/pru/pru.c: New file.
521 * config/pru/pru.h: New file.
522 * config/pru/pru.md: New file.
523 * config/pru/pru.opt: New file.
524 * config/pru/t-pru: New file.
525 * doc/extend.texi: Document PRU pragmas.
526 * doc/invoke.texi: Document PRU-specific options.
527 * doc/md.texi: Document PRU asm constraints.
528
529 2019-06-12 Martin Sebor <msebor@redhat.com>
530
531 PR middle-end/90676
532 * tree-pretty-print.c (dump_mem_ref): New function. Include
533 MEM_REF type in output when different size than operand.
534 (dump_generic_node): Move code to dump_mem_ref and call it.
535
536 2019-06-12 Martin Sebor <msebor@redhat.com>
537
538 PR tree-optimization/90662
539 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
540 to arrays.
541
542 2019-06-12 Tom de Vries <tdevries@suse.de>
543
544 PR tree-optimization/90009
545 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
546
547 2019-06-12 Martin Liska <mliska@suse.cz>
548
549 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
550 the created map.
551 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
552 * mem-stats.h (mem_alloc_description::mem_alloc_description):
553 Do not sanitize created maps.
554
555 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
556
557 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
558 value_range::singleton_p.
559 * tree-vrp.c (value_range_constant_singleton): Remove.
560 * tree-vrp.h (value_range_constant_singleton): Remove.
561 * vr-values.c (vr_values::singleton): Use
562 value_range::singleton_p.
563
564 2019-06-12 Jakub Jelinek <jakub@redhat.com>
565
566 PR target/90811
567 * cfgexpand.c (align_local_variable): Add really_expand argument,
568 don't SET_DECL_ALIGN if it is false.
569 (add_stack_var): Add really_expand argument, pass it through to
570 align_local_variable.
571 (expand_one_stack_var_1): Pass true as really_expand to
572 align_local_variable.
573 (expand_one_ssa_partition): Pass true as really_expand to
574 add_stack_var.
575 (expand_one_var): Pass really_expand through to add_stack_var.
576
577 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
578
579 * config/arm/iterators.md (VABAL): New int iterator.
580 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
581 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U
582 values.
583
584 2019-06-12 Martin Liska <mliska@suse.cz>
585
586 * value-prof.c (stream_out_histogram_value): Only first value
587 can't be negative.
588
589 2019-06-12 Jakub Jelinek <jakub@redhat.com>
590
591 PR c/90760
592 * symtab.c (symtab_node::set_section): Allow being called on aliases
593 as long as they aren't analyzed yet.
594
595 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
596
597 * config/mips/mips.c (mips_final_postscan_insn): Modify call
598 to `mips_set_text_contents_type' to indicate whether a
599 non-debug insn follows.
600
601 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
602
603 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
604 enabling -mpcrel by default.
605 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
606 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
607 that the test against -mcpu=future is done first. Then test if
608 -mprefixed-addr is on for -mpcrel.
609 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
610
611 2019-06-11 Jakub Jelinek <jakub@redhat.com>
612
613 PR target/90811
614 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
615 instead of and.u%d.
616
617 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
618
619 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
620
621 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
622
623 PR c++/90449 - add -Winaccessible-base option.
624 * doc/invoke.texi (Winaccessible-base): Document.
625
626 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
627
628 PR tree-optimization/62041
629 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
630
631 2019-06-11 Jason Merrill <jason@redhat.com>
632
633 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
634 * tree.c (get_tree_code_name): Likewise.
635 * print-tree.c (print_node): Only briefly print a node with an
636 invalid code.
637
638 2019-06-11 Jakub Jelinek <jakub@redhat.com>
639
640 PR bootstrap/90819
641 * trans-mem.c (tm_memopt_compute_available): Add assertion
642 that blocks is not empty. Formatting fix.
643
644 2019-06-11 Martin Liska <mliska@suse.cz>
645
646 PR c++/87847
647 * hash-table.h: Extend create_gcc, add one parameter
648 that is passed into hash_table::hash_table.
649
650 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
651
652 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
653 New prototype.
654 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
655 Emit clobber also for non-sse operations.
656 (ix86_split_fp_absneg_operator): New function.
657 * config/i386/i386.md (SSEMODEF): New mode iterator.
658 (ssevecmodef): New mode attribute.
659 (<code>tf2): Use absneg code iterator.
660 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
661 Add three-operand AVX alternatives.
662 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
663 Use absneg code iterator and X87MODEF mode iterator.
664 (absneg fp_reg non-sse splitter): Call absneg code iterator
665 and X87MODEF mode iterator.
666 (absneg general_reg non-sse splitter): Use absneg code iterator
667 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
668 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
669 code iterator. Add three-operand AVX alternative.
670 (absneg sse_reg splitter): Use absneg code iterator
671 and SSEMODEF mode iterator. Handle AVX operands.
672 (absneg fp_reg splitter): Use absneg code iterator
673 and MODEF mode iterator.
674 (absneg general_reg splitter): Merge splitters using MODEF mode
675 iterator. Use absneg code iterator. Call
676 ix86_split_fp_absneg_operator.
677 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
678 Do not enable for non-sse modes before reload.
679 (CSGNMODE): Remove.
680 (CSGNVMODE): Ditto.
681 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
682 ssevecmodef mode attribute instaed of CSGNVMODE.
683 (copysign<mode>3_const): Ditto.
684 (copysign<mode>3_var): Ditto.
685 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
686 Use absneg code iterator. Simplify code using std::swap.
687 * config/i386/predicates.md (absneg_operator): Remove.
688
689 2019-06-10 Martin Sebor <msebor@redhat.com>
690
691 * gimple-fold.c (get_range_strlen): Update comment that didn't
692 make it into r267503 or related commits.
693
694 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
695
696 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
697 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
698
699 2019-06-10 Jakub Jelinek <jakub@redhat.com>
700
701 * tree.def (OMP_SCAN): New tree code.
702 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
703 OMP_CLAUSE_EXCLUSIVE.
704 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
705 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
706 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
707 OMP_CLAUSE_{IN,EX}CLUSIVE.
708 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
709 * tree-nested.c (convert_nonlocal_reference_stmt,
710 convert_local_reference_stmt, convert_gimple_call): Handle
711 GIMPLE_OMP_SCAN.
712 * tree-pretty-print.c (dump_omp_clause): Handle
713 OMP_CLAUSE_{IN,EX}CLUSIVE.
714 (dump_generic_node): Handle OMP_SCAN.
715 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
716 * gimple.h (gomp_scan): New type.
717 (is_a_helper <gomp_scan *>::test,
718 is_a_helper <const gomp_scan *>::test): New templates.
719 (gimple_build_omp_scan): Declare.
720 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
721 gimple_omp_scan_set_clauses): New inline functions.
722 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
723 * gimple.c (gimple_build_omp_scan): New function.
724 (gimple_copy): Handle GIMPLE_OMP_SCAN.
725 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
726 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
727 GIMPLE_OMP_TASKGROUP.
728 (dump_gimple_omp_scan): New function.
729 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
730 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
731 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
732 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
733 (is_gimple_stmt): Handle OMP_SCAN.
734 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
735 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
736 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
737 mentioned in nested #pragma omp scan. Handle
738 OMP_CLAUSE_{IN,EX}CLUSIVE.
739 (gimplify_expr): Handle OMP_SCAN.
740 * omp-low.c (check_omp_nesting_restrictions): For parent context,
741 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
742 simd constructs.
743 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
744 GIMPLE_OMP_SCAN.
745
746 2019-06-10 Martin Liska <mliska@suse.cz>
747
748 * ipa-cp.c (ignore_edge_p): New function.
749 (build_toporder_info): Use it.
750 * ipa-inline.c (ignore_edge_p): New function.
751 (inline_small_functions): Use it.
752 * ipa-pure-const.c (ignore_edge_for_nothrow):
753 Verify opt_for_fn for caller and callee.
754 (ignore_edge_for_pure_const): Likewise.
755 * ipa-reference.c (ignore_edge_p): Extend to check
756 for opt_for_fn.
757 * ipa-utils.c (searchc): Refactor.
758 * ipa-utils.h: Fix coding style.
759
760 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
761
762 * config/arc/arc.c (arc_rtx_costs): Update costs.
763
764 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
765
766 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
767 (arc_split_ior): Likewise.
768 (arc_check_mov_const): Likewise.
769 (arc_split_mov_const): Likewise.
770 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
771 (arc_rtx_costs): Replace check Crr with Cax constraint.
772 (prepare_move_operands): Cleanup, remove unused code.
773 (arc_split_ior): New function.
774 (arc_check_ior_const): Likewise.
775 (arc_split_mov_const): Likewise.
776 (arc_check_mov_const): Likewise.
777 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
778 in define_insn_and_split pattern.
779 (iorsi3): Likewise.
780 (mulsi3_v2): Add new matching variant.
781 (andsi3_i): Cleanup pattern.
782 (rotrsi3_cnt1): Update pattern.
783 (rotrsi3_cnt8): New pattern.
784 (ashlsi2_cnt8): Likewise.
785 (ashlsi2_cnt16): Likewise.
786 * config/arc/constraints.md (C0p): Update constraint.
787 (Crr): Remove it.
788 (C0x): New pattern.
789 (Cax): New pattern.
790
791 2019-06-10 Martin Liska <mliska@suse.cz>
792
793 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
794 Update coding style.
795 (sem_item_optimizer::dump_cong_classes):
796 Print how many items are in a non-singular class. Improve
797 coding style.
798
799 2019-06-10 Martin Liska <mliska@suse.cz>
800
801 * value-prof.c (dump_histogram_value): Change dump format.
802 (gimple_mod_subtract_transform): Remove legacy comment.
803
804 2019-06-10 Martin Liska <mliska@suse.cz>
805
806 * value-prof.c (dump_histogram_value): Print histogram values
807 only if present.
808
809 2019-06-10 Martin Liska <mliska@suse.cz>
810
811 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
812 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
813 * ipa-profile.c (ipa_profile_generate_summary):
814 Use get_most_common_single_value.
815 * tree-profile.c (gimple_init_gcov_profiler):
816 Instrument with __gcov_one_value_profiler_v2
817 and __gcov_indirect_call_profiler_v4.
818 * value-prof.c (dump_histogram_value):
819 Print all values for HIST_TYPE_SINGLE_VALUE.
820 (stream_out_histogram_value): Update assert for
821 N values.
822 (stream_in_histogram_value): Set number of
823 counters for HIST_TYPE_SINGLE_VALUE.
824 (get_most_common_single_value): New.
825 (gimple_divmod_fixed_value_transform):
826 Use get_most_common_single_value.
827 (gimple_ic_transform): Likewise.
828 (gimple_stringops_transform): Likewise.
829 (gimple_find_values_to_profile): Set number
830 of counters for HIST_TYPE_SINGLE_VALUE.
831 * value-prof.h (get_most_common_single_value):
832 New.
833
834 2019-06-10 Martin Liska <mliska@suse.cz>
835
836 * hash-map.h: Pass default value to hash_table ctor.
837 * hash-table.h: Add default value to call of a ctor.
838
839 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
840
841 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
842 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
843
844 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
845
846 PR target/90751
847 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
848 Call pa_output_function_label.
849 (TARGET_ASM_FUNCTION_PROLOGUE): define.
850 * config/pa/pa-protos.h (pa_output_function_label): Declare.
851 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
852 to declaration.
853 (pa_linux_output_function_prologue): Declare.
854 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
855 (pa_output_function_label): New.
856 (pa_output_function_prologue): Revise to use pa_output_function_label.
857 (pa_linux_output_function_prologue): New.
858 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
859
860 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
861
862 * tree-vrp.h (value_range_base::intersect): New.
863 (value_range::intersect_helper): Move from here...
864 (value_range_base::intersect_helper): ...to here.
865 * tree-vrp.c (value_range::intersect_helper): Rename to...
866 (value_range_base::intersect_helper): ...this, and rewrite to
867 return a value instead of modifying THIS in place.
868 Also, move equivalence handling...
869 (value_range::intersect): ...here, while calling intersect_helper.
870 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
871 calling intersect.
872 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
873 Same.
874 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
875
876 2019-06-07 Jakub Jelinek <jakub@redhat.com>
877
878 * Makefile.in (genprogerr): Add condmd.
879 (genprog): Remove it here.
880
881 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
882
883 * doc/invoke.texi (AMD GCN Options): Add gfx906.
884
885 2019-06-07 Richard Biener <rguenther@suse.de>
886
887 PR debug/90574
888 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
889 that appear after user labels.
890
891 2019-06-07 Martin Liska <mliska@suse.cz>
892
893 * cselib.c (cselib_init): Disable hash table
894 sanitization.
895 * hash-set.h: Pass new default argument to m_table.
896 * hash-table.c: Add global variable with hash table
897 sanitization limit.
898 * hash-table.h (Allocator>::hash_table): Add new argument
899 to ctor.
900 (hashtab_chk_error): New.
901 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
902 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
903 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
904
905 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
906
907 * common.opt (flto-odr-type-merging): Ignore.
908 * invoke.texi (-flto-odr-type-merging): Remove.
909 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
910 (can_be_vtable_hashed_p): Remove.
911 (hash_odr_vtable): Remove.
912 (odr_vtable_hasher::hash): Remove.
913 (types_same_for_odr): Remove.
914 (types_odr_comparable): Remove.
915 (odr_vtable_hasher::equal): Remove.
916 (odr_vtable_hash_type, odr_vtable_hash): Remove.
917 (add_type_duplicate): Do not synchronize vtable and name hashtables.
918 (get_odr_type): Do not use vtable hash.
919 (dump_odr_type): Remove commented out code.
920 (build_type_inheritance_graph): Do not allocate vtable hash.
921 (rebuild_type_inheritance_graph): Do not delete vtable hash.
922 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
923 (odr_type_p): Likewise.
924 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
925 test.
926
927 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
928
929 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
930 immediately after same_types_for_tbaa_p returns -1 and continue
931 looking for possible exact match; if matching types are arrays
932 watch for partial overlaps.
933 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
934 (indirect_refs_may_alias_p): Do type based disambiguation first;
935 update comment.
936
937 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
938
939 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
940
941 2019-06-07 Martin Liska <mliska@suse.cz>
942
943 * doc/invoke.texi: Remove param.
944 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
945 Remove.
946 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
947 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
948 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
949 * profile.c (instrument_values): Remove
950 HIST_TYPE_INDIR_CALL_TOPN.
951 * tree-profile.c (init_ic_make_global_vars):
952 Always build __gcov_indirect_call only.
953 (gimple_init_gcov_profiler): Remove usage
954 of PARAM_INDIR_CALL_TOPN_PROFILE.
955 (gimple_gen_ic_profiler): Likewise.
956 * value-prof.c (dump_histogram_value): Likewise.
957 (stream_in_histogram_value): Likewise.
958 (gimple_indirect_call_to_profile): Likewise.
959 (gimple_find_values_to_profile): Likewise.
960 * value-prof.h (enum hist_type): Likewise.
961
962 2019-06-07 Martin Liska <mliska@suse.cz>
963
964 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
965 function.
966
967 2019-06-07 Martin Liska <mliska@suse.cz>
968
969 PR tree-optimization/78902
970 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
971 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
972 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
973 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
974 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
975 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
976 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
977 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
978 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
979 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
980 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
981 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
982 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
983 New.
984 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
985 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
986 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
987 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
988 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
989 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
990 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
991 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
992 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
993 warn_unused_result attribute.
994 (BUILT_IN_STRDUP): Likewise.
995 (BUILT_IN_STRNDUP): Likewise.
996 (BUILT_IN_ALLOCA): Likewise.
997 (BUILT_IN_CALLOC): Likewise.
998 (BUILT_IN_MALLOC): Likewise.
999 (BUILT_IN_REALLOC): Likewise.
1000
1001 2019-06-06 Jim Wilson <jimw@sifive.com>
1002
1003 PR target/89955
1004 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
1005 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
1006 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
1007
1008 2019-06-06 Martin Sebor <msebor@redhat.com>
1009
1010 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
1011 (handle_builtin_malloc): Remove trailing spaces.
1012 (handle_builtin_memset): Same.
1013 (handle_builtin_memcmp): Same.
1014 (compute_string_length): Same.
1015 (determine_min_objsize): Same.
1016 (handle_builtin_string_cmp): Same.
1017 (handle_char_store): Same. Break up excessively long line.
1018
1019 2019-06-06 Martin Jambor <mjambor@suse.cz>
1020
1021 * tree-sra.c (build_reconstructed_reference): Drop the alignment
1022 check.
1023
1024 2019-06-06 Martin Jambor <mjambor@suse.cz>
1025
1026 * tree-sra.c (struct access): New field grp_same_access_path.
1027 (dump_access): Dump it.
1028 (build_reconstructed_reference): New function.
1029 (build_ref_for_model): Use it if possible.
1030 (path_comparable_for_same_access): New function.
1031 (same_access_path_p): Likewise.
1032 (sort_and_splice_var_accesses): Set the new flag.
1033 (analyze_access_subtree): Likewise.
1034 (propagate_subaccesses_across_link): Propagate zero value of the new
1035 flag down the access tree.
1036
1037 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
1038
1039 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
1040 * config/gcn/gcn.opt (gpu_type): Add gfx906.
1041 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
1042 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
1043 Add gfx906.
1044
1045 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1046
1047 PR tree-optimization/90332
1048 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
1049 Handle VALS containing two vectors.
1050 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
1051 to...
1052 (@aarch64_combinez<mode>): ... This.
1053 (*aarch64_combinez_be<mode>): Rename to...
1054 (@aarch64_combinez_be<mode>): ... This.
1055 (vec_init<mode><Vhalf>): New define_expand.
1056 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
1057
1058 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1059
1060 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
1061 library functions only when not optimizing for size.
1062 (ashlsi3): Likewise.
1063 (ashrhi3): Likewise.
1064 (ashrsi3): Likewise.
1065 (lshrhi3): Likewise.
1066 (lshrsi3): Likewise.
1067
1068 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
1069
1070 PR rtl-optimization/88751
1071 * ira.c (ira): Use the number of the actually referenced registers
1072 when calculating the threshold.
1073
1074 2019-06-06 Jakub Jelinek <jakub@redhat.com>
1075
1076 * configure: Regenerate.
1077
1078 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1079
1080 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
1081 register if it is in memory, so the shift can be emulated with a rotate
1082 instruction.
1083 (ashrhi3): Likewise.
1084 (lshrhi3): Likewise.
1085
1086 2019-06-06 Martin Liska <mliska@suse.cz>
1087
1088 PR tree-optimization/87954
1089 * match.pd: Simplify mult where both arguments are 0 or 1.
1090
1091 2019-06-06 Richard Biener <rguenther@suse.de>
1092
1093 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
1094 put equivalences on UNDEFINED ranges.
1095 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
1096 Make sure to drop defs of stmts added during simplification
1097 to VARYING.
1098
1099 2019-06-06 Richard Biener <rguenther@suse.de>
1100
1101 * tree-ssa-structalias.c: Include tree-cfg.h.
1102 (make_heapvar): Do not make heap vars artificial.
1103 (find_func_aliases_for_builtin_call): Handle stack allocation
1104 functions.
1105 (find_func_aliases): Delay processing of simple enough returns
1106 in non-IPA mode.
1107 (set_uids_in_ptset): Adjust.
1108 (find_what_var_points_to): Likewise.
1109 (solve_constraints): Do not dump points-to sets here.
1110 (compute_points_to_sets): Post-process return statements,
1111 amending the escaped solution. Dump points-to sets afterwards.
1112 (ipa_pta_execute): Dump points-to sets.
1113
1114 2019-06-06 Martin Liska <mliska@suse.cz>
1115
1116 PR web/87933
1117 * doc/install.texi: Fix HTML headers and
1118 titles for 'Installing GCC' pages.
1119
1120 2019-06-06 Martin Liska <mliska@suse.cz>
1121
1122 * ipa-icf-gimple.h (dump_message_1): Remove.
1123 (dump_message): Likewise.
1124 (return_false_with_message_1): Print also file.
1125 (return_false_with_msg): Likewise.
1126 (return_with_result): Likewise.
1127 (return_with_debug): Likewise.
1128 * ipa-icf.c (sem_function::equals_private): Remove call
1129 to dump_message.
1130
1131 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
1132
1133 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
1134 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
1135 memory operand for it.
1136 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
1137
1138 2019-06-05 Martin Sebor <msebor@redhat.com>
1139
1140 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
1141 Adjust quoting and hyphenation.
1142 * convert.c (convert_to_real_1): Same.
1143 * gcc.c (driver_wrong_lang_callback): Same.
1144 (driver::handle_unrecognized_options): Same.
1145 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
1146 * opts-common.c (cmdline_handle_error): Same.
1147 (read_cmdline_option): Same.
1148 * opts-global.c (complain_wrong_lang): Same.
1149 (print_ignored_options): Same.
1150 (handle_common_deferred_options): Same.
1151 * pretty-print.h: Same.
1152 * print-rtl.c (debug_bb_n_slim): Same.
1153 * sched-rgn.c (make_pass_sched_fusion): Same.
1154 * tree-cfg.c (verify_gimple_assign_unary): Same.
1155 (verify_gimple_label): Same.
1156 * tree-ssa-operands.c (verify_ssa_operands): Same.
1157 * varasm.c (do_assemble_alias): Same.
1158 (assemble_alias): Same.
1159
1160 2019-06-05 Richard Henderson <rth@twiddle.net>
1161
1162 * config/alpha/alpha.c (direct_return): Move down after
1163 struct machine_function definition; use saved frame_size;
1164 return bool.
1165 (struct machine_function): Add sa_mask, sa_size, frame_size.
1166 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
1167 (alpha_compute_frame_layout): ... new function.
1168 (TARGET_COMPUTE_FRAME_LAYOUT): New.
1169 (alpha_initial_elimination_offset): Use saved sa_size.
1170 (alpha_vms_initial_elimination_offset): Likewise.
1171 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
1172 (alpha_expand_prologue): Use saved frame data. Merge integer
1173 and fp register save loops.
1174 (alpha_expand_epilogue): Likewise.
1175 (alpha_start_function): Use saved frame data.
1176 * config/alpha/alpha-protos.h (direct_return): Update.
1177 (alpha_sa_size): Remove.
1178
1179 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
1180
1181 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
1182 multiplication by a power-of-two value.
1183 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
1184 and turn the modulo operation into a masking operation.
1185
1186 2019-06-05 Jakub Jelinek <jakub@redhat.com>
1187
1188 PR debug/90733
1189 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
1190 with VOIDmode inner operands.
1191
1192 2019-06-05 Richard Biener <rguenther@suse.de>
1193
1194 PR middle-end/90726
1195 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
1196 turn an expression graph into a tree.
1197
1198 2019-06-05 Jakub Jelinek <jakub@redhat.com>
1199
1200 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
1201 member.
1202 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
1203 treat it like explicit monotonic schedule modifier.
1204 (expand_omp_for): Initialize has_lastprivate_conditional.
1205 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
1206 schedule modifier.
1207
1208 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
1209 references, lookup in in hash map MEM_REF operand instead of the
1210 MEM_REF itself.
1211 (lower_omp_1): When looking for lastprivate conditional assignments,
1212 handle MEM_REFs with REFERENCE_TYPE operands.
1213
1214 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
1215 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
1216 and references a VLA. Handle references to non-VLAs if is_simd
1217 all privatization clauses like reductions.
1218 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
1219 If omp_is_reference, use always omp simd arrays and set
1220 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
1221 fails, emit reference initialization.
1222
1223 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
1224
1225 PR target/89803
1226 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
1227 _mm_mask_fpclass_sd_mask): New intrinsics.
1228 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
1229 * config/i386/i386-builtin.def
1230 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
1231 New builtins.
1232 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
1233 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
1234 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
1235 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
1236 case QI_FTYPE_V2SF_INT): Ditto.
1237 * config/i386/sse.md
1238 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
1239 Extended to insnstructions with mask operands.
1240
1241 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1242
1243 * config/rs6000/constraints.md (define_register_constraint "wp"):
1244 Delete.
1245 (define_register_constraint "wq"): Delete.
1246 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1247 (rs6000_init_hard_regno_mode_ok): Adjust.
1248 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1249 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
1250 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
1251 (define_mode_attr VSa): Delete.
1252 (define_mode_attr VSisa): New.
1253 (rest of file): Adjust.
1254 * doc/md.texi (Machine Constraints): Adjust.
1255
1256 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1257
1258 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
1259 (define_attr "enabled"): Handle those new isa values.
1260
1261 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1262
1263 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
1264 (define_mode_attr VSr5): Delete.
1265 (define_mode_attr VStype_sqrt): Delete.
1266 (define_mode_iterator VSX_SPDP): Delete.
1267 (define_mode_attr VS_spdp_res): Delete.
1268 (define_mode_attr VS_spdp_insn): Delete.
1269 (define_mode_attr VS_spdp_type): Delete.
1270 (*vsx_sqrt<mode>2): Adjust.
1271 (vsx_<VS_spdp_insn>): Delete, split to...
1272 (vsx_xscvdpsp): ... this. New. And...
1273 (vsx_xvcvspdp): ... this. New. And...
1274 (vsx_xvcvdpsp): ... this. New.
1275
1276 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1277
1278 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
1279 and V2DF.
1280 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
1281 (rest of file): Adjust.
1282
1283 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1284
1285 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
1286 (vsx_extract_<mode>_var): Ditto.
1287
1288 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1289
1290 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
1291 with just "wa".
1292
1293 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1294
1295 * config/rs6000/constraints.md (define_register_constraint "ww"):
1296 Delete.
1297 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1298 (rs6000_init_hard_regno_mode_ok): Adjust.
1299 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1300 RS6000_CONSTRAINT_ww.
1301 * config/rs6000/rs6000.md: Adjust.
1302 * config/rs6000/vsx.md: Adjust.
1303 * doc/md.texi (Machine Constraints): Adjust.
1304
1305 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1306
1307 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
1308 (define_mode_attr sd): New.
1309 (define_mode_attr s): New.
1310 (define_mode_attr Ftrad): Delete.
1311 (define_mode_attr Fvsx): Delete.
1312 (define_mode_attr Fs): Delete.
1313 (rest of file): Use the new mode attributes.
1314 * config.rs6000/vsx.md: Use the new mode attributes.
1315
1316 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1317
1318 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
1319 with just "wa".
1320
1321 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1322
1323 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
1324 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
1325 used with VSX_B, VSX_D, or VSX_F, with just "wa".
1326
1327 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
1328
1329 PR target/78263
1330 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
1331 C++ with strict ANSI requirements.
1332
1333 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
1334
1335 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
1336 computations when step is 1.
1337
1338 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1339
1340 * config/rs6000/constraints.md (define_register_constraint "wf"):
1341 Delete.
1342 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1343 (rs6000_init_hard_regno_mode_ok): Adjust.
1344 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1345 RS6000_CONSTRAINT_wf.
1346 * config/rs6000/rs6000.md: Adjust.
1347 * config/rs6000/vsx.md: Adjust.
1348 * doc/md.texi (Machine Constraints): Adjust.
1349
1350 2019-06-04 Andrew Pinski <apinski@marvell.com>
1351
1352 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
1353 Fix ILP32 value.
1354
1355 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1356
1357 * config/rs6000/constraints.md (define_register_constraint "wd"):
1358 Delete.
1359 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1360 (rs6000_init_hard_regno_mode_ok): Adjust.
1361 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1362 RS6000_CONSTRAINT_wd.
1363 * config/rs6000/rs6000.md: Adjust.
1364 * config/rs6000/vsx.md: Adjust.
1365 * doc/md.texi (Machine Constraints): Adjust.
1366
1367 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1368
1369 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
1370 (rest of file): Adjust.
1371
1372 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1373
1374 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
1375 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
1376 (vsx_splat_<mode>_reg): Adjust.
1377
1378 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1379
1380 * config/rs6000/constraints.md (define_register_constraint "ws"):
1381 Delete.
1382 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1383 (rs6000_init_hard_regno_mode_ok): Adjust.
1384 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1385 RS6000_CONSTRAINT_ws.
1386 * config/rs6000/rs6000.md: Adjust.
1387 * config/rs6000/vsx.md: Adjust.
1388 * doc/md.texi (Machine Constraints): Adjust.
1389
1390 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1391
1392 * config/rs6000/constraints.md (define_register_constraint "wv"):
1393 Delete.
1394 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1395 (rs6000_init_hard_regno_mode_ok): Adjust.
1396 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1397 RS6000_CONSTRAINT_wv.
1398 * config/rs6000/rs6000.md: Adjust.
1399 * config/rs6000/vsx.md: Adjust.
1400 * doc/md.texi (Machine Constraints): Adjust.
1401
1402 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
1403
1404 * config/rs6000/constraints.md (define_register_constraint "wi"):
1405 Delete.
1406 (define_register_constraint "wt"): Delete.
1407 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1408 (rs6000_init_hard_regno_mode_ok): Adjust.
1409 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1410 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
1411 * config/rs6000/rs6000.md: Adjust.
1412 * config/rs6000/vsx.md: Adjust.
1413 * doc/md.texi (Machine Constraints): Adjust.
1414
1415 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
1416
1417 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
1418 const.
1419 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
1420 default_elf_asm_output_external.
1421
1422 2019-06-04 Martin Liska <mliska@suse.cz>
1423
1424 * ipa-icf.c (INCLUDE_LIST): Remove.
1425 (sem_item_optimizer::execute): Remove call to init_wpa.
1426 * ipa-icf.h (init_wpa): Remove.
1427
1428 2019-06-04 Jakub Jelinek <jakub@redhat.com>
1429
1430 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
1431 conditional on combined for simd.
1432 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
1433 member.
1434 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
1435 constructs, don't remove lastprivate_conditional_map, but instead set
1436 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
1437 to parent construct temporaries.
1438 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
1439 like !ctx->lastprivate_conditional_map.
1440 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
1441 use up->outer context instead of up.
1442 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
1443 gimple_omp_for_combined_p.
1444 (expand_omp_for_static_nochunk): Likewise.
1445 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
1446 probably moved over into expand_omp_for_generic rather than being copied
1447 there.
1448
1449 2019-06-04 Martin Liska <mliska@suse.cz>
1450
1451 * value-prof.c (dump_histogram_value): Fix typo.
1452 (gimple_mod_subtract_transform): Likewise.
1453
1454 2019-06-04 Richard Biener <rguenther@suse.de>
1455
1456 PR middle-end/90726
1457 * tree-chrec.c (chrec_contains_symbols): Add to visited.
1458 (tree_contains_chrecs): Likewise.
1459 (chrec_contains_symbols_defined_in_loop): Move here and avoid
1460 exponential behaivor from ...
1461 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
1462 ... here.
1463 (expression_expensive_p): Avoid exponential behavior and compute
1464 expanded size, rejecting any expansion.
1465 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
1466 (idx_contains_abnormal_ssa_name_p): Likewise.
1467 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
1468 (contains_abnormal_ssa_name_p): Simplify and use
1469 walk_tree_without_duplicates.
1470
1471 2019-06-04 Richard Biener <rguenther@suse.de>
1472
1473 PR tree-optimization/90738
1474 Revert
1475 2019-06-03 Richard Biener <rguenther@suse.de>
1476
1477 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
1478 full reference tree and record in ref->ref.
1479 (vn_reference_lookup_3): Pass in original ref to
1480 ao_ref_init_from_vn_reference.
1481 (vn_reference_lookup): Likewise.
1482 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
1483 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1484 Handle non-decl bases in the original reference.
1485
1486 2019-06-04 Martin Liska <mliska@suse.cz>
1487
1488 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
1489 number of references.
1490 (sem_item_optimizer::do_congruence_step):
1491 (sem_item_optimizer::worklist_push): Dump how references
1492 a class has.
1493 (sem_item_optimizer::worklist_pop): Use heap.
1494 (sem_item_optimizer::process_cong_reduction): Likewise.
1495 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
1496
1497 2019-06-04 Martin Liska <mliska@suse.cz>
1498
1499 * ipa-icf.h (struct sem_usage_pair_hash): New.
1500 (sem_usage_pair_hash::hash): Likewise.
1501 (sem_usage_pair_hash::equal): Likewise.
1502 (struct sem_usage_hash): Likewise.
1503 * ipa-icf.c (sem_item::sem_item): Initialize
1504 referenced_by_count.
1505 (sem_item::add_reference): Register a reference
1506 in ref_map and not in target->usages.
1507 (sem_item::setup): Remove initialization of
1508 dead vectors.
1509 (sem_item::~sem_item): Remove usage of dead vectors.
1510 (sem_item::dump): Remove dump of references.
1511 (sem_item_optimizer::sem_item_optimizer): Initialize
1512 m_references.
1513 (sem_item_optimizer::read_section): Remove useless
1514 dump.
1515 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
1516 (sem_item_optimizer::build_graph): Pass m_references
1517 to ::add_reference.
1518 (sem_item_optimizer::verify_classes): Remove usage of dead
1519 vectors.
1520 (sem_item_optimizer::traverse_congruence_split): Return true
1521 when a class is split.
1522 (sem_item_optimizer::do_congruence_step_for_index): Use
1523 hash_map for look up of (sem_item *, index). That brings
1524 significant speed up.
1525 (sem_item_optimizer::do_congruence_step): Return true
1526 when a split is done.
1527 (congruence_class::is_class_used): Use referenced_by_count.
1528
1529 2019-06-04 Alan Modra <amodra@gmail.com>
1530
1531 PR target/90689
1532 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
1533 error.
1534
1535 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
1536
1537 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
1538 * config/rs6000/rs6000.c (direct_move_p): Adjust.
1539 (rs6000_secondary_reload_simple_move): Adjust.
1540 (rs6000_opt_masks): Neuter the "mfpgpr" option.
1541 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
1542 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
1543 comment.
1544 (power6x): Adjust.
1545 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
1546 (floatunssi<mode>2_lfiwzx): Adjust.
1547 (fix_trunc<mode>si2_stfiwx): Adjust.
1548 (fixuns_trunc<mode>si2_stfiwx): Adjust.
1549 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
1550 (mfpgpr): Mark as deprecated.
1551 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
1552 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
1553 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
1554
1555 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
1556
1557 * config/rs6000/constraints.md (define_register_constraint "wg"):
1558 Delete.
1559 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
1560 RS6000_CONSTRAINT_wg.
1561 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
1562 (rs6000_init_hard_regno_mode_ok): Adjust.
1563 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
1564 Delete "wg" alternatives.
1565 * doc/md.texi (Machine Constraints): Adjust.
1566
1567 2019-06-03 Alan Modra <amodra@gmail.com>
1568
1569 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
1570 (get_uncond_jump_length): Assert length less than INT_MAX and
1571 non-negative.
1572
1573 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
1574
1575 PR middle-end/64242
1576 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
1577 block.
1578 (expand_builtin_nonlocal_goto): Likewise.
1579
1580 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
1581
1582 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
1583 (aarch64_asm_output_external): Declare.
1584 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
1585 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
1586 (aarch64_asm_output_alias): New.
1587 (aarch64_asm_output_external): New.
1588 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
1589 (ASM_OUTPUT_EXTERNAL): Define.
1590
1591 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
1592 * tree-vrp.h (value_range_base::nonzero_p): New.
1593 (value_range_base::set_nonnull): Rename to...
1594 (value_range_base::set_nonzero): ...this.
1595 (value_range_base::set_null): Rename to...
1596 (value_range_base::set_zero): ...this.
1597 (value_range::set_nonnull): Remove.
1598 (value_range::set_null): Remove.
1599 * tree-vrp.c (range_is_null): Remove.
1600 (range_is_nonnull): Remove.
1601 (extract_range_from_binary_expr): Use value_range_base::*zero_p
1602 instead of range_is_*null.
1603 (extract_range_from_unary_expr): Same.
1604 (value_range_base::set_nonnull): Rename to...
1605 (value_range_base::set_nonzero): ...this.
1606 (value_range::set_nonnull): Remove.
1607 (value_range_base::set_null): Rename to...
1608 (value_range_base::set_zero): ...this.
1609 (value_range::set_null): Remove.
1610 (extract_range_from_binary_expr): Rename set_*null uses to
1611 set_*zero.
1612 (extract_range_from_unary_expr): Same.
1613 (union_helper): Same.
1614 * vr-values.c (get_value_range): Use set_*zero instead of
1615 set_*null.
1616 (vr_values::extract_range_from_binary_expr): Same.
1617 (vr_values::extract_range_basic): Same.
1618
1619 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
1620
1621 PR driver/90684
1622 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
1623
1624 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1625
1626 * config/aarch64/iterators.md (MAX_OPP): New code attr.
1627 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to...
1628 (aarch64_<su>abd<mode>_3): ... This.
1629 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
1630
1631 2019-06-03 Richard Biener <rguenther@suse.de>
1632
1633 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
1634 full reference tree and record in ref->ref.
1635 (vn_reference_lookup_3): Pass in original ref to
1636 ao_ref_init_from_vn_reference.
1637 (vn_reference_lookup): Likewise.
1638 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
1639 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
1640 Handle non-decl bases in the original reference.
1641
1642 2019-06-03 Martin Liska <mliska@suse.cz>
1643
1644 * doc/generic.texi: Remove Java Trees.
1645
1646 2019-06-03 Martin Liska <mliska@suse.cz>
1647
1648 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
1649 returns 0 when operands are equal.
1650
1651 2019-06-03 Richard Biener <rguenther@suse.de>
1652
1653 PR tree-optimization/90716
1654 * tree-loop-distribution.c (destroy_loop): Process blocks in
1655 correct order.
1656
1657 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
1658
1659 PR target/88837
1660 * vector-builder.h (vector_builder::count_dups): New method.
1661 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
1662 Declare prototype.
1663 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
1664 (vec_init<mode><Vel>): New pattern.
1665 * config/aarch64/aarch64.c (emit_insr): New function.
1666 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
1667 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
1668 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
1669 (aarch64_sve_expand_vector_init): Define two overloaded functions.
1670
1671 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1672
1673 PR tree-optimization/90681
1674 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
1675 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
1676 special case for SLP, but fail on non-groupped loads.
1677
1678 2019-06-03 Martin Liska <mliska@suse.cz>
1679
1680 * cfg.c (debug): Use TDF_DETAILS for debug and
1681 print edge info only once.
1682
1683 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
1684
1685 PR fortran/90539
1686 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
1687
1688 2019-06-01 Martin Sebor <msebor@redhat.com>
1689
1690 PR middle-end/90694
1691 * tree-pretty-print.c (dump_generic_node): Add parentheses.
1692
1693 2019-05-31 Jan Hubicka <jh@suse.cz>
1694
1695 * alias.c: Include ipa-utils.h.
1696 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
1697 * ipa-devirt.c (prevailing_odr_type): New.
1698 * ipa-utils.h (previaling_odr_type): Declare.
1699
1700 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
1701 Hongtao Liu <hongtao.liu@intel.com>
1702
1703 PR target/89355
1704 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
1705 NOTE_INSN_DELETED_LABEL check.
1706
1707 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
1708 Robert Suchanek <robert.suchanek@mips.com>
1709
1710 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
1711 and 3rd operands of the fmadd/fmsub/maddv builtin.
1712
1713 2019-05-31 Jakub Jelinek <jakub@redhat.com>
1714
1715 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
1716 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
1717 on OMP_SIMD if not nested inside of worksharing loop that also has
1718 lastprivate conditional clause for the same decl.
1719 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
1720 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
1721 on simd.
1722 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
1723 on simd construct.
1724 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
1725 on simd construct.
1726 (lower_lastprivate_clauses): Likewise.
1727 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
1728 calling lower_rec_input_clauses.
1729 (lower_omp_for): Likewise.
1730 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
1731 clause on simd construct.
1732 * omp-expand.c (expand_omp_simd): Initialize cond_var if
1733 OMP_CLAUSE__CONDTEMP_ clause is present.
1734
1735 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
1736 ivar and lvar.
1737
1738 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
1739
1740 PR c/43673
1741 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
1742 TEX_D32, TEX_D64 or TEX_D128.
1743
1744 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
1745
1746 * match.pd (~(vec?cst1:cst2)): New transformation.
1747
1748 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
1749
1750 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
1751 ((size_t)(A /[ex] B) CMP C): New transformation.
1752
1753 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
1754
1755 * doc/md.texi: Document define_insn_and_rewrite.
1756 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
1757 * gensupport.c (queue_elem): Update comment.
1758 (replace_operands_with_dups): New function.
1759 (gen_rewrite_sequence): Likewise.
1760 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
1761 * read-rtl.c (apply_subst_iterator): Likewise.
1762 (add_condition_to_rtx, named_rtx_p): Likewise.
1763 (rtx_reader::read_rtx_operand): Likewise.
1764 * config/aarch64/aarch64-sve.md
1765 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
1766 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
1767 define_insn_and_rewrite.
1768 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
1769 Remove separate define_split.
1770
1771 2019-05-31 Jan Hubicka <jh@suse.cz>
1772
1773 * tree-ssa-alias.c (type_has_components_p): New function.
1774 (aliasing_component_refs_p): Use it.
1775
1776 2019-05-31 Martin Liska <mliska@suse.cz>
1777
1778 * gdbhooks.py: Add const_tree to TreePrinter.
1779
1780 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
1781
1782 PR debug/86964
1783 * common.opt (feliminate-unused-debug-symbols): Enable by default.
1784 * doc/invoke.texi (Debugging Options): Document new default of
1785 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
1786
1787 2019-05-31 Jakub Jelinek <jakub@redhat.com>
1788
1789 PR tree-optimization/90671
1790 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
1791 template_block used to be empty on the first call, don't use
1792 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
1793 seq with bb_seq and set it with set_bb_seq.
1794
1795 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
1796
1797 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
1798
1799 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
1800 Michael Meissner <meissner@linux.ibm.com>
1801
1802 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
1803 (prefixed_mem_operand): Likewise.
1804 (non_prefixed_mem_operand): Likewise.
1805 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
1806 prototype.
1807 * config/rs6000/rs6000.c (print_operand_address): Handle
1808 PC-relative addresses.
1809 (mode_supports_prefixed_address_p): New function.
1810 (rs6000_prefixed_address): New function.
1811 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
1812 (SYMBOL_REF_PCREL_P): Likewise.
1813
1814 2019-05-30 Jakub Jelinek <jakub@redhat.com>
1815
1816 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
1817 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
1818 (gimplify_omp_for): If worksharing loop with lastprivate conditional
1819 is nested inside of parallel region, add _condtemp_ clause to both.
1820 * tree-nested.c (convert_nonlocal_omp_clauses,
1821 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
1822 assertion failure.
1823 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
1824 member.
1825 * omp-general.c (omp_extract_for_data): Compute it.
1826 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
1827 (lower_rec_input_clauses): Likewise.
1828 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
1829 clause is already present, just add one further one after it.
1830 (lower_lastprivate_clauses): Handle cond_ptr with array type.
1831 (lower_send_shared_vars): Clear _condtemp_ vars.
1832 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
1833 or section or taskgroup.
1834 * omp-expand.c (determine_parallel_type): Disallow combining only if
1835 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
1836 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
1837 (expand_omp_for_generic, expand_omp_for_static_nochunk,
1838 expand_omp_for_static_chunk, expand_omp_for): Use
1839 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
1840 determine if a special set of API routines are needed and if condtemp
1841 needs to be initialized, while always initialize cond_var if
1842 fd->lastprivate_conditional is non-zero.
1843
1844 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
1845 Michael Meissner <meissner@linux.ibm.com>
1846
1847 * config/rs6000/constraints.md (eI): New constraint.
1848 * config/rs6000/predicates.md (cint34_operand): New predicate.
1849 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
1850 (SIGNED_34BIT_OFFSET_P): Likewise.
1851 * doc/md.texi (eI): Document constraint.
1852
1853 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
1854
1855 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
1856
1857 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
1858 Michael Meissner <meissner@linux.ibm.com>
1859
1860 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
1861 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
1862 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
1863 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
1864 (OTHER_FUTURE_MASKS): Likewise.
1865 (POWERPC_MASKS): Likewise.
1866 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
1867 specified without -mprefixed-addr or -mcpu=future. Error if
1868 -mprefixed-addr is specified without -mcpu=future.
1869 (rs6000_opt_masks): Add entry for prefixed-addr.
1870 * rs6000.opt (mprefixed-addr): New option.
1871
1872 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
1873
1874 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
1875 cfun->is_thunk check.
1876
1877 2019-05-30 Jakub Jelinek <jakub@redhat.com>
1878
1879 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
1880 to length.
1881
1882 2019-05-30 Martin Liska <mliska@suse.cz>
1883
1884 * gdbinit.in: Fix 'ptc' command. Add trt
1885 that prints TREE_TYPE($).
1886
1887 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
1888 Alan Modra <amodra@gmail.com>
1889
1890 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
1891 calls here...
1892 (rs6000_indirect_call_template_1): ...and here.
1893 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
1894 plt16_ha, plt16_lo, mtctr indirect calls. Use
1895 rs6000_pltseq_enum.
1896 (rs6000_decl_ok_for_sibcall): New function.
1897 (rs6000_function_ok_for_sibcall): Refactor.
1898 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
1899 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
1900 when pcrel. Reorganize.
1901 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
1902 * rs6000.h (rs6000_pltseq_enum): New enum.
1903 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
1904 (*pltseq_tocsave): Use rs6000_pltseq_enum.
1905 (*pltseq_plt16_ha): Likewise.
1906 (*pltseq_plt16_lo): Likewise.
1907 (*pltseq_mtctr): Likewise.
1908 (*pltseq_plt_pcrel): New insn.
1909 (*call_local_aix): Handle @notoc calls.
1910 (*call_value_local_aix): Likewise.
1911 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
1912 (*call_value_nonlocal_aix): Likewise.
1913 (*call_indirect_pcrel): New insn.
1914 (*call_value_indirect_pcrel): Likewise.
1915
1916
1917 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
1918
1919 * config/i386/sse.md (*save_multiple<mode>): Rename from
1920 save_multiple<mode>.
1921 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
1922 (*restore_multiple_and_return<mode>): Rename from
1923 restore_multiple_and_return<mode>.
1924 (*restore_multiple_leave_return<mode>): Rename from
1925 restore_multiple_leave_return<mode>.
1926
1927 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
1928
1929 * config.gcc (rx-*-linux*): New target.
1930 * config/rx/elf.opt: New file.
1931 * config/rx/linux.h: Likewise.
1932 * config/rx/t-linux: Likewise.
1933 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
1934 make it zero.
1935 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
1936 (ASM_APP_OFF): Likewise.
1937 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
1938 moved elsewhere.
1939
1940 2019-05-29 Jan Hubicka <jh@suse.cz>
1941
1942 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
1943 variants are pointer equivalent.
1944
1945 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1946
1947 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
1948 * config/aarch64/aarch64-sve2.md: New file.
1949 (<u>avg<mode>3_floor): New pattern.
1950 (<u>avg<mode>3_ceil): Likewise.
1951 (*<sur>h<addsub><mode>): Likewise.
1952 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
1953 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
1954
1955 2019-05-29 Jakub Jelinek <jakub@redhat.com>
1956
1957 PR bootstrap/90543
1958 * optc-save-gen.awk: In cl_optimization_print, use correct condition
1959 for var_opt_string printing. In cl_optimization_print_diff, print
1960 (null) instead of invoking undefined behavior if one of the
1961 var_opt_string pointers is NULL and use && instead of first || in the
1962 guarding condition. For var_target_other options, handle const char *
1963 target variables similarly to const char * optimize node variables.
1964
1965 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
1966
1967 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
1968 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
1969 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
1970 Add autib1716 and pacib1716 initialisation.
1971 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
1972 for autib1716 and pacib1716.
1973 * config/aarch64/aarch64-protos.h (aarch64_key_type,
1974 aarch64_post_cfi_startproc): Define.
1975 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
1976 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
1977 aarch64_handle_pac_ret_protection): Set default sign key to A.
1978 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
1979 aarch64_expand_prologue): Add check for b-key.
1980 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
1981 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
1982 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
1983 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
1984 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
1985 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
1986 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
1987 * config/aarch64/aarch64.md (do_return): Add check for b-key.
1988 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
1989 pauth_hint_num_a with pauth_hint_num.
1990 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
1991 pauth_hint_num_a with pauth_hint_num.
1992 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
1993 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
1994 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
1995 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
1996 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
1997 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
1998 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
1999 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
2000 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
2001 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
2002 UNSPEC_AUTIA1716 respectively.
2003 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
2004 and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
2005 * doc/invoke.texi (-mbranch-protection): Add b-key type.
2006 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
2007 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
2008
2009 2019-05-29 Jakub Jelinek <jakub@redhat.com>
2010
2011 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
2012 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
2013 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
2014 explicit clause on combined parallel into implicit shared clause.
2015 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
2016 and firstprivate if the decl has one too from combined parallel to
2017 the worksharing construct.
2018
2019 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
2020 Michael Meissner <meissner@linux.ibm.com>
2021
2022 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
2023
2024 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
2025
2026 * rtl.h (LABEL_REF_P): New #define.
2027
2028 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
2029
2030 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
2031
2032 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
2033
2034 * internal-fn.c: Marked mask_load_direct as vectorizable.
2035 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
2036 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
2037 combined even if masks different with allow_slp_p param.
2038 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
2039 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
2040 dissolve SLP-only vectorizable groups when SLP has been discarded.
2041 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
2042 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
2043 masks.
2044 (vect_build_slp_tree_1): Fixed comment typo.
2045 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
2046 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
2047 loads for SLP only.
2048 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
2049 vectorizable.
2050 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
2051
2052 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2053
2054 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
2055 Remove obsolete use_thunk reference.
2056 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
2057 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
2058 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
2059 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
2060 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
2061 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2062 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
2063 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
2064 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
2065
2066 2019-05-28 Nathan Sidwell <nathan@acm.org>
2067
2068 * tree.h (IDENTIFIER_ANON_P): New.
2069 (anon_aggrname_format, anon_aggname_p): Don't declare.
2070 (make_anon_name): Declare.
2071 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
2072 (hash_tree): Likewise.
2073 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
2074 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
2075 (anon_cnt, make_anon_name): New.
2076
2077 2019-05-28 Martin Liska <mliska@suse.cz>
2078
2079 PR other/90315
2080 * opts-global.c (decode_options): Print help for all
2081 help_option_arguments.
2082 * opts.c (print_help): Add new argument.
2083 (common_handle_option): Remember all values into
2084 help_option_arguments.
2085 * opts.h (print_help): Add new argument.
2086
2087 2019-05-28 Martin Liska <mliska@suse.cz>
2088
2089 PR ipa/90555
2090 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
2091 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
2092 (func_checker::compare_bb): Call compare_loops.
2093
2094 2019-05-27 Jakub Jelinek <jakub@redhat.com>
2095
2096 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
2097 on sections construct.
2098 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
2099 construct.
2100 (lower_omp_sections): Handle lastprivate conditional.
2101 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
2102 lastprivate_conditional_map.
2103 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
2104
2105 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
2106 critical, taskgroup and section regions when looking for a region
2107 with non-NULL lastprivate_conditional_map.
2108
2109 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
2110
2111 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
2112 (*ix86_gen_sub3): Ditto.
2113 (*ix86_gen_sub3_carry): Ditto.
2114 (*ix86_gen_one_cmpl2): Ditto.
2115 (*ix86_gen_andsp): Ditto.
2116 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
2117 (gen_and2_insn): New static function.
2118 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
2119 Use gen_add3_insn instead of ix86_gen_add3.
2120 (ix86_expand_split_stack_prologue): Use gen_add2_insn
2121 instead of ix86_gen_add3.
2122 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
2123 Use gen_sub3_insn instead of ix86_gen_sub3.
2124 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
2125 instead of ix86_gen_add3.
2126 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
2127 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
2128 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
2129 * config/i386/i386-options.c (ix86_option_override_internal):
2130 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
2131 ix86_gen_one_cmpl2 and ix86_gen_andsp.
2132
2133 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
2134
2135 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
2136 and DW_OP_GNU_const_index opcodes.
2137
2138 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
2139
2140 * config/i386/i386.h (STACK_SIZE_MODE): Define.
2141
2142 2019-05-27 Richard Biener <rguenther@suse.de>
2143
2144 PR tree-optimization/90637
2145 * tree-ssa-sink.c (statement_sink_location): Honor the
2146 computed sink location for single-uses.
2147
2148 2019-05-27 Richard Biener <rguenther@suse.de>
2149
2150 PR middle-end/90610
2151 * match.pd (vec_perm): Avoid clobbering op0 when not generating
2152 a bit-insert.
2153
2154 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2155
2156 * config/i386/i386.md (@sub<mode>3_carry): Rename
2157 from sub<mode>3_carry.
2158 (@leave_<mode>): New expander.
2159 (*leave): Rename from leave.
2160 (*leave_rex64): Rename from leave_rex64.
2161 (@monitorx_<mode>): Rename from monitorx_<mode>.
2162 (@clzero_<mode>): Rename from clzero_<mode>.
2163 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
2164 from sse3_monitor_<mode>.
2165 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
2166 (*ix86_gen_leave): Ditto.
2167 (*ix86_gen_monitor): Ditto.
2168 (*ix86_gen_monitorx): Ditto.
2169 (*ix86_gen_clzero): Ditto.
2170 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
2171 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
2172 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
2173 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
2174 Use gen_sse3_monitor instead of ix86_gen_monitor.
2175 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
2176 instead of ix86_gen_monitorx.
2177 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
2178 instead of ix86_gen_clzero.
2179 * config/i386/i386-options.c (ix86_option_override_internal):
2180 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
2181 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
2182
2183 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2184
2185 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
2186 Rename from tls_global_dynamic_64_<mode>.
2187 (@tls_local_dynamic_base_64_<mode>): Rename from
2188 tls_local_dynamic_base_64_<mode>.
2189 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
2190 Remove indirect function.
2191 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
2192 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
2193 instead of ix86_gen_tls_global_dynamic_64.
2194 Use gen_tls_local_dynamic_base_64 instead of
2195 ix86_gen_tls_local_dynamic_base_64.
2196 * config/i386/i386-options.c (ix86_option_override_internal):
2197 Do not initialize ix86_gen_tls_global_dynamic_64 and
2198 ix86_gen_tls_local_dynamic_base_64.
2199
2200 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
2201
2202 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
2203 Rename from pro_epilogue_adjust_stack_<mode>_add.
2204 (@pro_epilogue_adjust_stack_sub_<mode>)
2205 Rename from pro_epilogue_adjust_stack_<mode>_sub.
2206 (@allocate_stack_worker_probe_<mode>):
2207 Rename from allocate_stack_worker_probe_<mode>.
2208 (allocate_stack): Use gen_allocate_stack_worker_probe.
2209 (probe_stack): Use gen_probe_stack_1.
2210 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
2211 (@adjust_stack_and_probe_<mode>): Rename from
2212 adjust_stack_and_probe<mode>.
2213 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
2214 (stack_protect_set): Use gen_stack_protect_set_1.
2215 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
2216 (stack_protect_test): Use gen_stack_protect_test_1.
2217 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
2218 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
2219 Remove indirect function.
2220 (*ix86_gen_adjust_stack_and_probe): Ditto.
2221 (*ix86_gen_probe_stack_range): Ditto.
2222 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
2223 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
2224 (ix86_adjust_stack_and_probe_stack_clash): Use
2225 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
2226 (ix86_adjust_stack_and_probe): Ditto.
2227 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
2228 of ix86_gen_probe_stack_range.
2229 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
2230 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
2231 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
2232 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
2233 CODE_FOR_stack_protect_test_{si,di}.
2234 * config/i386/i386-options.c (ix86_option_override_internal):
2235 Do not initialize ix86_gen_allocate_stack_worker,
2236 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
2237
2238 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
2239
2240 * doc/invoke.texi (Link Options): Many editorial changes around
2241 -flinker-output.
2242
2243 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2244
2245 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
2246 pre-Solaris 11 referene and most Studio compiler details.
2247
2248 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
2249
2250 PR target/90530
2251 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
2252 DImode to SImode in floating-point registers on 64-bit target.
2253 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
2254 register_operand in xmpyu patterns.
2255
2256 2019-05-24 Jakub Jelinek <jakub@redhat.com>
2257
2258 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
2259 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
2260 OMP_CLAUSE__REDUCTEMP_.
2261 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
2262 OMP_CLAUSE__CONDTEMP_.
2263 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
2264 * tree-pretty-print.c (dump_omp_clause): Likewise.
2265 * tree-nested.c (convert_nonlocal_omp_clauses,
2266 convert_local_omp_clauses): Likewise.
2267 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
2268 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
2269 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
2270 on OMP_FOR.
2271 (gimplify_omp_for): Warn and disable conditional modifier from
2272 lastprivate on loop iterators.
2273 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
2274 member.
2275 * omp-general.c (omp_extract_for_data): Initialize it.
2276 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
2277 member.
2278 (delete_omp_context): Delete it.
2279 (lower_lastprivate_conditional_clauses): New function.
2280 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
2281 handle lastprivate conditional clauses.
2282 (lower_reduction_clauses): Add CLIST argument, emit it into
2283 the critical section if any.
2284 (lower_omp_sections): Adjust lower_lastprivate_clauses and
2285 lower_reduction_clauses callers.
2286 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
2287 to lower_lastprivate_clauses.
2288 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
2289 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
2290 clist into a critical section if not emitted there already by
2291 lower_reduction_clauses.
2292 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
2293 callers.
2294 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
2295 conditional variables.
2296 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
2297 clause is present.
2298 (expand_omp_for_generic, expand_omp_for_static_nochunk,
2299 expand_omp_for_static_chunk): Handle lastprivate conditional.
2300 (expand_omp_for): Handle fd.lastprivate_conditional like
2301 fd.have_reductemp.
2302
2303 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
2304
2305 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
2306 kernel does not exit cleanly.
2307 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
2308
2309 2019-05-24 Jason Merrill <jason@redhat.com>
2310
2311 Revert:
2312 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2313
2314 2019-05-24 Richard Biener <rguenther@suse.de>
2315
2316 PR testsuite/90607
2317 * tree-loop-distribution.c (struct partition): Add location
2318 member.
2319 (partition_alloc): Initialize all fields.
2320 (generate_memset_builtin): Use the location recorded in the
2321 partition for the generated call.
2322 (generate_memcpy_builtin): Likewise.
2323 (classify_partition): Record the location of a single store
2324 as location for the partition.
2325
2326 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
2327
2328 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
2329 for lo-part.
2330
2331 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
2332
2333 PR target/90588
2334 * common/config/aarch64/aarch64-common.c
2335 (aarch64_rewrite_selected_cpu): Change local temporary variable
2336 type from unsigned long to uint64_t.
2337 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
2338 aarch64_get_extension_string_for_isa_flags): Change declaration to
2339 match new definition by replacing unsigned long with uint64_t.
2340
2341 2019-05-24 Jakub Jelinek <jakub@redhat.com>
2342
2343 PR target/90568
2344 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
2345 gen_attr_type just once instead of 4-7 times. Formatting fixes.
2346 Handle stack_protect_test_<mode> codegen similarly to corresponding
2347 sub instruction.
2348
2349 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
2350
2351 * config/i386/darwin.h: Reject -mfentry*.
2352 * doc/sourcebuild.texi: Document mfentry target support.
2353
2354 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2355
2356 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
2357 Rename to rs6000_global_entry_point_prologue_needed_p. Return
2358 false for PC-relative functions.
2359 (rs6000_output_function_prologue): Change called function name to
2360 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
2361 name,1" for PC-relative functions.
2362 (rs6000_elf_declare_function_name): Change called function name to
2363 rs6000_global_entry_point_prologue_needed_p.
2364
2365 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
2366
2367 PR target/90552
2368 * config/i386/i386.c (gen_rtx_cost):
2369 Use ix86_tune_cost instead of ix86_cost.
2370
2371 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2372 Michael Meissner <meissner@linux.ibm.com>
2373 Segher Boessenkool <segher@kernel.crashing.org>
2374
2375 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
2376 OPTION_MASK_PCREL.
2377 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
2378 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
2379 (rs6000_fndecl_pcrel_p): Likewise.
2380 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
2381 error if -mpcrel is requested without -mcpu=future.
2382 (rs6000_opt_masks): Add entry for pcrel.
2383 (rs6000_fndecl_pcrel_p): New function.
2384 (rs6000_pcrel_p): Likewise.
2385 * config/rs6000/rs6000.opt (mpcrel): New option.
2386 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
2387
2388 2019-05-23 Jan Hubicka <jh@suse.cz>
2389 Martin Liska <mliska@suse.cz>
2390
2391 PR tree-optimization/90576
2392 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
2393 poly_int_tree_p.
2394 (aliasing_component_refs_p): Fix three way size compare conditional;
2395 give up earlier in case we can not decide on equivalence.
2396
2397 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
2398 Michael Meissner <meissner@linux.ibm.com>
2399 Segher Boessenkool <segher@kernel.crashing.org>
2400
2401 * config.gcc: Add future cpu.
2402 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
2403 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
2404 #define.
2405 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
2406 (RS6000_CPU): New instantiation for future cpu.
2407 * config/rs6000/rs6000-opts.h (enum processor_type): Add
2408 PROCESSOR_FUTURE.
2409 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
2410 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
2411 * config/rs6000/rs6000-tables.opt: Regenerate.
2412 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
2413 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
2414 (rs6000_machine_from_flags): Handle future cpu.
2415 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
2416 PROCESSOR_POWER9 for now.
2417 (rs6000_adjust_cost): Likewise.
2418 (rs6000_issue_rate): Likewise.
2419 (rs6000_register_move_cost): Likewise.
2420 (rs6000_opt_masks): Add entry for future.
2421 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
2422 (MASK_FUTURE): New #define.
2423 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
2424 * config/rs6000/rs6000.opt (mfuture): New target option.
2425 * doc/invoke.texi (mcpu): Add future cpu.
2426
2427 2019-05-23 Martin Liska <mliska@suse.cz>
2428
2429 PR c++/90587
2430 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
2431 operation points to a temporary (pointed via tree_to_wide_ref)
2432 that is out of scope after the &.
2433
2434 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
2435
2436 PR c++/90592
2437 * doc/extend.texi (Function Names): Add missing word.
2438
2439 2019-05-23 Richard Biener <rguenther@suse.de>
2440
2441 PR tree-optimization/88440
2442 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
2443 at -O[2s]+.
2444 * tree-loop-distribution.c (generate_memset_builtin): Fold the
2445 generated call.
2446 (generate_memcpy_builtin): Likewise.
2447 (distribute_loop): Pass in whether to only distribute patterns.
2448 (prepare_perfect_loop_nest): Also allow size optimization.
2449 (pass_loop_distribution::execute): When optimizing a loop
2450 nest for size allow pattern replacement.
2451
2452 2019-05-23 Jakub Jelinek <jakub@redhat.com>
2453
2454 PR target/90568
2455 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
2456 of xor.
2457
2458 2019-05-23 Martin Liska <mliska@suse.cz>
2459
2460 PR sanitizer/90570
2461 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
2462 expression similarly to gimplify_decl_expr.
2463
2464 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
2465
2466 * cse.c (cse_dump_path): s/dump_file/f.
2467
2468 2019-05-22 David Malcolm <dmalcolm@redhat.com>
2469
2470 PR c++/90462
2471 * diagnostic-format-json.cc: Include "selftest.h".
2472 (json_from_expanded_location): Only add "file" key for non-NULL
2473 file strings.
2474 (json_from_location_range): Don't add "start" and "finish"
2475 children if they are UNKNOWN_LOCATION.
2476 (selftest::test_unknown_location): New selftest.
2477 (selftest::test_bad_endpoints): New selftest.
2478 (selftest::diagnostic_format_json_cc_tests): New function.
2479 * json.cc (json::object::get): New function.
2480 (selftest::test_object_get): New selftest.
2481 (selftest::json_cc_tests): Call it.
2482 * json.h (json::object::get): New decl.
2483 * selftest-run-tests.c (selftest::run_tests): Call
2484 selftest::diagnostic_format_json_cc_tests.
2485 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
2486 decl.
2487
2488 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
2489 Andrew Stubbs <amd@codesourcery.com>
2490
2491 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
2492 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
2493 (kernel): Rename to...
2494 (main_kernel): ... this.
2495 (load_image): Load _init_array and _fini_array kernels.
2496 (run): Add argument for kernel to run.
2497 (main): Run init_array_kernel before main_kernel, and
2498 fini_array_kernel after.
2499 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
2500 amdgpu_hsa_kernel attribute on functions.
2501 (gcn_disable_constructors): Delete.
2502 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
2503 * config/gcn/crt0.c (size_t): Define.
2504 (_init_array, _fini_array): New.
2505 (__preinit_array_start, __preinit_array_end,
2506 __init_array_start, __init_array_end,
2507 __fini_array_start, __fini_array_end): Declare weak references.
2508
2509 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
2510
2511 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
2512
2513 2019-05-22 Jason Merrill <jason@redhat.com>
2514
2515 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
2516
2517 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
2518
2519 PR target/88483
2520 * config/i386/i386-options.c (ix86_init_machine_status): Set
2521 stack_frame_required to true.
2522 * config/i386/i386.c (ix86_get_frame_size): New function.
2523 (ix86_frame_pointer_required): Replace get_frame_size with
2524 ix86_get_frame_size.
2525 (ix86_compute_frame_layout): Likewise.
2526 (ix86_find_max_used_stack_alignment): Changed to void. Set
2527 stack_frame_required.
2528 (ix86_finalize_stack_frame_flags): Always call
2529 ix86_find_max_used_stack_alignment. Replace get_frame_size with
2530 ix86_get_frame_size.
2531 * config/i386/i386.h (machine_function): Add stack_frame_required.
2532
2533 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
2534
2535 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
2536
2537 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
2538
2539 * common/config/aarch64/aarch64-common.c
2540 (struct aarch64_option_extension, struct processor_name_to_arch,
2541 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
2542 aarch64_contains_opt,
2543 aarch64_get_extension_string_for_isa_flags): Change type of
2544 variables storing flags to uint64_t.
2545 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
2546 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
2547 * config/aarch64/aarch64.c (struct processor,
2548 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
2549 aarch64_validate_march, aarch64_override_options,
2550 aarch64_option_print, aarch64_handle_attr_isa_flags,
2551 aarch64_declare_function_name, aarch64_start_file): Make flag
2552 variables uint64_t.
2553 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
2554 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
2555 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
2556 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
2557 * config/aarch64/driver-aarch64.c
2558 (struct aarch64_arch_extension, struct aarch64_core_data,
2559 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
2560 flag variables uint64_t.
2561 * doc/invoke.texi: Add documentation for new arguments.
2562
2563 2019-05-22 Richard Biener <rguenther@suse.de>
2564
2565 * alias.c (ao_ref_from_mem): Move stack-slot sharing
2566 rewrite ...
2567 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
2568
2569 2019-05-22 Martin Liska <mliska@suse.cz>
2570
2571 PR lto/90500
2572 * doc/extend.texi: Document the change.
2573
2574 2019-05-22 Richard Biener <rguenther@suse.de>
2575
2576 PR tree-optimization/90450
2577 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
2578 (mem_ref_hasher::equal): Check it.
2579 (mem_ref_alloc): Initialize it.
2580 (gather_mem_refs_stmt): Set it.
2581
2582 2019-05-22 Richard Biener <rguenther@suse.de>
2583
2584 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
2585 Add ABS_EXPR.
2586 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
2587 as ABSU_EXPR.
2588
2589 2019-05-22 Alan Modra <amodra@gmail.com>
2590
2591 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
2592 (ASM_CPU_SPEC): Conditionally add -many.
2593 * config/rs6000/rs6000.c (rs6000_machine): New static var.
2594 (rs6000_machine_from_flags, emit_asm_machine): New functions..
2595 (rs6000_file_start): ..extracted from here, and modified to
2596 test all ISA bits.
2597 (rs6000_output_function_prologue): Emit .machine as necessary.
2598 * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
2599 power mnemonics.
2600 * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
2601 added by check_vect_support_and_set_flags.
2602 * testsuite/gcc.dg/vect/pr48765.c: Likewise.
2603 * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
2604
2605 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
2606
2607 PR middle-end/90553
2608 * ira-lives.c (process_bb_node_lives): Consider defs
2609 for a call insn to be die before the call, not after.
2610
2611 * function.c (assign_parm_setup_block): Raise alignment of
2612 stacked parameter only for STRICT_ALIGNMENT targets.
2613
2614 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2615
2616 * config/rs6000/constraints.md (define_register_constraint "wz"):
2617 Delete.
2618 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2619 RS6000_CONSTRAINT_wz.
2620 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2621 (rs6000_init_hard_regno_mode_ok): Adjust.
2622 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
2623 * doc/md.texi (Machine Constraints): Adjust.
2624
2625 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2626
2627 * config/rs6000/constraints.md (define_register_constraint "wl"):
2628 Delete.
2629 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2630 RS6000_CONSTRAINT_wl.
2631 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2632 (rs6000_init_hard_regno_mode_ok): Adjust.
2633 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
2634 * doc/md.texi (Machine Constraints): Adjust.
2635
2636 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2637
2638 * config/rs6000/constraints.md (define_register_constraint "wm"):
2639 Delete.
2640 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2641 RS6000_CONSTRAINT_wm.
2642 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2643 (rs6000_init_hard_regno_mode_ok): Adjust.
2644 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
2645 * doc/md.texi (Machine Constraints): Adjust.
2646
2647 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2648
2649 * config/rs6000/constraints.md (define_register_constraint "wk"):
2650 Delete.
2651 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2652 RS6000_CONSTRAINT_wk.
2653 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2654 (rs6000_init_hard_regno_mode_ok): Adjust.
2655 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
2656 * doc/md.texi (Machine Constraints): Adjust.
2657
2658 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2659
2660 * config/rs6000/constraints.md (define_register_constraint "wj"):
2661 Delete.
2662 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2663 RS6000_CONSTRAINT_wj.
2664 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2665 (rs6000_init_hard_regno_mode_ok): Adjust.
2666 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
2667 (VS_64dm): Delete.
2668 * config/rs6000/vsx.md: Ditto.
2669 * doc/md.texi (Machine Constraints): Adjust.
2670
2671 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
2672
2673 * config/rs6000/constraints.md (define_register_constraint "wh"):
2674 Delete.
2675 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2676 RS6000_CONSTRAINT_wh.
2677 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2678 (rs6000_init_hard_regno_mode_ok): Adjust.
2679 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
2680 * doc/md.texi (Machine Constraints): Adjust.
2681
2682 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2683
2684 PR target/90547
2685 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
2686 Avoid calling gen_lowpart with CONST operand.
2687
2688 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
2689
2690 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
2691 field template_last_to_copy.
2692 (ssa_create_duplicates): Set it, and use it. Attempt to
2693 preserve more debug stmts.
2694
2695 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2696
2697 * config/i386/sse.md (VF1_AVX2): New mode iterator.
2698 (signbit<mode>2): New expander
2699
2700 2019-05-21 James Clarke <jrtc27@jrtc27.com>
2701
2702 PR bootstrap/87338
2703 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
2704 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
2705
2706 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
2707
2708 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
2709 %ebx and %ecx bafore calling cpuid with leaf 1 or
2710 non-constant leaf argument.
2711
2712 2019-05-21 Alan Modra <amodra@gmail.com>
2713
2714 PR target/90545
2715 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
2716 power9 direct move cost.
2717 * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
2718 Correct comments and rename functions to suit parameters.
2719
2720 2019-05-21 Richard Biener <rguenther@suse.de>
2721
2722 PR middle-end/90510
2723 * fold-const.c (fold_read_from_vector): New function.
2724 * fold-const.h (fold_read_from_vector): Declare.
2725 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
2726 single-element insert permutations. Canonicalize selector
2727 further and fix issue with last commit.
2728
2729 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
2730
2731 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
2732 parameter with default value false to declaration.
2733 (split_edges_for_insertion): New inline function. Wrapper for
2734 split_critical_edges with for_edge_insertion_p = true.
2735 * tree-cfg.c (split_critical_edges): Don't split non-critical
2736 edges if for_edge_insertion_p is false. Fix whitespace.
2737 * tree-ssa-pre.c (pass_pre::execute): Call
2738 split_edges_for_insertion instead of split_critical_edges.
2739 * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
2740 * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
2741 (pass_data_sink_code): Update function name in the comment.
2742
2743 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
2744
2745 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
2746 around is_value_included_in that knows how to handle BIT_AND_EXPR.
2747 (is_pred_expr_subset_of): Use the new function. Handle more cases where
2748 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
2749 positives.
2750
2751 2019-05-21 Martin Liska <mliska@suse.cz>
2752
2753 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
2754 an extra newline.
2755 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
2756 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
2757 vec_lvsr.
2758 * config/rs6000/rs6000.c (rs6000_option_override_internal):
2759 Quote a C type.
2760 (rs6000_function_arg): Likewise.
2761 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
2762 (rs6000_expand_ternop_builtin): Use interval syntax.
2763 (get_element_number): Likewise.
2764 (altivec_expand_builtin): Likewise.
2765 (rs6000_get_function_versions_dispatcher): Quote target_clones.
2766
2767 Fix test-suite.
2768
2769 2019-05-20 Jakub Jelinek <jakub@redhat.com>
2770
2771 PR c++/59813
2772 PR target/90418
2773 * function.h (struct function): Add calls_eh_return member.
2774 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
2775 gimplifying __builtin_eh_return call.
2776 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
2777 to cfun.
2778 (expand_call_inline): Or in src_cfun->calls_eh_return into
2779 dst_cfun->calls_eh_return.
2780 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
2781 cfun->calls_eh_return.
2782 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
2783 * lto-streamer-out.c (output_struct_function_base): Write
2784 calls_eh_return.
2785
2786 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
2787
2788 PR rtl-optimization/43147
2789 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
2790 IX86_BUILTIN_SHUFPD.
2791
2792 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
2793
2794 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
2795 (refs_may_alias_p_1): ... here; update stats.
2796 (refs_may_alias_p): Do not update stats here.
2797
2798 2019-05-20 Richard Biener <rguenther@suse.de>
2799
2800 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
2801 doesn't produce pointers.
2802 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
2803 the first operand points to.
2804
2805 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
2806
2807 * tree-ssa-alias.c (compare_sizes): New function.
2808 (sompare_type_sizes): New function
2809 (aliasing_component_refs_p): Use it.
2810 (indirect_ref_may_alias_decl_p): Likewise.
2811
2812 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2813
2814 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
2815
2816 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
2817
2818 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
2819 (LIBLSAN_EARLY_SPEC): Likewise.
2820 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
2821
2822 2019-05-20 Martin Liska <mliska@suse.cz>
2823
2824 * config/i386/i386.c (ix86_libc_has_fast_function):
2825 Add ATTRIBUTE_UNUSED for the argument.
2826
2827 2019-05-20 Richard Biener <rguenther@suse.de>
2828
2829 * gimple-match-head.c: Include vec-perm-indices.h.
2830 * generic-match-head.c: Likewise.
2831 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
2832 is included.
2833 * fold-const.c (fold_vec_perm): Export.
2834 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
2835 (match.pd): ...here.
2836
2837 2019-05-20 Jakub Jelinek <jakub@redhat.com>
2838
2839 * cfgloop.h (struct loop): Add simdlen member.
2840 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
2841 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
2842 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
2843 as new argument to autovectorize_vector_sizes target hook. If
2844 loop->simdlen, pick up vector size where the vectorization factor
2845 is equal to loop->simd, and if there is none, fall back to the first
2846 successful one.
2847 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
2848 caller.
2849 * omp-low.c (omp_clause_aligned_alignment): Likewise.
2850 * omp-general.c (omp_max_vf): Likewise.
2851 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
2852 * tree-vect-slp.c (vect_slp_bb): Likewise.
2853 * target.def (autovectorize_vector_sizes): Add ALL argument and
2854 document it.
2855 * doc/tm.texi: Adjust documentation.
2856 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
2857 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
2858 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
2859 bool argument.
2860 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
2861 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
2862 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
2863 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
2864 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
2865 preferred vector size is not 512-bit or 256-bit, just put those
2866 unpreferred ones last.
2867
2868 2019-05-20 Martin Liska <mliska@suse.cz>
2869
2870 * targhooks.c (default_libc_has_fast_function): New function.
2871 * targhooks.h (default_libc_has_fast_function): Likewise.
2872
2873 2019-05-20 Martin Liska <mliska@suse.cz>
2874
2875 PR middle-end/90263
2876 * builtins.c (expand_builtin_memory_copy_args): When having a
2877 target with fast mempcpy implementation do now use memcpy.
2878 * config/i386/i386.c (ix86_libc_has_fast_function): New.
2879 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
2880 * doc/tm.texi: Likewise.
2881 * doc/tm.texi.in: Likewise.
2882 * target.def:
2883 * expr.c (emit_block_move_hints): Add 2 new arguments.
2884 * expr.h (emit_block_move_hints): Bail out when libcall
2885 to memcpy would be used.
2886
2887 2019-05-20 Martin Liska <mliska@suse.cz>
2888
2889 * profile-count.c: Add vertical spacing in order
2890 to separate functions.
2891 * profile-count.h: Likewise.
2892
2893 2019-05-20 Martin Liska <mliska@suse.cz>
2894
2895 * profile-count.h: Do not use full qualified
2896 names if possible.
2897 * profile-count.c (profile_count::to_frequency): Likewise.
2898
2899 2019-05-20 Martin Liska <mliska@suse.cz>
2900
2901 * profile-count.h (enum profile_quality): Use capital letters
2902 for enum value names. Use the adjusted names.
2903 * profile-count.c: Use the adjusted names.
2904
2905 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2906
2907 * config/rs6000/constraints.md (define_register_constraint "wH"):
2908 Delete.
2909 (define_register_constraint "wI"): Delete.
2910 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2911 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
2912 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2913 (rs6000_init_hard_regno_mode_ok): Adjust.
2914 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
2915 resp. "d", or with "wa" as appropriate, all with "p8v".
2916 * config/rs6000/vsx.md: Ditto.
2917 * doc/md.texi (Machine Constraints): Adjust.
2918
2919 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2920
2921 * config/rs6000/constraints.md (define_register_constraint "wy"):
2922 Delete.
2923 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2924 RS6000_CONSTRAINT_wy.
2925 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2926 (rs6000_init_hard_regno_mode_ok): Adjust.
2927 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
2928 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
2929 (define_mode_attr Fisa): New.
2930 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
2931 * doc/md.texi (Machine Constraints): Adjust.
2932
2933 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2934
2935 * config/rs6000/constraints.md (define_register_constraint "wu"):
2936 Delete.
2937 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2938 RS6000_CONSTRAINT_wu.
2939 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2940 (rs6000_init_hard_regno_mode_ok): Adjust.
2941 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
2942 both with "p8v".
2943 (define_mode_attr Fa): Delete.
2944 * config/rs6000/vsx.md: Ditto.
2945 * doc/md.texi (Machine Constraints): Adjust.
2946
2947 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2948
2949 * config/rs6000/constraints.md (define_register_constraint "wJ"):
2950 Delete.
2951 (define_register_constraint "wK"): Delete.
2952 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2953 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
2954 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2955 (rs6000_init_hard_regno_mode_ok): Adjust.
2956 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
2957 Replace "wK" constraint by "wH" with "p9v".
2958 * config/rs6000/vsx.md: Ditto.
2959 * doc/md.texi (Machine Constraints): Adjust.
2960
2961 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2962
2963 * config/rs6000/constraints.md (define_register_constraint "wb"):
2964 Delete.
2965 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2966 RS6000_CONSTRAINT_wb.
2967 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2968 (rs6000_init_hard_regno_mode_ok): Adjust.
2969 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
2970 * config/rs6000/vsx.md: Ditto.
2971 * doc/md.texi (Machine Constraints): Adjust.
2972
2973 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
2974
2975 * config/rs6000/constraints.md (define_register_constraint "wo"):
2976 Delete.
2977 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2978 RS6000_CONSTRAINT_wo.
2979 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2980 (rs6000_init_hard_regno_mode_ok): Adjust.
2981 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
2982 * config/rs6000/altivec.md: Ditto.
2983 * doc/md.texi (Machine Constraints): Adjust.
2984
2985 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
2986
2987 * config/darwin-c.c (darwin_register_objc_includes): Do not
2988 prepend the sysroot when building gnu-runtime header search
2989 paths.
2990
2991 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
2992
2993 * config/darwin.c (darwin_file_end): Use switch_to_section ()
2994 instead of direct output of the asm.
2995
2996 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
2997
2998 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
2999 argument to be type bool (was int before).
3000 (rs6000_emit_epilogue): Simplify some code. Declare some variables
3001 at first use. Use type bool for some variables. Fix a theoretical
3002 eh_return bug for svr4.
3003
3004 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
3005
3006 * config/rs6000/rs6000.md (isa): New attribute.
3007 (enabled): New attribute.
3008
3009 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
3010
3011 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
3012 assemble_start_function and assemble_end_function.
3013
3014 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
3015
3016 PR middle-end/89433
3017 * omp-general.c (oacc_verify_routine_clauses): Change formal
3018 parameters. Add checking if already marked with an OpenACC
3019 'routine' directive. Adjust all users.
3020
3021 PR middle-end/89433
3022 * omp-general.c (oacc_build_routine_dims): Move some of its
3023 processing into...
3024 (oacc_verify_routine_clauses): ... this new function.
3025 * omp-general.h (oacc_verify_routine_clauses): New prototype.
3026
3027 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
3028
3029 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
3030 formating of picbase labels to match other ports.
3031
3032 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
3033
3034 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
3035 in the generated code.
3036
3037 2019-05-16 Martin Sebor <msebor@redhat.com>
3038
3039 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
3040 identifiers, keywords, operators, and types in diagnostics. Correct
3041 quoting, spelling, and sentence capitalization issues.
3042 (expand_builtin_atomic_is_lock_free): Same.
3043 (fold_builtin_next_arg): Same.
3044 * cfgexpand.c (expand_one_var): Same.
3045 (tree_conflicts_with_clobbers_p): Same.
3046 (expand_asm_stmt): Same.
3047 (verify_loop_structure): Same.
3048 * cgraphunit.c (process_function_and_variable_attributes): Same.
3049 * collect-utils.c (collect_execute): Same.
3050 * collect2.c (maybe_run_lto_and_relink): Same.
3051 (is_lto_object_file): Same.
3052 (scan_prog_file): Same.
3053 * convert.c (convert_to_real_1): Same.
3054 * dwarf2out.c (dwarf2out_begin_prologue): Same.
3055 * except.c (verify_eh_tree): Same.
3056 * gcc.c (execute): Same.
3057 (eval_spec_function): Same.
3058 (run_attempt): Same.
3059 (driver::set_up_specs): Same.
3060 (compare_debug_auxbase_opt_spec_function): Same.
3061 * gcov-tool.c (unlink_gcda_file): Same.
3062 (do_merge): Same.
3063 (do_rewrite): Same.
3064 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
3065 * gimplify.c (gimplify_asm_expr): Same.
3066 (gimplify_adjust_omp_clauses): Same.
3067 * hsa-gen.c (gen_hsa_addr_insns): Same.
3068 (gen_hsa_insns_for_load): Same.
3069 (gen_hsa_cmp_insn_from_gimple): Same.
3070 (gen_hsa_insns_for_operation_assignment): Same.
3071 (gen_get_level): Same.
3072 (gen_hsa_alloca): Same.
3073 (omp_simple_builtin::generate): Same.
3074 (gen_hsa_atomic_for_builtin): Same.
3075 (gen_hsa_insns_for_call): Same.
3076 * input.c (dump_location_info): Same.
3077 * ipa-devirt.c (compare_virtual_tables): Same.
3078 * ira.c (ira_setup_eliminable_regset): Same.
3079 * lra-assigns.c (lra_assign): Same.
3080 * lra-constraints.c (lra_constraints): Same.
3081 * lto-streamer-in.c (lto_input_mode_table): Same.
3082 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
3083 (merge_and_complain): Same.
3084 (compile_offload_image): Same.
3085 (compile_images_for_offload_targets): Same.
3086 (debug_objcopy): Same.
3087 (run_gcc): Same.
3088 (main): Same.
3089 * opts.c (print_specific_help): Same.
3090 (parse_no_sanitize_attribute): Same.
3091 (print_help): Same.
3092 (handle_param): Same.
3093 * plugin.c (add_new_plugin): Same.
3094 (parse_plugin_arg_opt): Same.
3095 (try_init_one_plugin): Same.
3096 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
3097 operators, and types in diagnostics. Correct quoting and spelling
3098 issues.
3099 * read-rtl-function.c (parse_edge_flag_token): Same.
3100 (function_reader::parse_enum_value): Same.
3101 * reg-stack.c (check_asm_stack_operands): Same.
3102 * regcprop.c (validate_value_data): Same.
3103 * sched-rgn.c (make_pass_sched_fusion): Same.
3104 * stmt.c (check_unique_operand_names): Same.
3105 * targhooks.c (default_target_option_pragma_parse): Same.
3106 * tlink.c (recompile_files): Same.
3107 * toplev.c (process_options): Same.
3108 (do_compile): Same.
3109 * trans-mem.c (diagnose_tm_1): Same.
3110 (ipa_tm_scan_irr_block): Same.
3111 (ipa_tm_diagnose_transaction): Same.
3112 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
3113 format a tree code name in a diagnostic.
3114 (verify_types_in_gimple_min_lval): Same.
3115 (verify_types_in_gimple_reference): Same.
3116 (verify_gimple_call): Same.
3117 (verify_gimple_assign_unary): Same.
3118 (verify_gimple_assign_binary): Same.
3119 (verify_gimple_assign_ternary): Same.
3120 (verify_gimple_assign_single): Same.
3121 (verify_gimple_switch): Same.
3122 (verify_gimple_label): Same.
3123 (verify_gimple_phi): Same.
3124 (verify_gimple_in_seq): Same.
3125 (verify_eh_throw_stmt_node): Same.
3126 (collect_subblocks): Same.
3127 (gimple_verify_flow_info): Same.
3128 (do_warn_unused_result): Same.
3129 * tree-inline.c (expand_call_inline): Same.
3130 * tree-into-ssa.c (update_ssa): Same.
3131 * tree.c (tree_int_cst_elt_check_failed): Same.
3132 (tree_vec_elt_check_failed): Same.
3133 (omp_clause_operand_check_failed): Same.
3134 (verify_type_variant): Same.
3135 (verify_type): Same.
3136 * value-prof.c (verify_histograms): Same.
3137 * varasm.c (assemble_start_function): Same.
3138
3139 2019-05-16 Martin Sebor <msebor@redhat.com>
3140
3141 * config/i386/i386-expand.c (get_element_number): Quote keywords
3142 and other internal names in diagnostics. Adjust other diagnostic
3143 formatting issues noted by -Wformat-diag.
3144 * config/i386/i386-features.c
3145 (ix86_mangle_function_version_assembler_name): Same.
3146 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
3147 * config/i386/i386.c (ix86_function_type_abi): Same.
3148 (ix86_function_ms_hook_prologue): Same.
3149 (classify_argument): Same.
3150 (ix86_expand_prologue): Same.
3151 (ix86_md_asm_adjust): Same.
3152 (ix86_memmodel_check): Same.
3153
3154 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
3155
3156 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
3157 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
3158 and fpxx modes.
3159
3160 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
3161
3162 PR target/90497
3163 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
3164 intrinsics without SSE/SSE2/SSSE3.
3165 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
3166 check.
3167 (*mmx_uavgv8qi3): Likewise.
3168
3169 2019-05-17 Richard Biener <rguenther@suse.de>
3170
3171 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
3172 VEC_PERM_EXPR as __VEC_PERM with -gimple.
3173
3174 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
3175
3176 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
3177 vec_sldw insn pattern.
3178
3179 2019-05-17 Richard Biener <rguenther@suse.de>
3180
3181 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
3182
3183 2019-05-17 Martin Liska <mliska@suse.cz>
3184
3185 PR driver/90496
3186 * toplev.c (output_stack_usage): With LTO and sanitizer it
3187 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
3188 has no file location.
3189
3190 2019-05-16 Jakub Jelinek <jakub@redhat.com>
3191
3192 PR c++/90484
3193 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
3194 sz0 is equal to sz1, instead return false in that case.
3195
3196 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
3197 has non-constant expression, force sctx.lane and use two
3198 argument IFN_GOMP_SIMD_LANE instead of single argument.
3199 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
3200 two argument IFN_GOMP_SIMD_LANE without lhs.
3201 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
3202 member.
3203 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
3204 Define.
3205 (LOOP_REQUIRES_VERSIONING): Or in
3206 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
3207 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
3208 simd_if_cond.
3209 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
3210 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
3211 from simd if clause if needed.
3212
3213 2019-05-16 Richard Biener <rguenther@suse.de>
3214
3215 * tree-affine.c (expr_to_aff_combination): New function split
3216 out from...
3217 (tree_to_aff_combination): ... here.
3218 (aff_combination_expand): Avoid building a GENERIC tree.
3219
3220 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
3221
3222 * cgraphunit.c (cgraph_node::expand_thunk): Remove
3223 assemble_start_function and assemble_end_function calls.
3224 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
3225 assemble_start_function and assemble_end_function.
3226 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
3227 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
3228 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
3229 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
3230 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
3231 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
3232 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
3233 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
3234 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
3235 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3236 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
3237 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
3238 Likewise.
3239 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
3240 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
3241 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
3242 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
3243 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
3244 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
3245 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
3246 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
3247 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
3248 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
3249 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3250 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3251 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
3252 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
3253 Likewise.
3254 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
3255 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
3256 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
3257
3258 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
3259
3260 * tree-ssa-alias.c (alias_stats): Add
3261 aliasing_component_refs_p_may_alias and
3262 aliasing_component_refs_p_no_alias.
3263 (dump_alias_stats): Print aliasing_component_refs_p stats.
3264 (aliasing_component_refs_p): Update stats.
3265
3266 2019-05-16 Martin Liska <mliska@suse.cz>
3267
3268 PR lto/90500
3269 * multiple_target.c (expand_target_clones): Do not allow
3270 target_clones being used with a symbol that is an alias.
3271
3272 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
3273
3274 PR tree-optimization/90394
3275 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
3276 positives rather than ICE for cases where (code2 == NE_EXPR
3277 && code1 == BIT_AND_EXPR).
3278
3279 2019-05-16 Jakub Jelinek <jakub@redhat.com>
3280
3281 PR fortran/90329
3282 * tree-core.h (struct tree_decl_common): Document
3283 decl_nonshareable_flag for PARM_DECLs.
3284 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
3285 * calls.c (expand_call): Don't try tail call if caller
3286 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
3287 passed on the stack and callee needs to pass any arguments on the
3288 stack.
3289 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
3290 else if instead of series of mutually exclusive ifs. Handle
3291 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
3292 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
3293
3294 * lto-streamer.h (LTO_major_version): Bump to 9.
3295
3296 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
3297
3298 PR tree-optimization/90106
3299 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
3300 new parameter as new internal function call, also move it to new
3301 basic block.
3302 (use_internal_fn): Pass internal function call to
3303 shrink_wrap_one_built_in_call_with_conds.
3304
3305 2019-05-15 Jakub Jelinek <jakub@redhat.com>
3306
3307 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
3308 max_vf to 1.
3309 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
3310 safelen_int and set loop->dont_vectorize.
3311
3312 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3313
3314 PR target/89021
3315 * config/i386/i386-builtin.def: Enable MMX intrinsics with
3316 SSE/SSE2/SSSE3.
3317 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
3318 Likewise.
3319 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
3320 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
3321 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
3322 is defined.
3323
3324 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3325
3326 PR target/89021
3327 * config/i386/mmx.md (*vec_dupv2sf): Changed to
3328 define_insn_and_split to support SSE emulation.
3329 (*vec_extractv2sf_0): Likewise.
3330 (*vec_extractv2sf_1): Likewise.
3331 (*vec_extractv2si_0): Likewise.
3332 (*vec_extractv2si_1): Likewise.
3333 (*vec_extractv2si_zext_mem): Likewise.
3334 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
3335 (vec_extractv2sf_1 splitter): Likewise.
3336 (vec_extractv2sfsf): Likewise.
3337 (vec_setv2si): Likewise.
3338 (vec_extractv2si_1 splitter): Likewise.
3339 (vec_extractv2sisi): Likewise.
3340 (vec_setv4hi): Likewise.
3341 (vec_extractv4hihi): Likewise.
3342 (vec_setv8qi): Likewise.
3343 (vec_extractv8qiqi): Likewise.
3344 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
3345 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
3346 (vec_extractv2sisi): Likewise.
3347 (vec_extractv4hihi): Likewise.
3348 (vec_extractv8qiqi): Likewise.
3349 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
3350 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
3351 (vec_initv2sisi): Likewise.
3352 (vec_initv4hihi): Likewise.
3353 (vec_initv8qiqi): Likewise.
3354 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
3355 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
3356 (vec_setv4hi): Likewise.
3357 (vec_setv8qi): Likewise.
3358
3359 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3360
3361 PR target/89021
3362 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
3363 TARGET_MMX_WITH_SSE.
3364 (MMXMODE:*mov<mode>_internal): Likewise.
3365 (MMXMODE:movmisalign<mode>): Likewise.
3366
3367 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
3368
3369 PR target/89021
3370 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
3371 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
3372 (sse2_cvtpd2pi): Ditto.
3373 (sse2_cvttpd2pi): Ditto.
3374 (*vec_concatv2sf_sse4_1): Ditto.
3375 (*vec_concatv2sf_sse): Ditto.
3376 (*vec_concatv2si_sse4_1): Ditto.
3377 (*vec_concatv2si): Ditto.
3378 (*vec_concatv4si_0): Ditto.
3379 (*vec_concatv2di_0): Ditto.
3380
3381 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3382
3383 PR target/89021
3384 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
3385
3386 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3387
3388 PR target/89021
3389 * config/i386/sse.md (ssse3_palignrdi): Changed to
3390 define_insn_and_split to support SSE emulation.
3391
3392 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3393
3394 PR target/89021
3395 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
3396
3397 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3398
3399 PR target/89021
3400 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
3401 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3402 SSE emulation.
3403
3404 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3405
3406 PR target/89021
3407 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
3408 or TARGET_MMX_WITH_SSE.
3409 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
3410
3411 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3412
3413 PR target/89021
3414 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
3415
3416 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3417
3418 PR target/89021
3419 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
3420 Changed to define_insn_and_split to support SSE emulation.
3421
3422 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3423
3424 PR target/89021
3425 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
3426 Changed to define_insn_and_split to support SSE emulation.
3427
3428 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3429
3430 PR target/89021
3431 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
3432 (*mmx_<emms>): This.
3433 (mmx_<emms>): New expander.
3434
3435 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3436
3437 PR target/89021
3438 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
3439 support.
3440 (*sse2_umulv1siv1di3): Add SSE2 emulation.
3441
3442 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3443
3444 PR target/89021
3445 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
3446
3447 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3448
3449 PR target/89021
3450 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
3451
3452 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3453
3454 PR target/89021
3455 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
3456 TARGET_MMX_WITH_SSE.
3457 (*mmx_uavgv4hi3): Add SSE emulation.
3458
3459 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3460
3461 PR target/89021
3462 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
3463 and TARGET_MMX_WITH_SSE.
3464 (*mmx_uavgv8qi3): Add SSE emulation.
3465
3466 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3467
3468 PR target/89021
3469 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
3470 maskmovdqu for __MMX_WITH_SSE__.
3471
3472 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3473
3474 PR target/89021
3475 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
3476 TARGET_MMX and TARGET_MMX_WITH_SSE.
3477 (*mmx_umulv4hi3_highpart): Add SSE emulation.
3478
3479 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3480
3481 PR target/89021
3482 * config/i386/mmx.md (mmx_pmovmskb): Changed to
3483 define_insn_and_split to support SSE emulation.
3484
3485 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3486
3487 PR target/89021
3488 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
3489 and TARGET_MMX_WITH_SSE.
3490 (mmx_<code>v8qi3): Likewise.
3491 (smaxmin:<code>v4hi3): New.
3492 (umaxmin:<code>v8qi3): Likewise.
3493 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
3494 (umaxmin:*mmx_<code>v8qi3): Likewise.
3495
3496 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3497
3498 PR target/89021
3499 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
3500 TARGET_MMX_WITH_SSE.
3501 (*mmx_pinsrw): Add SSE emulation.
3502
3503 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3504
3505 PR target/89021
3506 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
3507
3508 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3509
3510 PR target/89021
3511 * config/i386/sse.md (sse_cvtpi2ps): Changed to
3512 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
3513 SSE emulation.
3514
3515 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3516
3517 PR target/89021
3518 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
3519 (sse_cvttps2pi): Likewise.
3520
3521 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3522
3523 PR target/89021
3524 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
3525 TARGET_MMX_WITH_SSE.
3526 (mmx_pshufw_1): Add SSE emulation.
3527 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
3528 TARGET_MMX_WITH_SSE to support SSE emulation.
3529
3530 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3531
3532 PR target/89021
3533 * config/i386/constraints.md (Yw): New constraint.
3534 * config/i386/mmx.md (*vec_dupv2si): Changed to
3535 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
3536 support SSE emulation.
3537
3538 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3539
3540 PR target/89021
3541 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
3542 TARGET_MMX_WITH_SSE.
3543 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
3544 support.
3545 (mmx_gt<mode>3): Likewise.
3546
3547 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3548
3549 PR target/89021
3550 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
3551 TARGET_MMX_WITH_SSE. Add SSE support.
3552
3553 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3554
3555 PR target/89021
3556 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
3557 TARGET_MMX_WITH_SSE.
3558 (any_logic:<code><mode>3): New.
3559 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
3560 Add SSE support.
3561
3562 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3563
3564 PR target/89021
3565 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
3566 TARGET_MMX_WITH_SSE. Add SSE emulation.
3567 (mmx_<shift_insn><mode>3): Likewise.
3568 (ashr<mode>3): New.
3569 (<shift_insn><mode>3): Likewise.
3570
3571 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3572
3573 PR target/89021
3574 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
3575 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
3576
3577 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3578
3579 PR target/89021
3580 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
3581 TARGET_MMX_WITH_SSE.
3582 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
3583 SSE support.
3584
3585 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3586
3587 PR target/89021
3588 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
3589 TARGET_MMX_WITH_SSE.
3590 (mulv4hi3): New.
3591 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
3592 support.
3593
3594 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3595
3596 PR target/89021
3597 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
3598 (plusminus:mmx_<plusminus_insn><mode>3): Check
3599 TARGET_MMX_WITH_SSE.
3600 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
3601 (<plusminus_insn><mode>3): New.
3602 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
3603 (*mmx_<plusminus_insn><mode>3): Likewise.
3604
3605 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3606
3607 PR target/89021
3608 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
3609 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
3610 prototype.
3611 * config/i386/mmx.m (mmx_punpckhbw): Changed to
3612 define_insn_and_split to support SSE emulation.
3613 (mmx_punpcklbw): Likewise.
3614 (mmx_punpckhwd): Likewise.
3615 (mmx_punpcklwd): Likewise.
3616 (mmx_punpckhdq): Likewise.
3617 (mmx_punpckldq): Likewise.
3618
3619 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3620 Uros Bizjak <ubizjak@gmail.com>
3621
3622 PR target/89021
3623 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
3624 New function.
3625 (ix86_split_mmx_pack): Likewise.
3626 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
3627 New prototype.
3628 (ix86_split_mmx_pack): Likewise.
3629 * config/i386/i386.md (mmx_isa): New.
3630 (enabled): Also check mmx_isa.
3631 * config/i386/mmx.md (any_s_truncate): New code iterator.
3632 (s_trunsuffix): New code attr.
3633 (mmx_packsswb): Removed.
3634 (mmx_packssdw): Likewise.
3635 (mmx_packuswb): Likewise.
3636 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
3637 MMX packsswb/packuswb with SSE2.
3638 (mmx_packssdw): Likewise.
3639 * config/i386/predicates.md (register_mmxmem_operand): New.
3640
3641 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
3642
3643 PR target/89021
3644 * config/i386/i386-c.c (ix86_target_macros_internal): Define
3645 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
3646 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
3647 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
3648 (ix86_vector_mode_supported_p): Likewise.
3649 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
3650
3651 2019-05-15 Martin Liska <mliska@suse.cz>
3652
3653 PR middle-end/90478
3654 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
3655 Check for overflow.
3656
3657 2019-05-15 Richard Biener <rguenther@suse.de>
3658
3659 * tree-into-ssa.c (pass_build_ssa::execute): Run
3660 update_address_taken before going into SSA.
3661
3662 2019-05-15 Richard Biener <rguenther@suse.de>
3663
3664 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
3665 as __BIT_FIELD_REF with type with -gimple.
3666
3667 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
3668
3669 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
3670 semantically equivalent branches (left over after prior refactorings).
3671
3672 2019-05-15 Richard Biener <rguenther@suse.de>
3673
3674 PR tree-optimization/88828
3675 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
3676 bogus check.
3677
3678 2019-05-14 Richard Biener <rguenther@suse.de>
3679
3680 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
3681 as __VIEW_CONVERT with -gimple.
3682
3683 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
3684
3685 PR target/82920
3686 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
3687 Darwin.
3688
3689 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
3690
3691 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
3692 define_split to become a define_insn_and_split.
3693
3694 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
3695
3696 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
3697 arguments.
3698 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
3699 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
3700 (sibcall_epilogue): Adjust.
3701 (epilogue): Adjust.
3702
3703 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3704
3705 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
3706 to unsupported ones.
3707 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
3708 * config.host: Likewise.
3709 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
3710 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
3711 __svr4__]: Remove "brand" fallback.
3712 [!KSTAT_DATA_STRING]: Remove.
3713 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
3714 to *-*-solaris2*.
3715 (comdat_group): Likewise.
3716 (set_have_as_tls): Likewise.
3717 (gcc_cv_target_dl_iterate_phdr): Likewise.
3718 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
3719 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
3720 * configure: Regenerate.
3721 * doc/install.texi: Simplify Solaris target triplets.
3722 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
3723 (Specific, *-*-solaris2*): Document Solaris 10 removal.
3724 Remove Solaris 10 references.
3725 Remove obsolete Solaris bug reference.
3726 (Specific, sparc-sun-solaris2.10): Remove.
3727
3728 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
3729
3730 * config/i386/i386.md (any_div): New code iterator.
3731 (paired_mod): New code attribute.
3732 (sgnprefix): Handle DIV and UDIV RTXes.
3733 (u): Ditto.
3734 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
3735 and udivmod<mode>4 patterns using any_div code iterator.
3736 (divmod splitters): Macroize splitters using any_div code iterator.
3737 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
3738 (*udivmodsi4_pow2_zext_2): Ditto.
3739 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
3740 and *udivmod<mode>4_noext patterns using any_div code iterator.
3741 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
3742 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
3743 patterns using any_div code iterator.
3744 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
3745 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
3746 patterns using any_div code iterator.
3747 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
3748 udivmodhiqi3 patterns using any_extend code iterator.
3749
3750 2019-05-14 Richard Biener <rguenther@suse.de>
3751 H.J. Lu <hongjiu.lu@intel.com>
3752
3753 PR tree-optimization/88828
3754 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
3755 permuting in a single non-constant element not extracted
3756 from a vector.
3757
3758 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
3759
3760 * internal-fn.def (SIGNBIT): New.
3761 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
3762 defined.
3763 (signbitv4sf2): Likewise.
3764
3765 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
3766
3767 PR target/90357
3768 * config/mips/mips.c (mips_split_move): Skip forward SRC into
3769 next insn when the SRC reg is dead.
3770
3771 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
3772
3773 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
3774 (alloc_cand_and_find_basis): Ditto.
3775 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
3776 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
3777 (create_add_imm_cand, slsr_process_cast): Ditto.
3778 (slsr_process_copy, replace_mult_candidate): Ditto.
3779 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
3780 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
3781 (pass_strength_reduction::execute): Init the first NULL element.
3782
3783 2019-05-13 Nathan Sidwell <nathan@acm.org>
3784
3785 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
3786 (run_attempt): Reformat line break.
3787
3788 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
3789
3790 PR target/90418
3791 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
3792 data registers in sibcall epilogues.
3793 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
3794
3795 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
3796
3797 PR target/89221
3798 * configure.ac (--enable-frame-pointer):
3799 Disable by default for cygwin and mingw.
3800 * configure: Regenerate.
3801
3802 2019-05-13 Nathan Sidwell <nathan@acm.org>
3803
3804 * dwarf2out.c (breakout_comdat_types): Move comment to correct
3805 piece of code.
3806 (const_ok_for_output_1): Balance parens around #if/#else/#endif
3807 (gen_member_die): Move abstract origin check earlier. Only VARs
3808 can be static_inline_p. Simplify splicing control flow.
3809
3810 2019-05-13 Richard Biener <rguenther@suse.de>
3811
3812 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
3813 VIEW_CONVERT_EXPR.
3814 (vect_build_slp_tree_1): Likewise.
3815
3816 2019-05-13 Richard Biener <rguenther@suse.de>
3817
3818 PR tree-optimization/90402
3819 * tree-if-conv.c (tree_if_conversion): Value number only
3820 the loop body by making the latch an exit of the region
3821 as well.
3822 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
3823 processing PHIs.
3824 (do_rpo_vn): Deal with multiple edges into the entry block
3825 that are not backedges inside the region by skipping PHIs
3826 of the entry block.
3827
3828 2019-05-13 Richard Biener <rguenther@suse.de>
3829
3830 PR tree-optimization/90316
3831 * tree-ssa-pre.c (insert_aux): Fold into ...
3832 (insert): ... this function. Use a RPO walk to reduce the
3833 number of required iterations.
3834
3835 2019-05-13 Martin Liska <mliska@suse.cz>
3836
3837 PR tree-optimization/90416
3838 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
3839 string instead of passing the second part as va_arg argument.
3840
3841 2019-05-13 Martin Liska <mliska@suse.cz>
3842
3843 PR gcov-profile/90380
3844 * gcov.c (handle_cycle): Do not support zero cycle count,
3845 it should not be possible.
3846 (path_contains_zero_cycle_arc): New function.
3847 (circuit): Ignore zero cycle arc counts.
3848
3849 2019-05-13 Martin Liska <mliska@suse.cz>
3850
3851 PR gcov-profile/90380
3852 * gcov.c (enum loop_type): Remove the enum and
3853 the operator.
3854 (handle_cycle): Assert that we should not reach
3855 a negative count.
3856 (circuit): Use loop_found instead of a tri-state loop_type.
3857 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
3858 happen.
3859
3860 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
3861
3862 PR target/82920
3863 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
3864 (ix86_output_indirect_branch_via_reg): Use output mechanism
3865 accounting for __USER_LABEL_PREFIX__.
3866 (ix86_output_indirect_branch_via_push): Likewise.
3867 (ix86_output_function_return): Likewise.
3868 (ix86_output_indirect_function_return): Likewise.
3869
3870 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
3871
3872 * doc/md.texi: Document use of code attributes in rtx patterns.
3873 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
3874 * read-rtl.c (find_code): Split out search loops into...
3875 (maybe_find_code): ...this new function.
3876 (check_code_iterator): Make the error message more informative.
3877 (check_code_attribute): New function.
3878 (rtx_reader::rtx_alloc_for_name): Likewise.
3879 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
3880 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
3881 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
3882 <max_opp> directly as an rtx code instead of via a match_operator.
3883 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
3884 (<su>abd<mode>_3): Update accordingly.
3885
3886 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
3887
3888 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
3889 is given, print the state of the EH "save world" computation for
3890 Darwin.
3891
3892 2019-05-11 Jakub Jelinek <jakub@redhat.com>
3893
3894 PR c++/59813
3895 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
3896 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
3897
3898 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
3899
3900 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
3901 Use pinsrd for TARGET_SSE4_1.
3902 * config/i386/sse.md (movdi_to_sse): Ditto.
3903
3904 2019-05-10 Richard Biener <rguenther@suse.de>
3905
3906 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
3907 (do_rpo_vn): Initialize next_value_id.
3908
3909 2019-05-10 Martin Liska <mliska@suse.cz>
3910
3911 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
3912 Fix plural form.
3913
3914 2019-05-10 Jakub Jelinek <jakub@redhat.com>
3915
3916 PR tree-optimization/90385
3917 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
3918 arguments of the exit phis.
3919
3920 PR c++/90383
3921 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
3922 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
3923 id->do_not_fold.
3924 (copy_tree_body_r): Likewise.
3925 (copy_fn): Set id.do_not_fold to true.
3926
3927 2019-05-10 Martin Liska <mliska@suse.cz>
3928
3929 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
3930 Reapply changes from r269790.
3931
3932 2019-05-10 Martin Liska <mliska@suse.cz>
3933
3934 PR middle-end/90340
3935 * doc/invoke.texi: New params.
3936 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
3937 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
3938 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
3939 Use it.
3940 * tree-switch-conversion.h (struct jump_table_cluster):
3941 Likewise.
3942
3943 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
3944
3945 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
3946
3947 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
3948
3949 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
3950
3951 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
3952
3953 PR rtl-optimization/88879
3954 * sel-sched.c (sel_target_adjust_priority): Remove assert.
3955
3956 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
3957
3958 PR target/90405
3959 * config/arm/arm.c (callee_saved_reg_p): Move before
3960 thumb_find_work_register.
3961 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
3962 thumb_find_work_register. Only call df_get_live_out once.
3963 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
3964 (thumb_find_work_register): Use
3965 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
3966 algorithms to locate a spare call clobbered reg.
3967
3968 2019-05-09 Martin Liska <mliska@suse.cz>
3969
3970 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
3971 and MAX_EXPR in GIMPLE FE format.
3972
3973 2019-05-09 Martin Liska <mliska@suse.cz>
3974
3975 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
3976 * gimple-pretty-print.c (dump_gimple_bb_header):
3977 Dump BB count.
3978 (pp_cfg_jump): Dump edge probability.
3979 * profile-count.c (profile_quality_as_string): Simplify
3980 with a static array.
3981 (parse_profile_quality): New function.
3982 (profile_count::dump): Simplify with a static array.
3983 (profile_count::from_gcov_type): Add new argument.
3984 * profile-count.h (parse_profile_quality): Likewise.
3985 * predict.h (set_hot_bb_threshold): New.
3986 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
3987 New param.
3988 * predict.c (get_hot_bb_threshold): Set from the new param.
3989 (set_hot_bb_threshold): New.
3990
3991 2019-05-09 Richard Biener <rguenther@suse.de>
3992
3993 PR tree-optimization/90395
3994 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
3995 rewrite vector stores that throw internally.
3996
3997 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
3998
3999 * cif-code.def (CHKP): Remove.
4000
4001 PR target/89221
4002 * configure.ac (--enable-frame-pointer): Disable by default for
4003 GNU systems.
4004 * configure: Regenerate.
4005
4006 2019-05-09 Alan Modra <amodra@gmail.com>
4007
4008 PR target/89271
4009 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
4010 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
4011 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
4012 cost for general <-> vsx when direct moves are available.
4013 Cost union classes at minimal cost for any reg in the class.
4014 Correct calculation for moves between vsx, float, and altivec.
4015 Don't return a low cost for moves between special regs. Don't
4016 use hard coded register numbers.
4017 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
4018 (rs6000_ira_change_pseudo_allocno_class): New function.
4019 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
4020 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
4021 alternatives.
4022 (movsi_internal1): Don't disparage vector alternatives.
4023 (mov<mode>_internal): Likewise, excepting alternative that
4024 will be split.
4025 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
4026 we <- b alternative.
4027
4028 2019-05-08 Jakub Jelinek <jakub@redhat.com>
4029
4030 PR c++/59813
4031 PR tree-optimization/89060
4032 * tree-ssa-live.h (live_vars_map): New typedef.
4033 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
4034 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
4035 (struct compute_live_vars_data): New type.
4036 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
4037 live_vars_at_stmt, destroy_live_vars): New functions.
4038 * tree-tailcall.c: Include tree-ssa-live.h.
4039 (live_vars, live_vars_vec): New global variables.
4040 (find_tail_calls): Perform variable life analysis before punting.
4041 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
4042 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
4043 member.
4044 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
4045 Perform variable life analysis to select variables that really need
4046 clobbers added.
4047 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
4048 instead set id->eh_landing_pad_dest and assert it is the same.
4049 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
4050
4051 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
4052 Richard Earnshaw <rearnsha@arm.com>
4053
4054 PR target/88167
4055 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
4056 function.
4057 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
4058 (thumb1_compute_save_core_reg_mask): Don't force a spare work
4059 register if both the epilogue and prologue can use call-clobbered
4060 regs.
4061 (thumb1_unexpanded_epilogue): Use
4062 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
4063 picking temporaries for restoring high regs to match that of the
4064 prologue where possible.
4065 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
4066 the list of work registers. Detect if the return address is still live
4067 at the end of the prologue and avoid using it for a work register if so.
4068 If the return address is not live, add LR to the list of pushable regs
4069 after the first pass.
4070
4071 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
4072
4073 PR tree-optimization/90078
4074 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
4075 (INFTY): Increase the value for infinite cost.
4076 (struct comp_cost): Promote type of members to int64_t.
4077 (infinite_cost): Don't set complexity in initialization.
4078 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
4079 overflows to infinite_cost.
4080 (adjust_setup_cost): Promote type of parameter and cost computation
4081 to int64_t.
4082 (struct ainc_cost_data, struct iv_ca): Promote type of member to
4083 int64_t.
4084 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
4085 cost computation to int64_t.
4086 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
4087 int64_t's format specifier in dump.
4088
4089 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
4090
4091 PR tree-optimization/90240
4092 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
4093 with respect to scaling factor pre-computed for each basic block.
4094 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
4095 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
4096 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
4097 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
4098 live range for array of loop's basic blocks. Cleanup aux field of
4099 loop's basic blocks.
4100
4101 2019-05-08 Jakub Jelinek <jakub@redhat.com>
4102
4103 PR tree-optimization/90356
4104 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
4105
4106 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
4107
4108 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
4109 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
4110 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
4111 (ix86_handle_option): Handle -mavx512bf16.
4112 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
4113 to extra_headers.
4114 * config/i386/avx512bf16vlintrin.h: New.
4115 * config/i386/avx512bf16intrin.h: New.
4116 * config/i386/cpuid.h (bit_AVX512BF16): New.
4117 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
4118 * config/i386/i386-builtin-types.def: Add new types.
4119 * config/i386/i386-builtin.def: Add new builtins.
4120 * config/i386/i386-c.c (ix86_target_macros_internal): Define
4121 __AVX512BF16__.
4122 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
4123 (ix86_option_override_internal): Handle BF16.
4124 (ix86_valid_target_attribute_inner_p): Ditto.
4125 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
4126 * config/i386/i386-builtin.c (enum processor_features): Add
4127 F_AVX512BF16.
4128 (static const _isa_names_table isa_names_table): Ditto.
4129 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
4130 (PTA_AVX512BF16): Ditto.
4131 * config/i386/i386.opt: Add -mavx512bf16.
4132 * config/i386/immintrin.h: Include avx512bf16intrin.h
4133 and avx512bf16vlintrin.h.
4134 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
4135 avx512f_cvtneps2bf16_<mode><mask_name>,
4136 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
4137 * config/i386/subst.md (mask_half): Add new subst.
4138 * doc/invoke.texi: Document -mavx512bf16.
4139
4140 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
4141
4142 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
4143 Delete declaration.
4144 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
4145 (rs6000_debug_legitimize_reload_address): Delete.
4146 (rs6000_legitimize_reload_address_ptr): Delete.
4147 (rs6000_option_override_internal): Adjust.
4148 (mem_operand_gpr): Adjust comment.
4149 (legitimate_lo_sum_address_p): Ditto.
4150 (rs6000_legitimize_reload_address): Delete.
4151 (rs6000_debug_legitimize_reload_address): Delete.
4152 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
4153
4154 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
4155
4156 PR target/89765
4157 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
4158 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
4159 to compute vector element selector for both constant and variable
4160 operands.
4161
4162 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
4163
4164 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
4165 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
4166 ashrdi3_cvt using SWI48 mode iterator.
4167
4168 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
4169
4170 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
4171 (aarch64_<su>abd<mode>_3): Likewise.
4172 (*aarch64_<su>abd<mode>_3): New define_insn.
4173 (<sur>sad<vsi2qi>): New define_expand.
4174 * config/aarch64/iterators.md: Added MAX_OPP attribute.
4175 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
4176 (build_vect_cond_expr): Likewise.
4177
4178 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
4179
4180 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
4181 clobbers outside of accessible_reg_set.
4182 * config/i386/i386.c (ix86_conditional_register_usage):
4183 Disable register sets by clearing corresponding bits in
4184 accessible_reg_set. Do not set corresponding bits in fixed_regs,
4185 call_used_regs and don't clear corresponding reg_names array members.
4186
4187 2019-05-07 Richard Biener <rguenther@suse.de>
4188
4189 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
4190 not specified still compute a comp_vectype for invariant
4191 compares.
4192
4193 2019-05-07 Richard Biener <rguenther@suse.de>
4194
4195 PR tree-optimization/90316
4196 * tree-ssa-pre.c (translate_vuse_through_block): When
4197 same_valid is NULL do not bother to search for a virtual
4198 PHI continuation.
4199 (phi_translate_1): When operands changed we cannot keep
4200 the same value-number so do not bother to ask whether
4201 that's possible from translate_vuse_through_block.
4202
4203 2019-05-07 Martin Liska <mliska@suse.cz>
4204
4205 * bitmap.c (bitmap_register): Come up with
4206 alloc_descriptor_max_uid and assign it for
4207 a new bitmap.
4208 (register_overhead): Use get_descriptor as
4209 a descriptor.
4210 (release_overhead): New.
4211 (bitmap_elem_to_freelist): Call it.
4212 (bitmap_elt_clear_from): Likewise.
4213 (bitmap_obstack_free): Likewise.
4214 (bitmap_move): Sensitively release memory.
4215 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
4216 (bitmap_initialize): Initialize alloc_descriptor to zero.
4217 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
4218
4219 2019-05-07 Richard Biener <rguenther@suse.de>
4220
4221 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
4222 we build a SLP node. Remove max_size and limiting.
4223 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
4224
4225 2019-05-07 Richard Biener <rguenther@suse.de>
4226
4227 PR tree-optimization/90316
4228 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
4229 limit by reference.
4230 (walk_non_aliased_vuses): Take walking limit argument.
4231 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
4232 walking if it is reached instead of just counting.
4233 (get_continuation_for_phi): Likewise.
4234 (walk_non_aliased_vuses): Likewise, instead of leaving counter
4235 limiting to the callback.
4236 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
4237 (vn_reference_lookup_3): Likewise.
4238 (vn_reference_lookup_pieces): Likewise.
4239 (vn_reference_lookup): Likewise.
4240 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
4241 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
4242 (avail_exprs_stack::lookup_avail_expr): Likewise.
4243
4244 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
4245
4246 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
4247 for comparaible types in the second direction even if first one
4248 hits incomparable type.
4249
4250 2019-05-07 Richard Biener <rguenther@suse.de>
4251
4252 PR lto/90369
4253 * lto-wrapper.c (debug_objcopy): Use the original filename
4254 including archive offset for the filename used for -save-temps.
4255
4256 2019-05-07 Li Jia He <helijia@linux.ibm.com>
4257
4258 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
4259 detection.
4260
4261 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
4262 Hongtao Liu <hongtao.liu@intel.com>
4263
4264 PR target/89750
4265 PR target/86444
4266 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
4267 Modified, original implementation isn't correct.
4268
4269 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4270
4271 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
4272 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
4273 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
4274 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
4275 (FRAME_POINTER_REGNUM): Change numbering.
4276 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
4277 (alt_reg_names): Adjust.
4278 (rs6000_conditional_register_usage): Don't mark hard register 64 as
4279 fixed.
4280 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
4281 (DWARF_FRAME_REGISTERS): Delete.
4282 (DWARF2_FRAME_REG_OUT): Fix whitespace.
4283 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
4284 Adjust.
4285 (REG_ALLOC_ORDER): Adjust.
4286 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
4287 (REG_CLASS_CONTENTS): Adjust.
4288 (RETURN_ADDR_RTX): Change comment.
4289 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
4290 instead of 67.
4291 (REGISTER_NAMES): Adjust.
4292 (ADDITIONAL_REGISTER_NAMES): Adjust.
4293 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
4294
4295 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4296
4297 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
4298 Delete.
4299 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
4300 (DWARF_FRAME_REGISTERS): Adjust.
4301 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
4302 Adjust.
4303 (REG_ALLOC_ORDER): Adjust.
4304 (enum reg_class): Delete SPR_REGS.
4305 (REG_CLASS_NAMES): Delete SPR_REGS.
4306 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
4307 (REGISTER_NAMES): Adjust.
4308 (ADDITIONAL_REGISTER_NAMES): Adjust.
4309 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
4310 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
4311 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
4312 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
4313 (htm_spr_regno): Delete.
4314 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
4315 argument.
4316 (rs6000_dbx_register_number): Adjust.
4317
4318 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4319
4320 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
4321
4322 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
4323
4324 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
4325 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
4326
4327 2019-05-06 Jakub Jelinek <jakub@redhat.com>
4328
4329 PR tree-optimization/88709
4330 PR tree-optimization/90271
4331 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
4332 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
4333 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
4334 variable.
4335 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
4336 of the store merging group is larger than
4337 PARAM_STORE_MERGING_MAX_SIZE parameter.
4338 (split_group): Add bzero_first argument. If set, always emit first
4339 the first store which must be = {} of the whole area and then for the
4340 rest of the stores consider all zero bytes as paddings.
4341 (imm_store_chain_info::output_merged_store): Check if first store
4342 is = {} of the whole area and if yes, determine which setting of
4343 bzero_first for split_group gives smaller number of stores. Adjust
4344 split_group callers.
4345 (lhs_valid_for_store_merging_p): Allow decls.
4346 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
4347 no elts.
4348 (pass_store_merging::process_store): Likewise.
4349
4350 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
4351
4352 PR target/89424
4353 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
4354 handling of V1TImode.
4355
4356 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
4357
4358 PR target/89221
4359 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
4360 and enable_frame_pointer ...
4361 * configure.ac: ... here. Update help strings for
4362 --enable-frame-pointer.
4363 * configure: Regenerate.
4364 * config/i386/i386-options.c (ix86_option_override_internal): Remove
4365 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
4366 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
4367 (USE_X86_64_FRAME_POINTER): Ditto.
4368
4369 2019-05-06 Martin Liska <mliska@suse.cz>
4370
4371 * config.gcc: Append to target_gtfiles and fix indentation.
4372
4373 2019-05-06 Richard Biener <rguenther@suse.de>
4374
4375 PR tree-optimization/90358
4376 * tree-vect-stmts.c (get_group_load_store_type): Properly
4377 detect unused upper half of load.
4378 (vectorizable_load): Likewise.
4379
4380 2019-05-06 Richard Biener <rguenther@suse.de>
4381
4382 PR tree-optimization/88828
4383 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
4384 (simplify_vector_constructor): ...here. Handle constants in
4385 the constructor.
4386
4387 2019-05-06 Richard Biener <rguenther@suse.de>
4388
4389 PR tree-optimization/90328
4390 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
4391 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
4392 is valid in the loop nest before using it.
4393 (initialize_data_dependence_relation): Adjust.
4394 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
4395 loop as loop-nest to dr_may_alias_p.
4396
4397 2019-05-06 Richard Biener <rguenther@suse.de>
4398
4399 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
4400
4401 2019-05-06 Richard Biener <rguenther@suse.de>
4402
4403 PR tree-optimization/90316
4404 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
4405 compute target on demand.
4406 (get_continuation_for_phi): Remove code walking stmts to
4407 get to a target virtual operand which could end up being
4408 quadratic.
4409
4410 2019-05-06 Martin Liska <mliska@suse.cz>
4411
4412 PR sanitizer/90312
4413 * config/i386/i386-options.c (ix86_option_override_internal): Error only
4414 when -mabi is selected to a non-default version.
4415
4416 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
4417 Martin Liska <mliska@suse.cz>
4418
4419 * Makefile.in: Add lto-dump.texi.
4420 * cgraph.h: Add new functions get_visibility_string and
4421 get_symtab_type_string.
4422 * doc/gcc.texi: Include lto-dump section.
4423 * doc/lto-dump.texi: New file.
4424 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
4425 (parse_dump_option): Factor out this function.
4426 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
4427 (parse_dump_option): Export the function.
4428 * symtab.c (symtab_node::get_visibility_string): New function.
4429 (symtab_node::get_symtab_type_string): Likewise.
4430
4431 2019-05-06 Martin Liska <mliska@suse.cz>
4432
4433 * config/i386/i386-builtins.c: New file.
4434 * config/i386/i386-builtins.h: New file.
4435 * config/i386/i386-expand.c: New file.
4436 * config/i386/i386-expand.h: New file.
4437 * config/i386/i386-features.c: New file.
4438 * config/i386/i386-features.h: New file.
4439 * config/i386/i386-options.c: New file.
4440 * config/i386/i386-options.h: New file.
4441 * config.gcc: Add new files into extra_objs and
4442 target_gtfiles.
4443 * config/i386/i386.c: Split content of the file
4444 into newly introduced files.
4445 * config/i386/i386.h: Declare common variables
4446 and macros.
4447 * config/i386/t-i386: Define dependencies for new files.
4448
4449 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
4450
4451 PR target/89400
4452 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
4453 Restrict 'all' variant to 32-bit configurations.
4454 (unaligned_loadhiu): Likewise.
4455 (unaligned_storehi): Likewise.
4456 (unaligned_storesi): Likewise.
4457 (unaligned_loadhis): Disable when compiling for thumb1.
4458
4459 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
4460
4461 PR tree-optimization/90269
4462 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
4463 Ignore clobbers.
4464
4465 2019-05-03 Martin Liska <mliska@suse.cz>
4466
4467 * hash-map.h: Add is_empty function.
4468 * hash-set.h: Likewise.
4469 * hash-table.h: Likewise.
4470 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
4471 elements () == 0 (and similar usages).
4472 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
4473 * gimplify.c (gimplify_bind_expr): Likewise.
4474 (gimplify_switch_expr): Likewise.
4475 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
4476 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
4477 * postreload-gcse.c (dump_hash_table): Likewise.
4478 (gcse_after_reload_main): Likewise.
4479 * predict.c (combine_predictions_for_bb): Likewise.
4480 * tree-parloops.c (reduction_phi): Likewise.
4481 (separate_decls_in_region): Likewise.
4482 (transform_to_exit_first_loop): Likewise.
4483 (gen_parallel_loop): Likewise.
4484 (gather_scalar_reductions): Likewise.
4485 (try_create_reduction_list): Likewise.
4486 * var-tracking.c (dump_vars): Likewise.
4487 (emit_notes_for_changes): Likewise.
4488 (vt_emit_notes): Likewise.
4489
4490 2019-05-03 Richard Biener <rguenther@suse.de>
4491
4492 PR tree-optimization/90316
4493 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
4494 before running VN.
4495
4496 2019-05-03 Richard Biener <rguenther@suse.de>
4497
4498 * tree-vect-stmts.c (get_group_load_store_type): Avoid
4499 peeling for gaps by loading only lower halves of vectors
4500 if possible.
4501 (vectorizable_load): Likewise.
4502
4503 2019-05-03 Richard Biener <rguenther@suse.de>
4504
4505 PR middle-end/89518
4506 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
4507
4508 2019-05-03 Richard Biener <rguenther@suse.de>
4509
4510 PR middle-end/87314
4511 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
4512 Handle STRING_CST vs DECL or STRING_CST.
4513
4514 2019-05-03 Richard Biener <rguenther@suse.de>
4515
4516 PR tree-optimization/88963
4517 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
4518 vector loads feeding only BIT_FIELD_REFs to component
4519 loads. Rewrite stores fed by CONSTRUCTORs to component
4520 stores.
4521
4522 2019-05-03 Jakub Jelinek <jakub@redhat.com>
4523
4524 * opts.h (finish_options): Remove lang_mask argument.
4525 (print_help, help_option_argument): Declare.
4526 * opts.c (print_help): Remove forward declaration, no longer static.
4527 (finish_options): Remove lang_mask argument, don't call print_help
4528 here.
4529 * opts-global.c (decode_options): Adjust finish_option caller, call
4530 print_help here.
4531
4532 PR tree-optimization/90303
4533 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
4534 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
4535
4536 2019-05-03 Richard Biener <rguenther@suse.de>
4537
4538 PR tree-optimization/89698
4539 * gimple-fold.c (canonicalize_constructor_val): Early out
4540 for constants, handle unfolded INTEGER_CSTs as they appear in
4541 C++ virtual table ctors.
4542
4543 2019-05-03 Richard Biener <rguenther@suse.de>
4544
4545 * passes.c (execute_function_todo): Remove dead code.
4546
4547 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
4548
4549 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
4550 the internal register number, for any "real" register.
4551
4552 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
4553
4554 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
4555 correct numbers for TFHAR, TFIAR, TEXASR.
4556
4557 2019-05-02 Richard Biener <rguenther@suse.de>
4558
4559 PR tree-optimization/89653
4560 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
4561 update-address-taken before the pass.
4562 * passes.def (pass_tree_loop_init): Put comment before it.
4563
4564 2019-05-02 Richard Biener <rguenther@suse.de>
4565
4566 PR tree-optimization/89509
4567 * tree-ssa-structalias.c (compute_dependence_clique): Look
4568 at the first subvar when determining whether it is restrict.
4569
4570 2019-05-02 Richard Biener <rguenther@suse.de>
4571
4572 PR tree-optimization/90273
4573 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
4574 useless debug stmts.
4575
4576 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
4577
4578 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
4579 ACLE branch.
4580 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
4581 SVE ACLE branch.
4582 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
4583 VEC_COND_EXPR be inserted to emulate a conditional internal function.
4584 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
4585 (vectorizable_reduction): Use the functions above to vectorize in a
4586 fully masked loop codes that don't have a conditional internal
4587 function.
4588
4589 2019-05-02 Martin Liska <mliska@suse.cz>
4590
4591 * cgraphclones.c: Call valid_attribute_p with 1 for
4592 target_clone.
4593 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
4594 it's for target attribute.
4595 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
4596 Add new boolean argument.
4597 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
4598 Likewise.
4599 (ix86_valid_target_attribute_tree): Pass target_clone_attr
4600 to ix86_valid_target_attribute_inner_p.
4601 (ix86_valid_target_attribute_p): Pass flags argument to
4602 ix86_valid_target_attribute_inner_p.
4603 (get_builtin_code_for_version): Use 0 as it's target attribute.
4604
4605 2019-05-02 Martin Liska <mliska@suse.cz>
4606
4607 * gcc.c (process_command): Add dummy file only
4608 if n_infiles == 0.
4609 * opts-global.c (decode_options): Pass lang_mask.
4610 * opts.c (print_help): New function.
4611 (finish_options): Print --help if help_option_argument
4612 is set.
4613 (common_handle_option): Factor out content of OPT__help_
4614 into print_help.
4615 * opts.h (finish_options): Add new argument.
4616
4617 2019-05-02 Martin Liska <mliska@suse.cz>
4618
4619 PR target/88809
4620 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
4621 With -minline-all-stringops use inline expansion using 4B loop.
4622 * doc/invoke.texi: Document the change of
4623 -minline-all-stringops.
4624
4625 2019-05-01 Jeff Law <law@redhat.com>
4626
4627 PR tree-optimization/88797
4628 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
4629 PHI feeds a conditional on the RHS of an assignment.
4630
4631 2019-04-30 Andrew Waterman <andrew@sifive.com>
4632 Jim Wilson <jimw@sifive.com>
4633
4634 * config/riscv/constraints.md (L): New.
4635 * config/riscv/predicates.md (lui_operand): New.
4636 (sfb_alu_operand): New.
4637 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
4638 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
4639 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
4640 * config/riscv/risc.md (type): Add sfb_alu.
4641 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
4642 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
4643 (branch_zero<mode>): Delete.
4644 (mov<mode>cc): New.
4645 (mov<GPR:mode><X:mode>cc): Likewise.
4646 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
4647
4648 2019-04-30 Nathan Sidwell <nathan@acm.org>
4649
4650 * tree.h (MARK_TS_EXP): New.
4651
4652 2019-04-30 Martin Liska <mliska@suse.cz>
4653
4654 * opts.c (enable_warning_as_error): Provide hints
4655 for unknown options.
4656
4657 2019-04-30 Martin Liska <mliska@suse.cz>
4658
4659 PR debug/90288
4660 * doc/invoke.texi: Add missing dash for gas-locview-support
4661 and gno-as-locview-support.
4662
4663 2019-04-30 Jakub Jelinek <jakub@redhat.com>
4664
4665 PR target/89093
4666 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
4667 whitespace at the start of target attribute string.
4668
4669 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4670
4671 PR target/86538
4672 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
4673 Define __ARM_FEATURE_ATOMICS.
4674
4675 2019-04-30 Martin Liska <mliska@suse.cz>
4676
4677 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
4678 into built_in_function enum. Remove code for endp == 2 and
4679 use BUILT_IN_* constants.
4680 (gimple_fold_builtin): Call the function with fcode.
4681
4682 2019-04-30 Martin Liska <mliska@suse.cz>
4683
4684 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
4685 DECL_FUNCTION_CODE into ix86_builtins enum before
4686 the switch statement.
4687
4688 2019-04-30 Jakub Jelinek <jakub@redhat.com>
4689
4690 PR tree-optimization/89475
4691 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
4692 calls.
4693
4694 2019-04-30 Martin Liska <mliska@suse.cz>
4695
4696 PR translation/90274
4697 * opts.c (print_filtered_help): Wrap string in _(...).
4698
4699 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
4700
4701 PR tree-optimization/90240
4702 Revert:
4703 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
4704
4705 PR tree-optimization/90078
4706 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
4707 checks for infinite_cost overflow.
4708
4709 2019-04-29 Jeff Law <law@redhat.com>
4710
4711 * passes.def: Move -Wrestrict pass after copy propagation.
4712
4713 2019-04-29 Maya Rashish <coypu@sdf.org>
4714
4715 * config.gcc (default_gnu_indirect_function): Default to yes
4716 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
4717 sparc*-*-netbsd*, x86_64-*-netbsd*.
4718
4719 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
4720
4721 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
4722 where cond2 is NE_EXPR.
4723 (is_value_included_in): Update comment.
4724
4725 2019-04-29 Richard Biener <rguenther@suse.de>
4726
4727 PR tree-optimization/90278
4728 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
4729 EH on comparison simplification.
4730
4731 2019-04-29 Jason Merrill <jason@redhat.com>
4732
4733 PR c++/82081 - tail call optimization breaks noexcept
4734 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
4735 nothrow function to a might-throw function into a tail call.
4736
4737 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
4738
4739 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
4740 (DDR_INNER_LOOP): Likewise.
4741 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
4742 (initialize_data_dependence_relation): Likewise.
4743 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
4744
4745 2019-04-29 Jakub Jelinek <jakub@redhat.com>
4746
4747 PR rtl-optimization/90257
4748 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
4749 return value.
4750
4751 Revert the revert:
4752 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
4753
4754 PR target/90178
4755 Revert:
4756 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
4757
4758 Revert the revert:
4759 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
4760
4761 Revert:
4762 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
4763
4764 * lra-spills.c (lra_final_code_change): Remove useless move insns.
4765
4766 2019-04-29 Richard Biener <rguenther@suse.de>
4767
4768 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
4769 rhs issue a reset.
4770
4771 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
4772
4773 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
4774 varasm.h, and netbsd-protos.h.
4775
4776 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
4777
4778 PR target/89261
4779 * config/i386/i386-protos.h (ix86_data_alignment): Change
4780 the second argument type to unsigned int.
4781 * config/i386/i386.c (ix86_data_alignment): Change "align"
4782 argument type to unsigned int.
4783
4784 2019-04-27 Martin Liska <mliska@suse.cz>
4785
4786 PR middle-end/90258
4787 * opt-suggestions.c (option_proposer::build_option_suggestions):
4788 When get_valid_option_values returns empty values, add the
4789 misspelling candidate.
4790
4791 2019-04-26 Jim Wilson <jimw@sifive.com>
4792
4793 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
4794 parameter.
4795 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
4796 Pass orig_mode to riscv_build_integer.
4797 (riscv_split_integer): Pass mode to riscv_move_integer.
4798 (riscv_legitimize_const_move): Likewise.
4799 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
4800 promoted_mode. Replace force_reg call with code to load constant into
4801 promoted reg and then subreg it for the store.
4802 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
4803 riscv_move_integer.
4804
4805 2018-04-26 Eugene Sharygin <eush@ispras.ru>
4806
4807 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
4808 corrupt codes.
4809
4810 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
4811
4812 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
4813 commentary about the encoding of precision.
4814
4815 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
4816
4817 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
4818 * config/i386/t-freebsd64: New file.
4819 * config.gcc: Add the t-freebsd64 for multilib support.
4820
4821 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
4822
4823 * doc/extend.texi (vector_size): Add missing comma after @xref.
4824
4825 2019-04-25 Jakub Jelinek <jakub@redhat.com>
4826
4827 * BASE-VER: Set to 10.0.0.
4828
4829 2019-04-25 Richard Biener <rguenther@suse.de>
4830
4831 PR middle-end/89765
4832 * gimplify.c (gimplify_expr): Avoid turning a lvalue
4833 VIEW_CONVERT_EXPR into one operating on an rvalue.
4834
4835 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
4836
4837 PR target/89929
4838 * config/i386/i386.c (feature_priority): Moved to file scope.
4839 (processor_features): Likewise.
4840 (processor_model): Likewise.
4841 (_arch_names_table): Likewise.
4842 (arch_names_table): Likewise.
4843 (_feature_list): Removed.
4844 (feature_list): Likewise.
4845 (_isa_names_table): Moved to file scope. Add priority.
4846 (isa_names_table): Likewise.
4847 (get_builtin_code_for_version): Replace feature_list with
4848 isa_names_table. Update error message for P_ZERO priority.
4849
4850 2019-04-25 Richard Biener <rguenther@suse.de>
4851
4852 * tree-pass.h (make_pass_phi_only_cprop): Remove.
4853 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
4854
4855 2019-04-24 Jeff Law <law@redhat.com>
4856
4857 PR tree-optimization/90037
4858 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
4859 * passes.def: Replace all instance of phi-only cprop with the
4860 lattice propagator. Move propagation pass from after erroneous
4861 path isolation to before erroneous path isolation.
4862 * tree-ssa-phionlycprop.c: Remove.
4863
4864 2019-04-24 Richard Biener <rguenther@suse.de>
4865
4866 PR middle-end/90213
4867 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
4868 by size and BITS_PER_UNIT on poly-wide-ints.
4869
4870 2019-04-25 Richard Biener <rguenther@suse.de>
4871
4872 PR middle-end/90194
4873 * match.pd: Add pattern to simplify view-conversion of an
4874 empty constructor.
4875
4876 2019-04-24 Clement Chigot <clement.chigot@atos.net>
4877
4878 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
4879 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
4880 for Go on 32 bit AIX.
4881 * config/rs6000/aix72.h: Likewise.
4882
4883 2019-04-24 Jakub Jelinek <jakub@redhat.com>
4884
4885 PR target/90193
4886 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
4887 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
4888
4889 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
4890
4891 PR target/89952
4892 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
4893 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
4894 for restored hard frame pointer.
4895 (s390_sched_dependencies_evaluation): Implement new target hook.
4896 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
4897
4898 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
4899
4900 * config/arc/arc-options.def: Fix typos and spelling mistakes.
4901 * config/arc/arc.c (arc_init): Cleanup warning message.
4902 (arc_override_options): Likewise.
4903
4904 2019-04-24 Jakub Jelinek <jakub@redhat.com>
4905
4906 PR target/90187
4907 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
4908 a register if both if_true and if_false are MEMs.
4909
4910 PR tree-optimization/90208
4911 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
4912 after labels of new_bb, not before them.
4913
4914 PR tree-optimization/90211
4915 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
4916 which are not SSA_NAMEs.
4917
4918 2018-04-23 Sudakshina Das <sudi.das@arm.com>
4919
4920 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
4921 AArch64.
4922 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
4923
4924 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
4925
4926 PR rtl-optimization/87979
4927 * modulo-sched.c (sms_schedule): Start ii value "mii" should
4928 not equal zero.
4929
4930 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
4931
4932 PR rtl-optimization/84032
4933 * modulo-sched.c (ps_insn_find_column): Change condition so that
4934 branch will always be the last insn in a row inside partial
4935 schedule.
4936
4937 2019-04-23 Richard Biener <rguenther@suse.de>
4938
4939 PR debug/90131
4940 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
4941 dest_single_pred_p argument.
4942 (remove_forwarder_block): Adjust.
4943 (remove_forwarder_block_with_phi): Likewise.
4944
4945 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
4946 Bernd Edlinger <bernd.edlinger@hotmail.de>
4947 Jakub Jelinek <jakub@redhat.com>
4948
4949 PR target/89093
4950 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
4951 if used with general-regs-only.
4952 (arm_conditional_register_usage): Don't add non-general regs if
4953 general-regs-only.
4954 (arm_valid_target_attribute_rec): Handle general-regs-only.
4955 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
4956 general-regs-only.
4957 (TARGET_HARD_FLOAT_SUB): Define.
4958 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
4959 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
4960 (TARGET_REALLY_IWMMXT2): Likewise.
4961 * config/arm/arm.opt: Add -mgeneral-regs-only.
4962 * doc/extend.texi: Document ARM general-regs-only target.
4963 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
4964
4965 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
4966
4967 PR tree-optimization/90078
4968 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
4969 checks for infinite_cost overflow.
4970
4971 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
4972
4973 PR tree-optimization/90021
4974 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
4975 and check univariate against it.
4976 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
4977 * tree-data-ref.c (add_other_self_distances): Pass new argument.
4978
4979 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
4980
4981 PR target/90178
4982 Revert:
4983 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
4984
4985 Revert the revert:
4986 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
4987
4988 Revert:
4989 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
4990
4991 * lra-spills.c (lra_final_code_change): Remove useless move insns.
4992
4993 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
4994
4995 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
4996 names using operand format, rather than hard-wired.
4997 (speculation_barrier): Likewise.
4998
4999 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
5000
5001 PR tree-optimization/88055
5002 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
5003 (gen_one_condition): Use it if !HONOR_NANS.
5004
5005 2019-04-19 Jakub Jelinek <jakub@redhat.com>
5006
5007 PR middle-end/90139
5008 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
5009 assign_temp instead of gen_reg_rtx.
5010
5011 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
5012
5013 PR translation/90118
5014 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5015 Add missing space before %<.
5016
5017 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
5018
5019 PR rtl-optimization/87871
5020 * ira-lives.c (make_object_dead): Don't add conflicts to
5021 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
5022
5023 2019-04-18 Martin Sebor <msebor@redhat.com>
5024
5025 PR middle-end/89797
5026 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
5027 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
5028 assuming type size fits in SHWI.
5029
5030 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
5031
5032 PR ipa/85051
5033 * ipa-inline.c (flatten_function): New parameter UPDATE.
5034 (ipa_inline, early_inliner): Use it.
5035
5036 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
5037
5038 * fold-const.c (int_const_binop): Return early on failure.
5039
5040 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
5041
5042 PR middle-end/85164
5043 * combine.c (force_int_to_mode): Cast the argument rather than
5044 the result of known_alignment.
5045 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
5046
5047 2019-04-18 Richard Biener <rguenther@suse.de>
5048
5049 PR debug/90131
5050 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
5051 out from ...
5052 (remove_forwarder_block): ... here.
5053 (remove_forwarder_block_with_phi): Also move debug stmts here.
5054
5055 2019-04-18 Jakub Jelinek <jakub@redhat.com>
5056
5057 PR translation/79183
5058 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
5059 inform where appropriate.
5060
5061 2019-04-18 Richard Biener <rguenther@suse.de>
5062
5063 * tree.c (get_qualified_type): Put found type variants at the
5064 head of the variant list.
5065
5066 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5067
5068 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
5069
5070 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
5071
5072 PR target/90125
5073 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
5074 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
5075 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
5076 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
5077 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
5078
5079 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
5080
5081 * ira-conflicts.c (print_allocno_conflicts): Always print something,
5082 even for allocno's with no conflicts.
5083 (print_conflicts): Print an extra newline.
5084
5085 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5086
5087 * auto-inc-dec.c (attempt_change): Set the alignment of the
5088 temporary memory to that of the original.
5089
5090 2019-04-17 Joao Moreira <jmoreira@suse.de>
5091
5092 * targhooks.c (default_print_patchable_function_entry): Emit
5093 __patchable_function_entries section with writable flags to allow
5094 relocation resolution.
5095
5096 2019-04-17 Jonny Grant <jg@jguk.org>
5097
5098 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
5099
5100 2019-04-17 Jakub Jelinek <jakub@redhat.com>
5101
5102 PR middle-end/90095
5103 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
5104 on lowpart SUBREGs.
5105
5106 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
5107
5108 * config/arc/arc.c (arc_init): Format diagnostic string.
5109 (arc_override_options): Likewise.
5110 (check_if_valid_regno_const): Likewise.
5111 (arc_reorg): Likewise.
5112
5113 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
5114
5115 PR target/17108
5116 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
5117 name.
5118 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
5119 name.
5120 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
5121 (*movdi_update1): Use Pmode.
5122 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
5123 (movdi_<mode>_update_stack): Rename to ...
5124 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
5125 use Pmode.
5126 (*movsi_update1): Use Pmode.
5127 (*movsi_update2): Use Pmode.
5128 (movsi_update): Rename to ...
5129 (movsi_<mode>_update): ... this. Use Pmode.
5130 (movsi_update_stack): Fix condition.
5131 (*movhi_update1): Use Pmode. Fix argument to
5132 avoiding_indexed_address_p.
5133 (*movhi_update2): Ditto.
5134 (*movhi_update3): Ditto.
5135 (*movhi_update4): Ditto.
5136 (*movqi_update1): Ditto.
5137 (*movqi_update2): Ditto.
5138 (*movqi_update3): Ditto.
5139 (*movsf_update1, *movdf_update1): Merge, rename to...
5140 (*mov<mode>_update1): This. Use Pmode. Fix argument to
5141 avoiding_indexed_address_p. Add "size" attribute.
5142 (*movsf_update2, *movdf_update2): Merge, rename to...
5143 (*mov<mode>_update2): This. Ditto.
5144 (*movsf_update3): Use Pmode. Fix argument to
5145 avoiding_indexed_address_p.
5146 (*movsf_update4): Ditto.
5147 (allocate_stack): Simplify condition. Adjust pattern names.
5148
5149 2019-04-17 Jakub Jelinek <jakub@redhat.com>
5150
5151 PR target/89093
5152 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
5153 whitespace at the start of target attribute string.
5154
5155 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
5156
5157 PR target/84369
5158 * config/rs6000/power9.md: Add store forwarding bypass.
5159
5160 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
5161
5162 PR debug/89528
5163 * valtrack.c (dead_debug_insert_temp): Reset debug references
5164 to the return value of a call being removed.
5165
5166 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5167
5168 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
5169 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
5170 implement target hook.
5171 (arc_memory_move_cost): New function.
5172 (TARGET_REGISTER_MOVE_COST): Define.
5173 (TARGET_MEMORY_MOVE_COST): Likewise.
5174 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
5175 (MEMORY_MOVE_COST): Likewise.
5176
5177 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5178
5179 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
5180 (sibcall_value_insn): Likewise.
5181 * config/arc/constraints.md (Rs5): Remove.
5182
5183 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5184
5185 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
5186 for last two fake registers.
5187 (arc_conditional_register_usage): Make sure fake frame and arg
5188 pointer regs are in general regs class.
5189 (FRAME_POINTER_MASK): Remove.
5190 (RETURN_ADDR_MASK): Remove.
5191 (arc_must_save_register): Use hard frame regnum.
5192 (frame_restore_reg): Use hard_frame_pointer_rtx.
5193 (arc_save_callee_saves): Likewise.
5194 (arc_restore_callee_saves): Likewise.
5195 (arc_save_callee_enter): Likewise.
5196 (arc_restore_callee_leave): Likewise.
5197 (arc_save_callee_milli): Likewise.
5198 (arc_eh_return_address_location): Likewise.
5199 (arc_check_multi): Use hard frame regnum.
5200 (arc_can_eliminate): Likewise.
5201 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
5202 for register allocator.
5203 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
5204 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
5205 (FRAME_POINTER_REGNUM): Change it to a fake register.
5206 (HARD_FRAME_POINTER_REGNUM): Defined.
5207 (ARG_POINTER_REGNUM): Change it to a new fake register.
5208 (ELIMINABLE_REGS): Update.
5209 (REGISTER_NAMES): Update names.
5210 * config/arc/arc.md (LP_START): Remove.
5211 (LP_END): Likewise.
5212 (shift_si3_loop): Update pattern.
5213
5214 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
5215
5216 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
5217 to avoid delay slot scheduling.
5218 (arc_must_save_register): Don't save SP.
5219 * config/arc/arc.md (stack_tie): Remove.
5220 (UNSPEC_ARC_STKTIE): Likewise.
5221
5222 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
5223 Shiva Chen <shiva0217@gmail.com>
5224
5225 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
5226 code gen with large shift amount.
5227
5228 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
5229
5230 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
5231 subreg.
5232
5233 2019-04-16 Jakub Jelinek <jakub@redhat.com>
5234
5235 PR target/90096
5236 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
5237 print -m64/-mx32/-m32 if it is true.
5238 (ix86_debug_options, ix86_function_specific_print): Pass true as
5239 ADD_ABI_P to ix86_target_string.
5240 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
5241 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
5242 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
5243
5244 PR rtl-optimization/90082
5245 * dce.c (can_delete_call): New function.
5246 (deletable_insn_p, mark_insn): Use it.
5247
5248 PR tree-optimization/90090
5249 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
5250 throw internally.
5251 (is_division_by_square): Likewise. Formatting fix.
5252
5253 2019-04-16 Richard Biener <rguenther@suse.de>
5254
5255 PR tree-optimization/56049
5256 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
5257 equality check if alias-set zero will prevail.
5258
5259 2019-04-15 Jeff Law <law@redhat.com>
5260
5261 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
5262 size and alignment as unsigned.
5263
5264 2019-04-15 Richard Biener <rguenther@suse.de>
5265
5266 PR debug/90074
5267 * tree-loop-distribution.c (destroy_loop): Preserve correct
5268 debug info.
5269
5270 2019-04-15 Richard Biener <rguenther@suse.de>
5271
5272 PR tree-optimization/90071
5273 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
5274 abnormal operands from def stmts.
5275
5276 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
5277
5278 PR rtl-optimization/89794
5279 * combine.c (count_auto_inc): New function.
5280 (try_combine): Count how many auto_inc expressions there were in the
5281 original instructions. Ensure we have the same number in the new
5282 instructions. Remove the code that tried to ensure auto_inc side
5283 effects on i1 and i0 are not lost.
5284
5285 2019-04-15 Richard Biener <rguenther@suse.de>
5286
5287 PR ipa/88936
5288 * tree.h (auto_var_p): Declare.
5289 * tree.c (auto_var_p): New function, split out from ...
5290 (auto_var_in_fn_p): ... here.
5291 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
5292 member.
5293 (new_var_info): Initialize it.
5294 (set_uids_in_ptset): Also set the shadow variable uid if required.
5295 (ipa_pta_execute): Postprocess points-to solutions assigning
5296 shadow variable uids for locals that may reach their containing
5297 function recursively.
5298 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
5299 assert but instead check whether the points-to solution is
5300 a singleton.
5301
5302 2019-04-15 Martin Jambor <mjambor@suse.cz>
5303
5304 PR ipa/pr89693
5305 * cgraph.c (clone_of_p): Loop over clone chain for each step in
5306 the thunk chain.
5307
5308 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
5309
5310 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
5311
5312 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
5313 Kito Cheng <kito.cheng@gmail.com>
5314 Shiva Chen <shiva0217@gmail.com>
5315
5316 * config/nds32/nds32-md-auxiliary.c
5317 (nds32_legitimize_pic_address): Use new PIC pattern.
5318 (nds32_legitimize_tls_address): Use new TLS pattern.
5319 (nds32_output_symrel): New.
5320 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
5321 (nds32_alloc_relax_group_id): Ditto.
5322 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
5323 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
5324 relax_group_id.
5325 (nds32_group_tls_insn): Ditto.
5326 (nds32_group_float_insns): Ditto.
5327 * config/nds32/nds32.md (tls_le): New.
5328 (sym_got): Ditto.
5329
5330 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
5331
5332 * configure: Add nds32 target for dwarf2 debug_line checking.
5333 * configure.ac: Regenerated.
5334
5335 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
5336
5337 PR lto/89358
5338 * ipa-devirt.c (skip_in_fields_list_p): New.
5339 (odr_types_equivalent_p): Use it.
5340
5341 2019-04-13 Jakub Jelinek <jakub@redhat.com>
5342
5343 PR target/89093
5344 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
5345 instead of strncmp when checking for thumb and arm. Formatting fixes.
5346
5347 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
5348
5349 * doc/install.texi: Document --with-target-system-zlib.
5350
5351 2019-04-12 Martin Sebor <msebor@redhat.com>
5352
5353 PR c/88383
5354 PR c/89288
5355 PR c/89798
5356 PR c/89797
5357 * targhooks.c (default_vector_alignment): Avoid assuming
5358 argument fits in SHWI.
5359 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
5360 a shift expression.
5361 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
5362
5363 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5364
5365 PR rtl-optimization/89965
5366 * dce.c: Include rtl-iter.h.
5367 (struct check_argument_load_data): New type.
5368 (check_argument_load): New function.
5369 (find_call_stack_args): Check for loads from stack slots still tracked
5370 in sp_bytes and punt if any is found.
5371
5372 * config/mips/loongson-mmiintrin.h: Fix up #error message.
5373
5374 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
5375
5376 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
5377 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
5378
5379 2019-04-12 Martin Liska <mliska@suse.cz>
5380
5381 PR middle-end/89970
5382 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
5383 in error message.
5384 (separate_attrs): Handle multiple 'default's.
5385 (expand_target_clones): Rework error handling code.
5386
5387 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
5388
5389 PR target/87532
5390 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
5391 mode of vector rather than mode of destination for move instruction.
5392 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
5393 Use QI inner mode with V16QI vector mode.
5394
5395 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5396
5397 PR target/52726
5398 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
5399 "invalid %%t operand" in output_operand_lossage message.
5400
5401 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
5402
5403 * config/s390/predicates.md (permute_pattern_operand): New
5404 predicate.
5405 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
5406 operand for the permute pattern.
5407 ("*vec_perm<mode>"): New insn definition.
5408 ("bswap<mode>"): Generate the permute pattern operand in the
5409 expander and perform the operand reloads for pre arch13 level
5410 already.
5411 ("*bswap<mode>_emu"): Rename to ...
5412 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
5413 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
5414 Add the USE operand for the permute pattern.
5415 ("*vec_set_bswap_vec<mode>"): Likewise.
5416
5417 2019-04-12 Jakub Jelinek <jakub@redhat.com>
5418
5419 PR c/89946
5420 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
5421 and gcc_unreachable if it fails, just call tree_to_uhwi which
5422 verifies that too. Test TREE_CHAIN instead of list_length > 1.
5423 Start warning message with a lower-case letter. Formatting fixes.
5424
5425 PR rtl-optimization/90026
5426 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
5427 successors, look for BARRIERs inside of the whole BB_FOOTER chain
5428 rather than just at the start of it. If e->src BB_FOOTER is not NULL
5429 in cfglayout mode, use emit_barrier_after_bb.
5430
5431 2018-04-11 Steve Ellcey <sellcey@marvell.com>
5432
5433 PR rtl-optimization/87763
5434 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
5435 New Instruction.
5436
5437 2019-04-11 Tom de Vries <tdevries@suse.de>
5438
5439 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
5440 max macro using statement expression.
5441
5442 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
5443
5444 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
5445 * xcoffout.c (xcoff_private_rodata_section_name): Define.
5446 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
5447 read_only_private_data_section using xcoff_private_rodata_section_name.
5448 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
5449
5450 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
5451
5452 PR target/90016
5453 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
5454
5455 2019-04-11 Jakub Jelinek <jakub@redhat.com>
5456
5457 PR rtl-optimization/89965
5458 * dce.c (sp_based_mem_offset): New function.
5459 (find_call_stack_args): Use sp_based_mem_offset.
5460
5461 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
5462
5463 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
5464
5465 2019-04-11 Richard Biener <rguenther@suse.de>
5466
5467 PR tree-optimization/90020
5468 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
5469 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
5470 * tree-ssa-pre.c (compute_avail): Use it to not put
5471 possibly trapping references after a call that might not
5472 return into EXP_GEN.
5473 * gcse.c (compute_hash_table_work): Do not elide
5474 marking a block containing a call if the call might not
5475 return.
5476
5477 2019-04-11 Richard Biener <rguenther@suse.de>
5478
5479 PR tree-optimization/90018
5480 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
5481 Test both SLP and interleaving variants.
5482
5483 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
5484
5485 * config/s390/8561.md: New file.
5486 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5487 Add arch13 cpu model.
5488 * config/s390/s390-opts.h (enum processor_type): Likewise.
5489 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
5490 (s390_get_unit_mask): Likewise.
5491 (s390_is_fpd): Likewise.
5492 (s390_is_fxd): Likewise.
5493 * config/s390/s390.h (s390_tune_attr): Likewise.
5494 * config/s390/s390.md: Include arch13 pipeline description.
5495 * config/s390/s390.opt: Add arch13.
5496
5497 2018-04-10 Steve Ellcey <sellcey@marvell.com>
5498
5499 PR rtl-optimization/87763
5500 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
5501 New prototype.
5502 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
5503 New function.
5504 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
5505 New instruction.
5506 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
5507 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
5508 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
5509 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
5510
5511 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
5512
5513 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
5514 "Although" in -fipa-icf documentation.
5515
5516 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
5517 of using multiple -g options.
5518
5519 2019-04-10 Martin Liska <mliska@suse.cz>
5520
5521 PR gcov-profile/89959
5522 * doc/gcov.texi: Make documentation of -x option
5523 more precise.
5524
5525 2019-04-10 Richard Biener <rguenther@suse.de>
5526
5527 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
5528 member.
5529 (DR_GROUP_SAME_DR_STMT): Remove.
5530 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
5531 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
5532 replace with assert.
5533 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
5534 (vect_record_grouped_load_vectors): Remove unreachable code.
5535
5536 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
5537
5538 PR target/90016
5539 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
5540 obsolete reference to N.
5541
5542 2019-04-10 Jakub Jelinek <jakub@redhat.com>
5543
5544 PR middle-end/90025
5545 * expr.c (store_expr): Set properly size on the MEM passed to
5546 clear_storage.
5547
5548 PR c++/90010
5549 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
5550 with strlen in between hostsz-3 and hostsz-1 inclusive when no
5551 translation is needed, and when translation is needed, only append
5552 ... if the string length is hostsz or more bytes long. Avoid using
5553 strncpy or strcat.
5554
5555 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
5556
5557 PR target/90024
5558 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
5559 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
5560 into three.
5561 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
5562 differences directly.
5563 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
5564
5565 2019-04-09 Jakub Jelinek <jakub@redhat.com>
5566
5567 PR translation/90011
5568 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
5569 from diagnostics.
5570 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
5571 diagnostics.
5572 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
5573 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
5574 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
5575 trailing space from -gsplit-dwarf diagnostics.
5576
5577 PR tree-optimization/89998
5578 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
5579 instead of integer_type_node if possible, don't add ranges if return
5580 type is not compatible with int.
5581 * gimple-fold.c (gimple_fold_builtin_sprintf,
5582 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
5583 integer_type_node.
5584
5585 2019-04-09 Martin Liska <mliska@suse.cz>
5586
5587 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
5588 * doc/install.texi: Document the new config.
5589
5590 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
5591
5592 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
5593 use gimple_expr_type for load and store calls. Skip over the
5594 condition argument in a conditional internal function.
5595 Protect use of TREE_INT_CST_LOW.
5596
5597 2019-04-09 Jakub Jelinek <jakub@redhat.com>
5598
5599 PR target/90015
5600 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
5601 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
5602 trailing period from it too.
5603
5604 2019-04-08 wu yuan <wuyuan5@huawei.com>
5605
5606 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
5607 * config/aarch64/aarch64.md : Add "tsv110.md"
5608 * config/aarch64/tsv110.md: New file.
5609
5610 2019-04-08 Richard Biener <rguenther@suse.de>
5611
5612 PR tree-optimization/90006
5613 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
5614 calls like lrint.
5615
5616 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
5617
5618 PR target/83033
5619 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
5620 construction.
5621 (fma_root_node): Likewise.
5622 (func_fma_steering): Likewise.
5623
5624 2019-04-08 Jakub Jelinek <jakub@redhat.com>
5625
5626 PR rtl-optimization/89865
5627 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
5628
5629 PR rtl-optimization/89865
5630 * config/i386/i386.md
5631 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
5632 numbers not to clash with the additional operands[4].
5633 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
5634 with extra register copy in the middle.
5635
5636 2019-04-08 Martin Liska <mliska@suse.cz>
5637
5638 PR gcov-profile/89961
5639 * doc/gcov.texi: Document data_file.
5640 * gcov.c (generate_results): Add data_info into JSON output.
5641
5642 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
5643
5644 PR tree-optimization/89725
5645 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
5646 loop's chrec as invariant symbol.
5647 * tree-chrec.h (chrec_contains_symbols): New parameter.
5648 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
5649 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
5650 function of loops not in DDR's loop_nest.
5651 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
5652
5653 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
5654
5655 PR target/89623
5656 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
5657 Mask.
5658
5659 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
5660
5661 PR target/89945
5662 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
5663 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
5664
5665 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
5666
5667 * sched-deps.c (sched_macro_fuse_insns): Check return value of
5668 targetm.fixed_condition_code_regs.
5669
5670 2019-04-05 Richard Biener <rguenther@suse.de>
5671
5672 PR debug/89892
5673 PR debug/89905
5674 * tree-cfgcleanup.c (remove_forwarder_block): Always move
5675 debug bind stmts but reset them if they are not valid at the
5676 destination.
5677
5678 2019-04-05 Martin Liska <mliska@suse.cz>
5679
5680 PR translation/89936
5681 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
5682 order to wrap keywords or arguments.
5683 * collect2.c (main): Likewise.
5684 (scan_prog_file): Likewise.
5685 (scan_libraries): Likewise.
5686 * common/config/riscv/riscv-common.c
5687 (riscv_subset_list::parsing_subset_version): Likewise.
5688 (riscv_subset_list::parse_std_ext): Likewise.
5689 * config/aarch64/aarch64.c (aarch64_override_options_internal):
5690 Likewise.
5691 * config/arm/arm.c (arm_option_override): Likewise.
5692 * config/cris/cris.c (cris_print_operand): Likewise.
5693 * config/darwin-c.c (darwin_pragma_options): Likewise.
5694 (darwin_pragma_unused): Likewise.
5695 (darwin_pragma_ms_struct): Likewise.
5696 * config/ft32/ft32.c (ft32_print_operand): Likewise.
5697 * config/i386/i386.c (print_reg): Likewise.
5698 (ix86_print_operand): Likewise.
5699 * config/i386/xm-djgpp.h: Likewise.
5700 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
5701 * config/m32c/m32c.c (m32c_option_override): Likewise.
5702 * config/msp430/msp430.c (msp430_option_override): Likewise.
5703 * config/nds32/nds32.c (nds32_option_override): Likewise.
5704 * config/nvptx/mkoffload.c (main): Likewise.
5705 * config/rx/rx.c (rx_print_operand): Likewise.
5706 (valid_psw_flag): Likewise.
5707 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
5708 (vms_pragma_nomember_alignment): Likewise.
5709 (vms_pragma_extern_model): Likewise.
5710 * lto-wrapper.c (compile_offload_image): Likewise.
5711 * omp-offload.c (oacc_parse_default_dims): Likewise.
5712 * symtab.c (symtab_node::verify_base): Likewise.
5713 * tlink.c (recompile_files): Likewise.
5714 (start_tweaking): Likewise.
5715 * tree-profile.c (parse_profile_filter): Likewise.
5716
5717 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
5718
5719 PR tree-optimization/89956
5720 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
5721 multiple negates of the same value.
5722
5723 2019-04-04 Martin Sebor <msebor@redhat.com>
5724
5725 PR middle-end/89957
5726 PR middle-end/89911
5727 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
5728 have the same precision since the function crashes otherwise.
5729 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
5730 has non-zero arguments.
5731
5732 2019-04-04 Martin Sebor <msebor@redhat.com>
5733
5734 PR middle-end/89934
5735 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
5736 out if the number of arguments is less than expected.
5737
5738 2019-04-04 Jeff Law <law@redhat.com>
5739
5740 PR rtl-optimization/89399
5741 * ree.c (combine_set_extension): Use single_set rather than
5742 digging into PATTERN for items on the candidate list.
5743 (combine_reaching_defs): Likewise.
5744
5745 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
5746
5747 PR rtl-optimization/46590
5748 * loop-invariant.c (find_defs): Move df_remove_problem and
5749 df_process_deferred_rescans to move_invariants.
5750 Move df_live_add_problem and df_live_set_all_dirty calls
5751 to move_invariants.
5752 (move_invariants): Likewise.
5753 (move_loop_invariants): Likewise, making the df_live calls
5754 conditional on -O. Remove the problem again if we added it
5755 locally.
5756
5757 2019-04-03 qing zhao <qing.zhao@oracle.com>
5758
5759 PR tree-optimization/89730
5760 * ipa-inline.c (can_inline_edge_p): Delete the checking for
5761 -flive-patching=inline-only-static.
5762 (can_inline_edge_by_limits_p): Add the checking for
5763 -flive-patching=inline-only-static and grant always_inline
5764 even when -flive-patching=inline-only-static is specified.
5765
5766 2019-04-03 Jeff Law <law@redhat.com>
5767
5768 PR rtl-optimization/81025
5769 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
5770
5771 2019-04-03 Richard Biener <rguenther@suse.de>
5772
5773 PR tree-optimization/84101
5774 * tree-vect-stmts.c: Include explow.h for hard_function_value,
5775 regs.h for hard_regno_nregs.
5776 (cfun_returns): New helper.
5777 (vect_model_store_cost): When vectorizing a store to a decl
5778 we return and the function ABI returns in a multi-reg location
5779 account for the possible spilling that will happen.
5780
5781 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
5782
5783 * config/s390/s390.c (s390_legitimate_address_p): Reject long
5784 displacement addresses for vector mode operands.
5785
5786 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
5787
5788 * config/arc/arc.c (GMASK_LEN): Define.
5789 (arc_restore_callee_saves): Restore first blink when
5790 !optimize_size.
5791
5792 2019-04-03 Sudakshina Das <sudi.das@arm.com>
5793
5794 * doc/extend.texi: Add deprecated comment on sign-return-address
5795 function attribute and add mbranch-protection.
5796 * doc/invoke.texi: Add bti to the options for mbranch-protection.
5797
5798 2019-04-03 Richard Biener <rguenther@suse.de>
5799
5800 PR lto/89896
5801 * lto-wrapper.c (run_gcc): Avoid implicit rules making
5802 the all target phony.
5803
5804 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
5805
5806 PR target/89902
5807 PR target/89903
5808 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
5809 Return false for variable DImode shifts.
5810 (dimode_scalar_chain::compute_convert_gain): Do not handle
5811 register count operand in variable DImode shifts.
5812 (dimode_scalar_chain::make_vector_copies): Remove support to copy
5813 count argument of a variable shift instruction to a vector register.
5814 (dimode_scalar_chain::convert_reg): Remove support to convert
5815 count argument of a variable shift instruction.
5816
5817 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
5818
5819 PR rtl-optimization/84206
5820 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
5821 iterating over loop headers.
5822
5823 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
5824
5825 PR rtl-optimization/85876
5826 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
5827 beyond the original fence.
5828
5829 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
5830
5831 * config.gcc: Mark spu* targets as deprecated/obsolete.
5832
5833 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5834
5835 * config/s390/s390-builtin-types.def: New builtin function type
5836 definitions. Remove unused types.
5837 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
5838 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
5839 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
5840 overloaded builtins.
5841 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
5842 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
5843 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
5844 (vec_double, vec_signed, vec_unsigned): Define to use the new
5845 overloaded builtins.
5846 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
5847 Remove expanders.
5848
5849 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5850
5851 * config/s390/s390-builtin-types.def: New builtin function type
5852 definitions.
5853 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
5854 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
5855 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
5856 (s390_vstrszh, s390_vstrszf): New low-level builtins.
5857 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
5858 constant definitions.
5859 * config/s390/vecintrin.h (vec_search_string_cc)
5860 (vec_search_string_until_zero_cc): New builtin name definitions.
5861 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
5862 expanders.
5863 ("vec_vstrs<mode>"): New insn definition.
5864
5865 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5866
5867 * config/s390/s390-builtin-types.def: Add new builtin function
5868 types.
5869 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
5870 New overloaded builtins.
5871 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
5872 s390_vsrd.
5873 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
5874 (UNSPEC_VEC_SLDBYTE): ... this.
5875 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
5876 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
5877 definitions.
5878 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
5879 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
5880 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
5881
5882 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5883
5884 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
5885 New insn definition.
5886 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
5887 * config/s390/vector.md (V_HW_HSD): ... here.
5888
5889 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5890
5891 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
5892 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
5893 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
5894 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
5895 New insn definitions.
5896
5897 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5898
5899 * config/s390/s390-builtin-types.def: Add new builtin function type.
5900 * config/s390/s390-builtins.def: Add overloaded builtin
5901 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
5902 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
5903 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
5904 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
5905 ("eltswap<mode>"): New expander.
5906 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
5907 insn definitions.
5908
5909 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5910
5911 * config/s390/s390-builtin-types.def: Add new builtin function types.
5912 * config/s390/s390-builtins.def: Add overloaded builtin
5913 s390_vec_revb. Add low-level builtins for vlbr and vstbr
5914 instructions.
5915 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
5916 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
5917 ("bswap<mode>"): New expander.
5918 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
5919
5920 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5921
5922 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
5923 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
5924 vector builtin version number in __VEC__.
5925
5926 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5927
5928 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
5929 iterators.
5930 (SFSI): New mode attribute.
5931 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
5932 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
5933 rename to ...
5934 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
5935 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
5936 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
5937 ("floatsi<mode>2"): Add wcefb instruction.
5938
5939 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5940
5941 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
5942 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
5943 mode iterators.
5944 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
5945 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
5946 support 32 bit fp-int conversions. Rename to ...
5947 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
5948 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
5949 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
5950 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
5951 ... to these.
5952
5953 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5954
5955 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
5956 if-then-else constructs if we can use the select instruction.
5957 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
5958
5959 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5960
5961 * config/s390/s390.md ("*popcountdi_arch13_cc")
5962 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
5963 definition.
5964 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
5965 Append _z196 to make it ...
5966 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
5967 ("popcounthi2_z196"): ... this.
5968 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
5969 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
5970
5971 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5972
5973 * config/s390/s390.c (s390_canonicalize_comparison): Convert
5974 certain compares for arch13 in order to make use of the condition
5975 code result produced by the new instructions.
5976 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
5977 nxrk, and nxgrk instruction patterns.
5978 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
5979 (inv_no): Add new code iterator together with some attributes.
5980 ("*andc_split_<mode>"): Disable splitter for arch13.
5981 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
5982 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
5983 ("*<ANDOR:bitops_name>c<GPR:mode>")
5984 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
5985 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
5986 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
5987 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
5988
5989 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
5990
5991 * common/config/s390/s390-common.c (processor_flags_table): New
5992 entry for arch13.
5993 * config.gcc: Support arch13 with the --with-arch= configure flag.
5994 * config/s390/driver-native.c (s390_host_detect_local_cpu):
5995 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
5996 * config/s390/s390.c (s390_get_sched_attrmask)
5997 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
5998 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
5999 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
6000 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
6001 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
6002 definitions.
6003 * config/s390/s390.opt: Support arch13 as processor type in
6004 command line options.
6005
6006 2019-04-02 Martin Liska <mliska@suse.cz>
6007
6008 PR translation/89912
6009 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
6010 Fix param description of graphite-max-arrays-per-scop.
6011
6012 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
6013
6014 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
6015 (ASAN_CC1_SPEC): Use it in 64-bit mode.
6016 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
6017
6018 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6019
6020 PR rtl-optimization/85412
6021 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
6022 sel_sched_region_1, not after.
6023
6024 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6025
6026 PR rtl-optimization/86928
6027 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
6028 compute_live if necessary.
6029 (sel_redirect_edge_and_branch): Likewise.
6030
6031 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
6032
6033 PR rtl-optimization/89865
6034 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
6035 register if it is a part of small class.
6036
6037 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
6038
6039 PR rtl-optimization/87273
6040 * sel-sched-ir.c (merge_fences): Remove assert.
6041
6042 2019-04-01 Richard Biener <rguenther@suse.de>
6043
6044 PR tree-optimization/46590
6045 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
6046 (dom_walker::m_reachability): Add in place of...
6047 (dom_walker::m_skip_unreachable_blocks): ...this.
6048 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
6049 Move complex initialization ...
6050 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
6051 lazily and initialize edge flags on each invocation.
6052 (dom_walker::bb_reachable): Use m_reachability.
6053
6054 2019-04-01 Martin Liska <mliska@suse.cz>
6055
6056 PR driver/89861
6057 * opt-suggestions.c (option_proposer::build_option_suggestions):
6058 Add variant without any argument in order to provide better
6059 hints.
6060
6061 2019-04-01 Richard Biener <rguenther@suse.de>
6062
6063 PR c/71598
6064 * gimple.c: Include langhooks.h.
6065 (gimple_get_alias_set): Treat enumeral types as the underlying
6066 integer type.
6067
6068 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
6069 Eric Botcazou <ebotcazou@adacore.com>
6070
6071 PR rtl-optimization/89862
6072 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
6073 that operates on the full registers for WORD_REGISTER_OPERATIONS
6074 architectures.
6075
6076 2019-03-29 Jim Wilson <jimw@sifive.com>
6077
6078 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
6079 Clear MASK_RVC and then set if C subset supported.
6080
6081 2019-03-29 Jakub Jelinek <jakub@redhat.com>
6082
6083 PR c/89872
6084 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
6085 non-addressable complit into its initializer if it is volatile.
6086
6087 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
6088
6089 * opts-common.c (integral_argument): Set errno properly in one case.
6090
6091 2019-03-29 Martin Liska <mliska@suse.cz>
6092
6093 * doc/invoke.texi: Remove -Wchkp from documentation.
6094
6095 2019-03-29 Martin Liska <mliska@suse.cz>
6096
6097 * dbgcnt.c (print_limit_reach): New function.
6098 (dbg_cnt): Use it.
6099
6100 2019-03-29 Martin Liska <mliska@suse.cz>
6101
6102 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
6103 (dbg_cnt_process_opt): Parse first tokens aas
6104 dbg_cnt_process_single_pair is also using strtok.
6105
6106 2019-03-29 Jakub Jelinek <jakub@redhat.com>
6107
6108 PR rtl-optimization/87485
6109 * function.c (expand_function_end): Move stack_protect_epilogue
6110 before loading of return value into hard register(s).
6111
6112 2019-03-28 Jakub Jelinek <jakub@redhat.com>
6113
6114 PR middle-end/89621
6115 * tree-inline.h (struct copy_body_data): Add
6116 dont_remap_vla_if_no_change flag.
6117 * tree-inline.c (remap_type_3, remap_type_2): New functions.
6118 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
6119 and remap_type_2 returns false.
6120 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
6121 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
6122 only from where it is copied to nested contexts.
6123
6124 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
6125
6126 PR target/89865
6127 * config/i386/i386.md (RMW operation with LEA peephole):
6128 Use LEAMODE mode attribute instead of SWI mode iterator for
6129 LEA pattern.
6130
6131 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
6132
6133 PR target/89848
6134 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
6135 Also process XEXP (src, 0) of a shift insn.
6136
6137 2019-03-28 David Malcolm <dmalcolm@redhat.com>
6138
6139 PR middle-end/89725
6140 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
6141 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
6142
6143 2019-03-28 Jakub Jelinek <jakub@redhat.com>
6144
6145 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
6146 test.
6147 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
6148 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
6149 immediately after first one with df_analyze in between, but rather
6150 process all bbs, queueing ones that need second pass in a worklist,
6151 df_analyze, process queued debug insn changes and if second pass is
6152 needed, process bbs from worklist, df_analyze, process queued debug
6153 insns again.
6154
6155 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
6156 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
6157 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
6158
6159 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
6160
6161 PR c/79022
6162 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
6163 definition.
6164
6165 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
6166
6167 PR target/85667
6168 * config/i386/i386.c (ix86_function_value_1): Call the newly added
6169 function for 32-bit MS_ABI.
6170 (function_value_ms_32): New function.
6171
6172 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
6173
6174 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
6175 (movdi): Call gen_movdi_symbol_save_scc.
6176 (gen_movdi_symbol_save_scc): New insn and split.
6177
6178 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
6179
6180 PR rtl-optimization/89313
6181 * function.c (matching_constraint_num): New static function.
6182 (match_asm_constraints_1): Use it. Fixup white space and comment.
6183 Don't replace inputs with non-matching constraints which conflict
6184 with early clobber outputs.
6185
6186 2019-03-27 Jeff Law <law@redhat.com>
6187
6188
6189 PR rtl-optimization/87761
6190 PR rtl-optimization/89826
6191 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
6192 slightly later.
6193 (pass_cprop_hardreg::execute): Call df_analyze after adding the
6194 note problem to get REG_DEAD/REG_UNUSED notes updated.
6195
6196 2019-03-27 Richard Biener <rguenther@suse.de>
6197
6198 PR tree-optimization/89463
6199 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
6200 queue edges to remove.
6201 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
6202 dead stmts. Delay edge removal until PHIs are removed to
6203 make debug-stmt creation not confused by seemingly degenerate
6204 PHIs.
6205
6206 2019-03-27 Alan Modra <amodra@gmail.com>
6207
6208 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
6209 throughout file.
6210 * config/rs6000/darwin.h: Likewise.
6211 * config/rs6000/rs6000.c: Likewise.
6212
6213 2019-03-27 Alan Modra <amodra@gmail.com>
6214
6215 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
6216 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
6217
6218 2019-03-26 Andrew Waterman <andrew@sifive.com>
6219 Jim Wilson <jimw@sifive.com>
6220
6221 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
6222 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
6223 (generic_idivdi, generic_fmul_single, generic_fmul_double)
6224 (generic_fdiv, generic_fsqrt): Add check for generic tune.
6225 (generic_alu): Add auipc to type list.
6226 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
6227 (riscv_microarchitecture): Declare.
6228 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
6229 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
6230 field.
6231 (riscv_microarchitecture): New.
6232 (sifive_7_tune_info): New.
6233 (riscv_cpu_info_table): Add microarchitecture value for rocket and
6234 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
6235 entries.
6236 (riscv_store_data_bypass_p): New.
6237 (riscv_option_override): Set riscv_microarchitecture from
6238 cpu->microarchitecture.
6239 * config/riscv/riscv.md: Include sifive-7.md.
6240 (type): Add auipc.
6241 (tune): New.
6242 (auipc<mode>): Change type to auipc.
6243 (restore_stack_nonlocal): New.
6244 * config/riscv/sifive-7.md: New.
6245 * doc/invoke.texi (RISC-V Options): Update mtune docs.
6246
6247 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
6248
6249 PR target/89827
6250 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
6251 Also process XEXP (src, 0) of a shift insn.
6252
6253 2019-03-26 Richard Biener <rguenther@suse.de>
6254
6255 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
6256 (copy_debug_stmt): Likewise.
6257 (expand_call_inline): Likewise.
6258 (copy_bb): Avoid redundant lookup & set of gimple_block.
6259 * gimple-low.c (lower_gimple_return): Likewise.
6260 (lower_builtin_setjmp): Likewise.
6261
6262 2019-03-26 Jakub Jelinek <jakub@redhat.com>
6263
6264 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
6265 is constant 0, turn into static const data member initialized to false.
6266 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
6267 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
6268
6269 2019-03-26 Jason Merrill <jason@redhat.com>
6270 Jakub Jelinek <jakub@redhat.com>
6271
6272 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
6273 method.
6274 (mem_alloc_description::release_object_overhead): Fix comment typos.
6275 * hash-table.h (hash_table::~hash_table): Call
6276 release_instance_overhead only if m_entries is non-NULL, otherwise
6277 call unregister_descriptor.
6278
6279 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
6280
6281 PR tree-optimization/81740
6282 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
6283 In case of outer loop vectorization, check for backward dependence
6284 at the inner loop if outer loop dependence is reversed.
6285
6286 2019-03-26 Alan Modra <amodra@gmail.com>
6287
6288 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
6289 rs6000_vector_mem init. Correct wI and wJ comment.
6290
6291 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
6292
6293 PR rtl-optimization/88347
6294 PR rtl-optimization/88423
6295 * sched-deps.c (sched_analyze_insn): Take into account that for
6296 tablejumps the barrier appears after a label and a jump_table_data.
6297
6298 2019-03-25 Martin Sebor <msebor@redhat.com>
6299
6300 PR c/89812
6301 * c-common.c (check_user_alignment): Rename local. Correct maximum
6302 alignment in diagnostic. Avoid assuming argument fits in SHWI,
6303 convert it to UHWI when it fits.
6304
6305 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
6306
6307 PR debug/86964
6308 * dwarf2out.c (premark_used_variables): New function.
6309 (prune_unused_types_walk): Do not mark not premarked external
6310 variables.
6311 (prune_unused_types): Call premark_used_variables.
6312
6313 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
6314
6315 PR rtl-optimization/89676
6316 * lra-constraints.c (curr_insn_transform): Do match reload for
6317 early clobbers when the match was successful only for different
6318 registers.
6319
6320 2019-03-25 Martin Sebor <msebor@redhat.com>
6321
6322 * doc/extend.texi (Common Type Attributes): Document vector_size.
6323 (Common Variable Attributes): Mention size constraint. Correct
6324 quoting and typos.
6325 (Vector Extensions): Use @dfn when defining bas type. Clarify
6326 base type and size constraints.
6327
6328 2019-03-25 Richard Biener <rguenther@suse.de>
6329
6330 PR tree-optimization/89789
6331 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
6332 changes from non-undefined back to undefined.
6333
6334 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
6335
6336 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
6337 heap string and a gc string, but since this variable is unknown to
6338 ggc the gc string might get reused and corrupted. Fixed by always
6339 using a heap string.
6340
6341 2019-03-25 Richard Biener <rguenther@suse.de>
6342
6343 PR tree-optimization/89779
6344 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
6345 to remove IV defs, delay actual removal.
6346 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
6347 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
6348 very end, properly also reset loop control IV information.
6349
6350 2019-03-25 Richard Biener <rguenther@suse.de>
6351
6352 PR tree-optimization/89802
6353 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
6354 move EH data to folded stmt.
6355
6356 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
6357
6358 * config/s390/s390-builtin-types.def: Remove few unused types and
6359 fix sort order for others.
6360
6361 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
6362
6363 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
6364 expected and found types with -mdebug during builtin matching.
6365
6366 2019-03-25 Richard Biener <rguenther@suse.de>
6367
6368 PR middle-end/89790
6369 * fold-const.c (operand_equal_p): Revert last change with
6370 updated comment.
6371
6372 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
6373
6374 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
6375 notes for the result of the __tls_get_addr calls.
6376 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
6377
6378 2019-03-24 Jeff Law <law@redhat.com>
6379
6380 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
6381
6382 PR rtl-optimization/87761
6383 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
6384 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
6385 as needed.
6386 (pass_cprop_hardreg::execute): Add df note problem and defer insn
6387 rescans. Reprocess blocks as needed, calling df_analyze before
6388 reprocessing. Always call df_analyze before fixing up debug bind
6389 insns.
6390
6391 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
6392
6393 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
6394 big endian.
6395
6396 2019-03-22 Andrew Pinski <apinski@marvell.com>
6397
6398 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
6399 attrribute for uxtw.
6400
6401 2019-03-26 Jeff Law <law@redhat.com>
6402
6403 PR rtl-optimization/87761
6404 * config/mips/mips-protos.h (mips_split_move): Add new argument.
6405 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
6406 (mips_split_move): Accept new INSN argument. Try to forward SRC
6407 into the next instruction.
6408 (mips_split_move_insn): Pass INSN through to mips_split_move.
6409
6410 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
6411
6412 PR rtl-optimization/89676
6413 * lra-constraints.c (curr_insn_transform): Do match reload for
6414 early clobbers even if the match was successful.
6415
6416 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6417
6418 PR c++/87481
6419 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
6420
6421 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
6422
6423 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
6424
6425 2019-03-22 Jakub Jelinek <jakub@redhat.com>
6426
6427 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
6428 <avx512>_fmsub_<mode>_mask3<round_name>,
6429 <avx512>_fnmadd_<mode>_mask3<round_name>,
6430 <avx512>_fnmsub_<mode>_mask3<round_name>,
6431 avx512f_vmfmadd_<mode>_mask3<round_name>,
6432 avx512f_vmfmsub_<mode>_mask3<round_name>,
6433 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
6434 instead of register_operand and %v instead of v for match_operand 1.
6435 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
6436 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
6437 <round_nimm_predicate> instead of register_operand and %v instead of v
6438 for match_operand 1.
6439
6440 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
6441 <avx512>_fmadd_<mode>_mask3<round_name>,
6442 <avx512>_fmsub_<mode>_mask<round_name>,
6443 <avx512>_fmsub_<mode>_mask3<round_name>,
6444 <avx512>_fnmadd_<mode>_mask<round_name>,
6445 <avx512>_fnmadd_<mode>_mask3<round_name>,
6446 <avx512>_fnmsub_<mode>_mask<round_name>,
6447 <avx512>_fnmsub_<mode>_mask3<round_name>,
6448 <avx512>_fmaddsub_<mode>_mask<round_name>,
6449 <avx512>_fmaddsub_<mode>_mask3<round_name>,
6450 <avx512>_fmsubadd_<mode>_mask<round_name>,
6451 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
6452 <round_nimm_predicate> instead of nonimmediate_operand.
6453 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
6454 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
6455 Use register_operand instead of <round_nimm_predicate> for the
6456 operand that needs to match output.
6457 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
6458 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
6459 Likewise. Formatting fixes.
6460
6461 PR target/89784
6462 * config/i386/i386.c (enum ix86_builtins): Remove
6463 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
6464 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
6465 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
6466 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
6467 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
6468 __builtin_ia32_vfmsubss3_mask3): New builtins.
6469 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
6470 avx512f_vmfmadd_<mode>_mask3<round_name>,
6471 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
6472 *avx512f_vmfmsub_<mode>_mask<round_name>,
6473 avx512f_vmfmsub_<mode>_mask3<round_name>,
6474 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
6475 *avx512f_vmfnmadd_<mode>_mask<round_name>,
6476 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
6477 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
6478 *avx512f_vmfnmsub_<mode>_mask<round_name>,
6479 avx512f_vmfnmsub_<mode>_mask3<round_name>,
6480 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
6481 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
6482 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
6483 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
6484 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
6485 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
6486 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
6487 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
6488 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
6489 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
6490 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
6491 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
6492 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
6493 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
6494 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
6495 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
6496 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
6497 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
6498 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
6499 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
6500 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
6501 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
6502
6503 2019-03-21 Martin Sebor <msebor@redhat.com>
6504
6505 PR tree-optimization/89350
6506 * builtins.c (compute_objsize): Also ignore offsets whose upper
6507 bound is negative.
6508 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
6509 (builtin_memref::builtin_memref): Initialize new member.
6510 Allow EXPR to be null.
6511 (builtin_memref::extend_offset_range): Replace local with a member.
6512 Avoid assuming pointer offsets are unsigned.
6513 (builtin_memref::set_base_and_offset): Determine base object
6514 before computing offset range.
6515 (builtin_access::builtin_access): Handle memset.
6516 (builtin_access::generic_overlap): Replace local with a member.
6517 (builtin_access::strcat_overlap): Same.
6518 (builtin_access::overlap): Same.
6519 (maybe_diag_overlap): Same.
6520 (maybe_diag_access_bounds): Same.
6521 (wrestrict_dom_walker::check_call): Handle memset.
6522 (check_bounds_or_overlap): Same.
6523
6524 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
6525 Jakub Jelinek <jakub@redhat.com>
6526
6527 PR lto/89692
6528 * tree.c (fld_type_variant, fld_incomplete_type_of,
6529 fld_process_array_type): Call fld->pset.add and don't call
6530 add_tree_to_fld_list if it returns true.
6531 (free_lang_data_in_type): Similarly with self-recursive call. Purge
6532 non-marked types from TYPE_NEXT_VARIANT list.
6533 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
6534
6535 2019-03-21 Jakub Jelinek <jakub@redhat.com>
6536
6537 * hash-table.h (hash_table): Add Lazy template parameter defaulted
6538 to false, if true, don't alloc_entries during construction, but defer
6539 it to the first method that needs m_entries allocated.
6540 (hash_table::hash_table, hash_table::~hash_table,
6541 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
6542 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
6543 hash_table::clear_slot, hash_table::traverse_noresize,
6544 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
6545 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
6546 false.
6547 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
6548 NO_INSERT instead of find_with_hash.
6549 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
6550 hash_set::m_table): Add Lazy to template params of hash_table.
6551 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
6552 * attribs.c (test_attribute_exclusions): Likewise.
6553 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
6554 hash_set. Add tests for hash_set with Lazy = true.
6555
6556 2019-03-21 Richard Biener <rguenther@suse.de>
6557
6558 PR tree-optimization/89779
6559 * tree.c (tree_nop_conversion): Consolidate and fix defensive
6560 checks with respect to released SSA names now having error_mark_node
6561 type.
6562 * fold-const.c (operand_equal_p): Likewise.
6563
6564 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
6565
6566 PR target/89775
6567 * config/s390/s390.c (global_not_special_regno_p): Move to make it
6568 available to ...
6569 (s390_optimize_register_info): Use global_not_special_regno_p to
6570 check for global regs.
6571
6572 2019-03-20 Jakub Jelinek <jakub@redhat.com>
6573
6574 PR target/89752
6575 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
6576 update this_alternative nor this_alternative_set.
6577
6578 2019-03-19 Jim Wilson <jimw@sifive.com>
6579
6580 PR target/89411
6581 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
6582 align, size, offset. Use them to handle a BLKmode reference. Update
6583 comment.
6584 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
6585
6586 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6587
6588 PR rtl-optimization/89768
6589 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
6590 instead of GEN_INT.
6591 (unroll_loop_runtime_iterations): Likewise.
6592
6593 2019-03-19 Martin Sebor <msebor@redhat.com>
6594
6595 PR tree-optimization/89644
6596 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
6597 rather than endptr as an indicator of nul-termination.
6598
6599 PR tree-optimization/89644
6600 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
6601 arrays in determining sequence sizes in strncpy and stpncpy.
6602
6603 2019-03-19 Martin Liska <mliska@suse.cz>
6604
6605 PR middle-end/89737
6606 * predict.c (combine_predictions_for_bb): Empty likely_edges and
6607 unlikely_edges if there's an edge that belongs to both these sets.
6608
6609 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
6610
6611 PR target/89746
6612 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
6613 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
6614 go via a stack temporary.
6615
6616 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6617
6618 PR target/89378
6619 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
6620 instead of gen_rtx_SUBREG.
6621 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
6622
6623 2019-03-19 Richard Biener <rguenther@suse.de>
6624
6625 PR debug/88389
6626 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
6627
6628 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
6629
6630 PR lto/87809
6631 PR lto/89335
6632 * tree.c (free_lang_data_in_decl): Do not free context of C++
6633 destrutors.
6634
6635 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6636
6637 PR target/89506
6638 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
6639 subs for the first alternative except when operands[3] is 1.
6640
6641 PR target/89752
6642 * gimplify.c (gimplify_asm_expr): For output argument with
6643 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
6644 diagnose error.
6645
6646 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
6647
6648 PR rtl-optimization/89753
6649 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
6650 explicit unrolling factor even more robust.
6651
6652 2019-03-19 Jakub Jelinek <jakub@redhat.com>
6653
6654 PR target/89726
6655 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
6656 compensation use x2 += 1 instead of x2 -= -1 and when honoring
6657 signed zeros, do another copysign after the compensation.
6658
6659 2019-03-18 Martin Sebor <msebor@redhat.com>
6660
6661 PR tree-optimization/89720
6662 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
6663 more conservatively, the same as anti-range.
6664
6665 2019-03-18 Richard Biener <rguenther@suse.de>
6666
6667 PR middle-end/88945
6668 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
6669 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
6670 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
6671 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
6672
6673 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
6674
6675 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
6676 Extend queue to 1024 entries.
6677 Add "consumed" field.
6678 (gomp_print_output): Remove print_index parameter.
6679 Add final parameter.
6680 Change limit to unsigned.
6681 Use consumed field to implement circular buffer.
6682 Detect interrupted print in final pass.
6683 Flush output at the end.
6684 (run): Update gomp_print_output usage.
6685 (main): Initialize kernargs->output_data.consumed.
6686
6687 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
6688
6689 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
6690 calculation of the minimum number of scalar iterations for
6691 fully-predicated loops.
6692
6693 2019-03-18 Martin Jambor <mjambor@suse.cz>
6694
6695 PR tree-optimization/89546
6696 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
6697 any propagation to its children took place.
6698
6699 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
6700
6701 PR target/89627
6702 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
6703 parameter, and make use of it.
6704 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
6705
6706 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6707
6708 * config/arc/arc.opt (mcode-density-frame): Get the inital value
6709 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
6710 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
6711 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
6712 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
6713 match what the ops is doing.
6714 (push_multi_fp_blink): Likewise.
6715 * config/arc/arc.c (arc_override_options): Enable enter/leave when
6716 compiling for size and elf target.
6717 (arc_save_callee_enter): Adjust note to match what enter/leave
6718 operation does.
6719
6720 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6721
6722 * config/arc/arc.md (tst_movb): Fix constraint.
6723
6724 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6725
6726 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
6727
6728 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
6729
6730 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
6731 * config/arc/arc.c (arc_conditional_register_usage): Remove all
6732 reg_alloc_order references.
6733 (size_alloc_order): Define.
6734 (arc_adjust_reg_alloc_order): New function.
6735 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
6736 order.
6737 (ADJUST_REG_ALLOC_ORDER): Define.
6738 (HONOR_REG_ALLOC_ORDER): Likewise.
6739
6740 2019-03-18 Richard Biener <rguenther@suse.de>
6741
6742 PR target/87561
6743 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
6744 loads and stores a bit more.
6745
6746 2019-03-18 Richard Biener <rguenther@suse.de>
6747
6748 PR target/87561
6749 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
6750 load pessimization to stores as well.
6751
6752 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
6753
6754 PR middle-end/86979
6755 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
6756 successor, use NULL as its av set.
6757
6758 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
6759
6760 PR rtl-optimization/89721
6761 * lra-constraints (invariant_p): Return false if side_effects_p holds.
6762
6763 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
6764
6765 PR target/87532
6766 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
6767 When handling vec_extract, use modular arithmetic to allow
6768 constant selectors greater than vector length.
6769 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
6770 V1TImode vectors to have constant selector values greater than 0.
6771 Use modular arithmetic to compute vector index.
6772 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
6773 index for in-memory vectors. Correct code generation for
6774 in-register vectors.
6775 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
6776 compute index.
6777
6778 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
6779
6780 PR c++/88534
6781 PR c++/88537
6782 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
6783 VAR_DECL args.
6784
6785 2019-03-15 Jakub Jelinek <jakub@redhat.com>
6786
6787 PR c++/89709
6788 * tree.c (inchash::add_expr): Strip any location wrappers.
6789 * fold-const.c (operand_equal_p): Move stripping of location wrapper
6790 after hash verification.
6791
6792 PR debug/89704
6793 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
6794 SIGN_EXTEND and ZERO_EXTEND.
6795
6796 2019-03-14 Jason Merrill <jason@redhat.com>
6797 Jakub Jelinek <jakub@redhat.com>
6798
6799 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
6800 than if is_empty (*slot).
6801 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
6802 existing elt and for elt removal.
6803 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
6804 of already removed elt.
6805
6806 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
6807
6808 PR target/89650
6809 * config/i386/i386.c (remove_partial_avx_dependency): Handle
6810 REG_EH_REGION note.
6811
6812 2019-03-14 Martin Liska <mliska@suse.cz>
6813
6814 PR other/89712
6815 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
6816
6817 2019-03-14 Richard Biener <rguenther@suse.de>
6818
6819 PR target/89711
6820 * config/i386/i386.c (make_resolver_func): Properly set
6821 DECL_CONTEXT on the RESULT_DECL.
6822 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
6823
6824 2019-03-14 Richard Biener <rguenther@suse.de>
6825
6826 * gimple-pretty-print.c: Include cfgloop.h.
6827 (dump_gimple_phi): Adjust.
6828 (dump_gimple_bb_header): Dump loop header for GIMPLE.
6829 (pp_cfg_jump): Adjust.
6830 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
6831 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
6832 (lower_phi_internal_fn): Remove.
6833 (verify_gimple_call): Remove IFN_PHI special-casing.
6834 (dump_function_to_file): Dump IL state.
6835 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
6836 done to deal with PHI nodes being present in non-SSA state.
6837
6838 2019-03-14 Jakub Jelinek <jakub@redhat.com>
6839
6840 PR ipa/89684
6841 * multiple_target.c (create_dispatcher_calls): Change
6842 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
6843 In the node->iterate_referring loop, push *ref rather than ref, call
6844 ref->remove_reference () and always pass 0 to iterate_referring.
6845
6846 PR rtl-optimization/89679
6847 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
6848 would contain a paradoxical SUBREG.
6849
6850 2019-03-14 Richard Biener <rguenther@suse.de>
6851
6852 PR tree-optimization/89710
6853 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
6854 safe_dyn_cast.
6855
6856 2019-03-14 Martin Liska <mliska@suse.cz>
6857
6858 * coverage.c (coverage_begin_function): Stream also
6859 end_column.
6860 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
6861 documentation about function declaration location.
6862 * gcov-dump.c (tag_function): Print whole range
6863 of function declaration.
6864 * gcov.c (struct function_info): Add end_column field.
6865 (function_info::function_info): Initialize it.
6866 (output_json_intermediate_file): Output {start,end}_column
6867 fields.
6868 (read_graph_file): Read end_column.
6869
6870 2019-03-14 Richard Biener <rguenther@suse.de>
6871
6872 PR middle-end/89698
6873 * fold-const.c (operand_equal_p): For INDIRECT_REF check
6874 that the access types are similar.
6875
6876 2019-03-14 Jakub Jelinek <jakub@redhat.com>
6877
6878 PR tree-optimization/89703
6879 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
6880 aren't compatible also with builtin_decl_explicit. Check pure
6881 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
6882 and BUILT_IN_STPNCPY{,_CHK}.
6883
6884 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
6885
6886 PR target/89523
6887 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
6888 addr32 prefix to VSIB address for X32.
6889 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
6890 "%M2" to opcode.
6891 (*avx512pf_gatherpf<mode>df_mask): Likewise.
6892 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
6893 (*avx512pf_scatterpf<mode>df_mask): Likewise.
6894 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
6895 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
6896 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
6897 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
6898 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
6899 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
6900 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
6901 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
6902 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
6903 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
6904 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
6905 (*avx512f_scatterdi<mode>): Likewise.
6906
6907 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
6908
6909 PR target/85860
6910 * lra-constraints.c (inherit_in_ebb): Update
6911 potential_reload_hard_regs along with live_hard_regs.
6912
6913 2019-03-13 Jakub Jelinek <jakub@redhat.com>
6914
6915 PR debug/89498
6916 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
6917 DWARF_OFFSET_SIZE.
6918 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
6919
6920 2019-03-13 Martin Sebor <msebor@redhat.com>
6921
6922 PR tree-optimization/89662
6923 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
6924 has a size.
6925
6926 2019-03-13 Richard Biener <rguenther@suse.de>
6927
6928 PR middle-end/89677
6929 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
6930 throw FP expressions at tree-affine.
6931
6932 2019-03-14 Richard Biener <rguenther@suse.de>
6933
6934 * tree-pretty-print.c (dump_generic_node): For -gimple properly
6935 dump negative integer constants using _Literal (type) -num.
6936
6937 2019-03-13 Jakub Jelinek <jakub@redhat.com>
6938
6939 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
6940 nonlocal_value member.
6941
6942 PR middle-end/88588
6943 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
6944 (ipa_simd_modify_function_body): Handle PHIs.
6945
6946 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
6947
6948 * config/s390/s390.c (s390_option_override_internal): Use more
6949 aggressive inlining parameters.
6950
6951 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
6952
6953 * config/s390/3906.md: New file.
6954 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
6955 (LONGRUNNING_THRESHOLD): Remove.
6956 (MAX_SCHED_MIX_SCORE): Decrease.
6957 (MAX_SCHED_MIX_DISTANCE): Decrease.
6958 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
6959 (struct s390_sched_state): New struct to hold scheduling state.
6960 (S390_SCHED_STATE_NORMAL): Remove.
6961 (S390_SCHED_STATE_CRACKED): Remove.
6962 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
6963 (s390_get_sched_attrmask): Use new attribute.
6964 (s390_get_unit_mask): Use new units.
6965 (s390_is_fpd): New function.
6966 (s390_is_fxd): New function.
6967 (s390_is_longrunning): New function.
6968 (s390_sched_score): Use new functions.
6969 (s390_sched_reorder): Likewise.
6970 (s390_sched_variable_issue): Rework and use new functions.
6971 (s390_sched_init): Use new functions.
6972 * config/s390/s390.h (s390_tune_attr): Add z14.
6973 * config/s390/s390.md: Add z14.
6974
6975 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
6976
6977 * config/s390/2964.md: Update pipeline description.
6978 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
6979 (LONGRUNNING_THRESHOLD): Remove.
6980 (LATENCY_FACTOR): Remove.
6981 (s390_get_unit_mask): Add unit.
6982 (s390_sched_score): Use fxd/fpd.
6983 (s390_sched_variable_issue): Use fxd/fpd.
6984
6985 2019-03-12 Martin Liska <mliska@suse.cz>
6986
6987 * config/i386/i386.c: Reword an error message.
6988
6989 2019-03-12 Martin Jambor <mjambor@suse.cz>
6990
6991 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
6992 terminate with newline.
6993
6994 2019-03-12 Jakub Jelinek <jakub@redhat.com>
6995
6996 PR target/52726
6997 * config/s390/s390.md (tabort): Use %wd instead of
6998 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
6999 letters and periods.
7000 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
7001 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
7002 's with %< and %>.
7003
7004 PR middle-end/89663
7005 * builtins.c (expand_builtin_int_roundingfn,
7006 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
7007 gcc_unreachable if validate_arglist fails.
7008
7009 2019-03-12 Richard Biener <rguenther@suse.de>
7010
7011 PR tree-optimization/89664
7012 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
7013 free the occurance tree after the early out.
7014
7015 2019-03-11 Jakub Jelinek <jakub@redhat.com>
7016
7017 PR middle-end/89655
7018 PR bootstrap/89656
7019 * vr-values.c (vr_values::update_value_range): If
7020 old_vr->varying_p (), don't update it, make new_vr also VARYING
7021 and return false.
7022
7023 2019-03-11 Martin Liska <mliska@suse.cz>
7024
7025 * config/aarch64/aarch64.c (aarch64_override_options_internal):
7026 Fix double string quoting.
7027
7028 2019-03-11 Martin Liska <mliska@suse.cz>
7029
7030 * collect-utils.c (collect_wait): Wrap apostrophes
7031 in gcc internal format with %'.
7032 * collect2.c (main): Likewise.
7033 (scan_prog_file): Likewise.
7034 (scan_libraries): Likewise.
7035 * config/i386/i386.c (ix86_expand_call): Likewise.
7036 (ix86_handle_interrupt_attribute): Likewise.
7037 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
7038 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
7039 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
7040 * lto-wrapper.c (find_crtoffloadtable): Likewise.
7041 * symtab.c (symtab_node::verify_base): Likewise.
7042 * tree-cfg.c (verify_gimple_label): Likewise.
7043 * tree.c (verify_type_variant): Likewise.
7044
7045 2019-03-11 Martin Liska <mliska@suse.cz>
7046
7047 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
7048 in a string format message and fix GNU coding style.
7049 (expand_builtin_set_thread_pointer): Likewise.
7050 * common/config/aarch64/aarch64-common.c
7051 (aarch64_rewrite_selected_cpu): Likewise.
7052 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
7053 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
7054 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
7055 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
7056 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
7057 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
7058 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
7059 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
7060 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
7061 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
7062 Likewise.
7063 * common/config/riscv/riscv-common.c
7064 (riscv_subset_list::parsing_subset_version): Likewise.
7065 (riscv_subset_list::parse_std_ext): Likewise.
7066 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
7067 (riscv_subset_list::parse): Likewise.
7068 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
7069 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
7070 (aarch64_override_options_internal): Likewise.
7071 (aarch64_validate_mcpu): Likewise.
7072 (aarch64_validate_march): Likewise.
7073 (aarch64_validate_mtune): Likewise.
7074 (aarch64_override_options): Likewise.
7075 * config/alpha/alpha.c (alpha_option_override): Likewise.
7076 * config/arc/arc.c (arc_init): Likewise.
7077 (parse_mrgf_banked_regs_option): Likewise.
7078 (arc_override_options): Likewise.
7079 (arc_expand_builtin_aligned): Likewise.
7080 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
7081 (arm_expand_builtin): Likewise.
7082 * config/arm/arm.c (arm_option_check_internal): Likewise.
7083 (arm_configure_build_target): Likewise.
7084 (arm_option_override): Likewise.
7085 (arm_options_perform_arch_sanity_checks): Likewise.
7086 (arm_handle_cmse_nonsecure_entry): Likewise.
7087 (arm_handle_cmse_nonsecure_call): Likewise.
7088 (arm_tls_referenced_p): Likewise.
7089 (thumb1_expand_prologue): Likewise.
7090 * config/avr/avr.c (avr_option_override): Likewise.
7091 * config/bfin/bfin.c (bfin_option_override): Likewise.
7092 * config/c6x/c6x.c (c6x_option_override): Likewise.
7093 * config/cr16/cr16.c (cr16_override_options): Likewise.
7094 * config/cris/cris.c (cris_option_override): Likewise.
7095 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
7096 * config/darwin-c.c (macosx_version_as_macro): Likewise.
7097 * config/darwin.c (darwin_override_options): Likewise.
7098 * config/frv/frv.c (frv_expand_builtin): Likewise.
7099 * config/h8300/h8300.c (h8300_option_override): Likewise.
7100 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
7101 (ix86_option_override_internal): Likewise.
7102 (warn_once_call_ms2sysv_xlogues): Likewise.
7103 (ix86_expand_prologue): Likewise.
7104 (split_stack_prologue_scratch_regno): Likewise.
7105 (ix86_warn_parameter_passing_abi): Likewise.
7106 * config/ia64/ia64.c (fix_range): Likewise.
7107 * config/m68k/m68k.c (m68k_option_override): Likewise.
7108 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
7109 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
7110 (mips_set_compression_mode): Likewise.
7111 * config/mmix/mmix.c (mmix_option_override): Likewise.
7112 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
7113 * config/msp430/msp430.c (msp430_option_override): Likewise.
7114 * config/nds32/nds32.c (nds32_option_override): Likewise.
7115 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
7116 (nios2_option_override): Likewise.
7117 (nios2_expand_custom_builtin): Likewise.
7118 * config/nvptx/mkoffload.c (main): Likewise.
7119 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
7120 * config/pa/pa.c (fix_range): Likewise.
7121 (pa_option_override): Likewise.
7122 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
7123 (riscv_option_override): Likewise.
7124 * config/rl78/rl78.c (rl78_option_override): Likewise.
7125 * config/rs6000/aix61.h: Likewise.
7126 * config/rs6000/aix71.h: Likewise.
7127 * config/rs6000/aix72.h: Likewise.
7128 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
7129 * config/rs6000/freebsd64.h: Likewise.
7130 * config/rs6000/linux64.h: Likewise.
7131 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
7132 (rs6000_expand_zeroop_builtin): Likewise.
7133 (rs6000_expand_mtfsb_builtin): Likewise.
7134 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
7135 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
7136 (rs6000_invalid_builtin): Likewise.
7137 (rs6000_expand_split_stack_prologue): Likewise.
7138 * config/rs6000/rtems.h: Likewise.
7139 * config/rx/rx.c (valid_psw_flag): Likewise.
7140 (rx_expand_builtin): Likewise.
7141 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
7142 * config/s390/s390.c (s390_expand_builtin): Likewise.
7143 (s390_function_profiler): Likewise.
7144 (s390_option_override_internal): Likewise.
7145 (s390_option_override): Likewise.
7146 * config/sh/sh.c (sh_option_override): Likewise.
7147 (sh_builtin_saveregs): Likewise.
7148 (sh_fix_range): Likewise.
7149 * config/sh/vxworks.h: Likewise.
7150 * config/sparc/sparc.c (sparc_option_override): Likewise.
7151 * config/spu/spu.c (spu_option_override): Likewise.
7152 (fix_range): Likewise.
7153 * config/visium/visium.c (visium_option_override): Likewise.
7154 (visium_handle_interrupt_attr): Likewise.
7155 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
7156 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
7157 (dbg_cnt_process_opt): Likewise.
7158 * dwarf2out.c (output_dwarf_version): Likewise.
7159 * except.c (expand_eh_return): Likewise.
7160 * gcc.c (defined): Likewise.
7161 (driver_handle_option): Likewise.
7162 (process_command): Likewise.
7163 (compare_files): Likewise.
7164 (driver::prepare_infiles): Likewise.
7165 (driver::do_spec_on_infiles): Likewise.
7166 (driver::maybe_run_linker): Likewise.
7167 * omp-offload.c (oacc_parse_default_dims): Likewise.
7168 * opts-global.c (handle_common_deferred_options): Likewise.
7169 * opts.c (parse_sanitizer_options): Likewise.
7170 (common_handle_option): Likewise.
7171 (enable_warning_as_error): Likewise.
7172 * passes.c (enable_disable_pass): Likewise.
7173 * plugin.c (parse_plugin_arg_opt): Likewise.
7174 (default_plugin_dir_name): Likewise.
7175 * targhooks.c (default_expand_builtin_saveregs): Likewise.
7176 (default_pch_valid_p): Likewise.
7177 * toplev.c (init_asm_output): Likewise.
7178 (process_options): Likewise.
7179 (toplev::run_self_tests): Likewise.
7180 * tree-cfg.c (verify_gimple_call): Likewise.
7181 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
7182 (tree_inlinable_function_p): Likewise.
7183 * var-tracking.c (vt_find_locations): Likewise.
7184
7185 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
7186
7187 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
7188 only on the else branch.
7189
7190 2019-03-11 Martin Liska <mliska@suse.cz>
7191
7192 * gcov.c (output_intermediate_json_line): Print function
7193 name of each line.
7194 (output_json_intermediate_file): Add new argument.
7195 * doc/gcov.texi: Document the change.
7196
7197 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
7198
7199 PR rtl-optimization/89588
7200 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
7201 explicit unrolling factor more robust.
7202
7203 2019-03-11 Richard Biener <rguenther@suse.de>
7204
7205 PR tree-optimization/89649
7206 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
7207 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
7208 on the prolog and epilog loops.
7209 (vect_loop_versioning): Return copy of loop.
7210 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
7211 on the non-vectorized version of the loop.
7212
7213 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
7214
7215 PR target/68924
7216 * config/i386/sse.md (*vec_extractv2di_0_sse):
7217 Add (=r,x) alternative and corresponding splitter.
7218
7219 2019-03-10 Martin Jambor <mjambor@suse.cz>
7220
7221 PR tree-optimization/85762
7222 PR tree-optimization/87008
7223 PR tree-optimization/85459
7224 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
7225 it points to if there is a type changing MEM_REF. Adjust all callers.
7226 (build_accesses_from_assign): Disable total scalarization if
7227 contains_vce_or_bfcref_p returns true through the new parameter, for
7228 both rhs and lhs.
7229
7230 2019-03-09 Jakub Jelinek <jakub@redhat.com>
7231
7232 PR c/88568
7233 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
7234 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
7235
7236 PR target/79645
7237 * common.opt (fdiagnostics-show-labels,
7238 fdiagnostics-show-line-numbers, fdiagnostics-format=,
7239 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
7240 gas-locview-support, ginline-points, ginternal-reset-location-views):
7241 Terminate description text with a dot.
7242 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
7243 * config/mcore/mcore.opt (m210, m340): Likewise.
7244 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
7245 mnops=): Start description text with a capital letter.
7246 * config/arc/arc.opt (msize-level=): Likewise.
7247 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
7248 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
7249 mnewlib): Likewise.
7250 * config/ft32/ft32.opt (msim): Likewise.
7251 (mft32b, mcompress): Likewise. Terminate description text with a dot.
7252 (mnodiv, mnopm): Terminate description text with a dot.
7253 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
7254 a colon.
7255 * config/i386/i386.opt (prefer_vector_width, instrument_return):
7256 Likewise.
7257 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
7258 text.
7259
7260 PR rtl-optimization/89634
7261 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
7262 are modified in BB_END (e->src) instruction.
7263
7264 2019-03-08 David Malcolm <dmalcolm@redhat.com>
7265
7266 PR target/79926
7267 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
7268 messages more amenable to translation, and improve wording.
7269
7270 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
7271
7272 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
7273 ud- and du-chains between phases.
7274
7275 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
7276
7277 PR debug/89631
7278 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
7279 instead of POLY_INT_CST.
7280
7281 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
7282
7283 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
7284 requirement.
7285
7286 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
7287
7288 PR target/68924
7289 PR target/78782
7290 PR target/87558
7291 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
7292 (_mm_storeu_si64): Ditto.
7293
7294 2019-03-08 Martin Liska <mliska@suse.cz>
7295
7296 PR target/86952
7297 * config/i386/i386.c (ix86_option_override_internal): Disable
7298 jump tables when retpolines are used.
7299
7300 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
7301
7302 PR go/63560
7303 * ipa-split.c (execute_split_functions): Do not split
7304 'noinline' or 'section' function.
7305
7306 2019-03-08 Jakub Jelinek <jakub@redhat.com>
7307
7308 PR target/79846
7309 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
7310 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
7311 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
7312
7313 PR ipa/80000
7314 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
7315 from diagnostics. Formatting fixes.
7316
7317 PR target/85665
7318 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
7319 warn_odr diagnostics.
7320
7321 PR other/80058
7322 * lra-constraints.c (process_alt_operands): Avoid one space before
7323 " at the end of line and another after " on another line in a string
7324 literal.
7325 * attribs.c (handle_dll_attribute): Likewise.
7326 * config/avr/avr-devices.c (avr_texinfo): Likewise.
7327
7328 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
7329 warning_at or inform messages in G_() if there is no ?:.
7330
7331 PR tree-optimization/89550
7332 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
7333 returned true. Formatting fixes.
7334 (expand_builtin_strnlen): Formatting fixes.
7335 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
7336 if warning_at returned true.
7337 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
7338
7339 2019-03-08 Richard Biener <rguenther@suse.de>
7340
7341 PR middle-end/89578
7342 * cfgloop.h (struct loop): Add owned_clique field.
7343 * cfgloopmanip.c (copy_loop_info): Copy it.
7344 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
7345 cliques.
7346 * tree-inline.c (copy_loops): Remap owned_clique.
7347 * lto-streamer-in.c (input_cfg): Stream owned_clique.
7348 * lto-streamer-out.c (output_cfg): Likewise.
7349
7350 2019-03-08 Jakub Jelinek <jakub@redhat.com>
7351
7352 PR target/80190
7353 * config/darwin.c: Include intl.h.
7354 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
7355 composing the message out of two separate parts.
7356
7357 2019-03-07 Jakub Jelinek <jakub@redhat.com>
7358
7359 PR target/80003
7360 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
7361 doesn't start with a capital letter and doesn't end with a dot.
7362 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
7363 with a capital letter.
7364 (ix86_mangle_function_version_assembler_name): Likewise.
7365 (ix86_generate_version_dispatcher_body): Likewise.
7366 (fold_builtin_cpu): Likewise.
7367 (get_builtin_code_for_version): Likewise. Remove extraneous space.
7368 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
7369 translators, wrap full type name in %qs.
7370
7371 PR translation/79999
7372 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
7373 depend clause with source (or sink) modifier.
7374 * omp-expand.c (expand_omp_ordered_sink): Likewise.
7375
7376 PR target/89602
7377 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
7378 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
7379 (avx512f_load<mode>_mask): New define_expand.
7380 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
7381 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
7382 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
7383 __builtin_ia32_movess_mask): New builtins.
7384 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
7385 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
7386 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
7387 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
7388
7389 2019-03-07 Martin Jambor <mjambor@suse.cz>
7390
7391 PR lto/87525
7392 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
7393 for extern inline functions.
7394
7395 2019-03-07 Martin Jambor <mjambor@suse.cz>
7396
7397 PR ipa/88235
7398 * cgraph.h (cgraph_node): New inline method former_thunk_p.
7399 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
7400 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
7401 have multiple callees. At the end check if declarations match as
7402 opposed to cgraph_nodes.
7403
7404 2019-03-07 Martin Liska <mliska@suse.cz>
7405
7406 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
7407 which is equivalent to searching for this in clones chain.
7408 * symtab.c (symtab_node::verify_base): Similarly compare ASM
7409 names with a neighbour and special case first node in a chain.
7410
7411 2019-01-25 Jason Merrill <jason@redhat.com>
7412
7413 PR c++/80916 - spurious "static but not defined" warning.
7414 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
7415 for an internal symbol with DECL_EXTERNAL.
7416
7417 2019-04-07 Richard Biener <rguenther@suse.de>
7418
7419 PR middle-end/89618
7420 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
7421 * tree-inline.c (copy_loops): Simplify.
7422
7423 2019-03-07 Martin Liska <mliska@suse.cz>
7424
7425 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
7426
7427 2019-03-07 Richard Biener <rguenther@suse.de>
7428
7429 PR tree-optimization/89595
7430 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
7431 stmt iterator as reference, take boolean output parameter to
7432 indicate whether the stmt was removed and thus the iterator
7433 already advanced.
7434 (dom_opt_dom_walker::before_dom_children): Re-iterate over
7435 stmts created by folding.
7436
7437 2019-03-07 Jakub Jelinek <jakub@redhat.com>
7438
7439 PR c++/89585
7440 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
7441 at toplevel.
7442
7443 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
7444
7445 PR rtl-optimization/88845
7446 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
7447 LRA.
7448 * lra.c (remove_scratches_1): New function.
7449 (remove_scratches): Use it.
7450 (lra_emit_move): Likewise.
7451
7452 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
7453
7454 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
7455 unaligned_access variable.
7456 * config/arc/arc.c (arc_override_options): Set unaligned access
7457 default on for HS CPUs.
7458 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
7459
7460 2019-03-06 Martin Liska <mliska@suse.cz>
7461
7462 PR gcov-profile/89577
7463 * doc/gcov.texi: Prefer to use --coverage.
7464 * doc/sourcebuild.texi: Likewise.
7465
7466 2019-03-02 Jason Merrill <jason@redhat.com>
7467
7468 PR c++/86485 - -Wmaybe-unused with empty class ?:
7469 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
7470
7471 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7472
7473 PR target/89587
7474 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
7475 if_multiarch.
7476
7477 PR middle-end/89590
7478 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
7479 exactly one argument.
7480
7481 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7482 Richard Sandiford <richard.sandiford@arm.com>
7483
7484 PR tree-optimization/89570
7485 * match.pd (vec_cond into cond_op simplification): Don't use
7486 get_conditional_internal_fn, use as_internal_fn (cond_op).
7487
7488 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
7489
7490 PR target/89222
7491 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
7492 to decide when to split off a non-zero offset from a symbol.
7493 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
7494 in function symbols.
7495
7496 2019-03-05 Richard Biener <rguenther@suse.de>
7497
7498 PR tree-optimization/89594
7499 * tree-if-conv.c (pass_if_conversion::execute): Handle
7500 case where .LOOP_VECTORIZED_FUNCTION was removed.
7501
7502 2019-03-05 Jakub Jelinek <jakub@redhat.com>
7503
7504 PR bootstrap/89560
7505 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
7506 instead alloca it only when needed with the needed size.
7507
7508 PR tree-optimization/89570
7509 * match.pd (vec_cond into cond_op simplification): Guard with
7510 vectorized_internal_fn_supported_p test and #if GIMPLE.
7511
7512 PR tree-optimization/89566
7513 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
7514 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
7515 Punt if get_user_idx_format succeeds, but idx_format argument is
7516 not provided or doesn't have pointer type, or if idx_args is above
7517 number of provided arguments.
7518
7519 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
7520
7521 PR tree-optimization/89437
7522 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
7523
7524 2019-03-04 Richard Biener <rguenther@suse.de>
7525
7526 PR middle-end/89572
7527 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
7528 safe_dyn_cast.
7529
7530 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
7531
7532 PR tree-optimization/89487
7533 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
7534 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
7535 (distribute_loop): Don't do runtime alias check if there is non-
7536 addressable data reference.
7537 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
7538 is a register variable.
7539
7540 2019-03-02 Jakub Jelinek <jakub@redhat.com>
7541
7542 PR target/89506
7543 * config/arm/arm.md (cmpsi2_addneg): Use
7544 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
7545 If operands[2] is 0 or INT_MIN, force use of subs.
7546 (*compare_scc splitter): Use gen_int_mode.
7547 (*negscc): Likewise.
7548 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
7549
7550 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
7551 Monk Chiang <sh.chiang04@gmail.com>
7552
7553 * common/config/riscv/riscv-common.c: Include sstream.
7554 (riscv_subset_list::to_string): New.
7555 (riscv_arch_str): Likewise.
7556 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
7557 * config.in: Regen.
7558 * config/riscv/riscv-protos.h (riscv_arch_str): New.
7559 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
7560 (riscv_emit_attribute): New.
7561 (riscv_file_start): Emit attribute if needed.
7562 (riscv_option_override): Init riscv_emit_attribute_p.
7563 * config/riscv/riscv.opt (mriscv-attribute): New option.
7564 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
7565 * configure: Regen.
7566 * doc/install.texi: Document --with-riscv-attribute.
7567 * doc/invoke.texi: Document -mriscv-attribute.
7568
7569 * common/config/riscv/riscv-common.c:
7570 Include config/riscv/riscv-protos.h.
7571 (INCLUDE_STRING): Defined.
7572 (RISCV_DONT_CARE_VERSION): Defined.
7573 (riscv_subset_t): Declare.
7574 (riscv_subset_t::riscv_subset_t): New.
7575 (riscv_subset_list): Declare.
7576 (riscv_subset_list::riscv_subset_list): New.
7577 (riscv_subset_list::~riscv_subset_list): Likewise.
7578 (riscv_subset_list::parsing_subset_version): Likewise.
7579 (riscv_subset_list::parse_std_ext): Likewise.
7580 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
7581 (riscv_subset_list::add): Likewise.
7582 (riscv_subset_list::lookup): Likewise.
7583 (riscv_subset_list::xlen): Likewise.
7584 (riscv_subset_list::parse): Likewise.
7585 (riscv_supported_std_ext): Likewise.
7586 (current_subset_list): Likewise.
7587 (riscv_parse_arch_string): Using riscv_subset_list::parse to
7588 parse.
7589
7590 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
7591
7592 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
7593 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
7594 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
7595
7596 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
7597
7598 PR rtl-optimization/85899
7599 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
7600 fallthru edges leading to the exit block.
7601
7602 2019-03-01 Tamar Christina <tamar.christina@arm.com>
7603
7604 PR target/89517
7605 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
7606 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
7607
7608 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
7609
7610 PR tree-optimization/89535
7611 * tree-vect-stmts.c (vectorizable_call): Record the vector types
7612 for each operand. Calculate the fallback choice for mask operands
7613 and pass it to vect_get_vec_def_for_operand.
7614
7615 2019-03-01 Richard Biener <rguenther@suse.de>
7616
7617 PR middle-end/89541
7618 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
7619 get virtual operands.
7620 (get_expr_operands): Handle CONST_DECL like other decls.
7621
7622 2019-03-01 Jakub Jelinek <jakub@redhat.com>
7623
7624 PR middle-end/89503
7625 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
7626 on DECL_P and EXPR_P.
7627
7628 2019-03-01 Richard Biener <rguenther@suse.de>
7629
7630 PR middle-end/89497
7631 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
7632 argument, defaulted to zero.
7633 * passes.c (execute_function_todo): Pass down SSA update flags
7634 to cleanup_tree_cfg.
7635 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
7636 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
7637 form if requested.
7638 (cleanup_tree_cfg): Get and pass down SSA update flags.
7639
7640 2019-03-01 Jakub Jelinek <jakub@redhat.com>
7641
7642 PR bootstrap/89539
7643 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
7644 early_lto_debug argument.
7645
7646 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
7647
7648 PR tree-optimization/89536
7649 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
7650 only whether bit #0 of the value is 0 instead of the entire value.
7651
7652 2019-02-28 Marek Polacek <polacek@redhat.com>
7653
7654 PR c++/87068 - missing diagnostic with fallthrough statement.
7655 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
7656 at the end of a seq, save its location to walk_stmt_info.
7657 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
7658 a switch.
7659
7660 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
7661
7662 PR lto/88585
7663 * tree.c (find_atomic_core_type): Move ahead in file.
7664 (check_base_type): Correctly compare alignments of atomic types.
7665
7666 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
7667
7668 PR target/89455
7669 * config/i386/i386.c (get_builtin_code_for_version): Identify
7670 Westmere from PCLMUL, instead of AES.
7671
7672 2019-02-28 Jakub Jelinek <jakub@redhat.com>
7673
7674 PR target/89434
7675 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
7676 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
7677 -UINTVAL (...).
7678
7679 2019-02-28 Tamar Christina <tamar.christina@arm.com>
7680
7681 PR target/88530
7682 * config/aarch64/aarch64-option-extensions.def: Document it.
7683 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
7684 if empty hwcaps.
7685
7686 2019-02-28 Jakub Jelinek <jakub@redhat.com>
7687
7688 PR c/89520
7689 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
7690 builtins if they don't have a single scalar floating point argument.
7691 Formatting fixes.
7692
7693 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
7694
7695 PR rtl-optimization/89490
7696 * varasm.c (get_block_for_section): Bail out for mergeable sections.
7697 (default_use_anchors_for_symbol_p, output_object_block): Assert the
7698 block section is not mergeable.
7699
7700 2019-02-27 Jakub Jelinek <jakub@redhat.com>
7701
7702 PR target/70341
7703 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
7704 old define_insn to ...
7705 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
7706 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
7707 Rename old define_insn to ...
7708 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
7709 (thumb2_casesi_internal_pic): New define_expand. Rename old
7710 define_insn to ...
7711 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
7712 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
7713 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
7714
7715 2019-02-27 Richard Biener <rguenther@suse.de>
7716
7717 PR debug/88878
7718 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
7719
7720 2019-02-27 Richard Biener <rguenther@suse.de>
7721
7722 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
7723 building.
7724
7725 2019-02-27 Richard Biener <rguenther@suse.de>
7726
7727 PR debug/88878
7728 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
7729 parameter, prefix section name with .gnu.debuglto_ if true.
7730 (dwarf2out_finish): Pass false to output_comdat_type_unit.
7731 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
7732
7733 2019-02-27 Richard Biener <rguenther@suse.de>
7734
7735 PR debug/89514
7736 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
7737 rather than on use_debug_types, doing what output_die does.
7738 (value_format): Likewise.
7739
7740 2019-02-27 Martin Jambor <mjambor@suse.cz>
7741 Martin Sebor <msebor@redhat.com>
7742
7743 * doc/invoke.texi (Warning Options): Reword description of
7744 -Wno-absolute-value.
7745
7746 2019-02-27 Jakub Jelinek <jakub@redhat.com>
7747
7748 PR tree-optimization/89280
7749 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
7750 builtin_setjmp_setup_bb): New functions.
7751 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
7752 When visiting __builtin_setjmp_setup block, queue in special
7753 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
7754 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
7755 from visited after the loop if they don't have any visited successor
7756 blocks.
7757
7758 2018-02-26 Steve Ellcey <sellcey@marvell.com>
7759
7760 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
7761 New function.
7762 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
7763
7764 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7765
7766 PR c++/89507
7767 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
7768 with types other than sizetype/ssizetype.
7769
7770 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
7771
7772 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
7773 (enum sparc_processor_type): ...this.
7774 (enum sparc_code_model_type): New enumeration type.
7775 (enum sparc_memory_model_type): Tweak comments.
7776 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
7777 (mtune): Likewise.
7778 (mcmodel): Use sparc_code_model enumeration and variable.
7779 (sparc_code_model): New enumeration.
7780 (mdebug): Add Undocumented marker.
7781 * config/sparc/sparc.h (enum cmodel): Delete.
7782 (sparc_cmodel): Likewise.
7783 (TARGET_CM_MEDLOW): Adjust to above renaming.
7784 (TARGET_CM_MEDMID): Likewise.
7785 (TARGET_CM_MEDANY): Likewise.
7786 (TARGET_CM_EMBMEDANY): Likewise.
7787 * config/sparc/sparc.c (sparc_cmodel): Delete.
7788 (sparc_option_override): Remove string/value mapping support for the
7789 code model. Move code and memory model support to after the handling
7790 of target flags. Do private machine setup last.
7791 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
7792 (sparc_legitimize_reload_address): Likewise.
7793 (sparc_output_mi_thunk): Likewise.
7794 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
7795
7796 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7797
7798 PR tree-optimization/89500
7799 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
7800 (handle_builtin_strlen): Remove noncst_bound variable. Always
7801 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
7802 cst if the first cst bytes starting at x are known to be non-zero,
7803 even if the string is not zero terminated. Don't try to modify
7804 *si for strnlen. Update strlen_to_stridx only for strlen or if
7805 we can prove strnlen returns the same value as strlen would.
7806
7807 2019-02-26 Martin Liska <mliska@suse.cz>
7808
7809 * alloc-pool.h (struct pool_usage): Remove extra
7810 print_dash_line.
7811 * bitmap.h (struct bitmap_usage): Likewise.
7812 * ggc-common.c (struct ggc_usage): Likewise.
7813 * mem-stats.h (struct mem_usage): Likewise.
7814 (mem_alloc_description::dump): Print dash lines
7815 here and repeat header at the end of a table report.
7816 It's then more readable.
7817 * tree-phinodes.c (phinodes_print_statistics): Make
7818 horizontal alignment.
7819 * tree-ssanames.c (ssanames_print_statistics): Likewise.
7820 * vec.c (struct vec_usage): Remove extra print_dash_line.
7821 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
7822
7823 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
7824
7825 * doc/extend.texi (__builtin_object_size):
7826 Use @pxref instead of @xref inside parenthesis.
7827 (__builtin_has_attribute): Add missing comma after @xref.
7828 (__builtin_object_size): Ditto.
7829 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
7830 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
7831 in the list.
7832
7833 2019-02-26 Jeff Law <law@redhat.com>
7834
7835 PR rtl-optimization/87761
7836 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
7837 detect obviously dead insns and delete them.
7838
7839 2019-02-26 Richard Biener <rguenther@suse.de>
7840
7841 PR tree-optimization/89505
7842 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
7843 to handle restrict pointed-to vars with multiple subvars
7844 correctly.
7845
7846 2019-02-26 Richard Biener <rguenther@suse.de>
7847
7848 PR tree-optimization/89489
7849 * tree-parloops.c (create_loop_fn): Copy over last_clique.
7850
7851 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
7852
7853 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
7854 and move around comment.
7855 <BIT_AND_EXPR>: Likewise.
7856 <BIT_NOT_EXPR>: Add specific handling for boolean types.
7857
7858 2019-02-26 Jakub Jelinek <jakub@redhat.com>
7859
7860 PR target/89474
7861 * config/i386/i386.c (remove_partial_avx_dependency): Call
7862 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
7863 after changing possibly many instructions to use that pseudo. Fix up
7864 insertion of v4sf_const0 setter at the start of bb.
7865
7866 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
7867
7868 PR c/80409
7869 * doc/extend.texi (Variadic Pointer Args): New section.
7870
7871 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
7872 Martin Sebor <msebor@gmail.com>
7873
7874 * common.opt (Wattribute-alias): Likewise.
7875 * doc/invoke.texi (Option Summary): List general form of
7876 -Wattribute-alias=. List positive form of -Wmissing-attributes.
7877 (-Wmissing-attributes): Invert entry, rewrite and correct default.
7878 Add cross-references.
7879 (-Wattribute-alias): Rewrite and correct default. Mention
7880 considered attributes (same as for -Wmissing-attributes).
7881
7882 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
7883
7884 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
7885 (_mm_cvtpd_ps): Likewise.
7886 (_mm_cvttpd_epi32): Likewise.
7887
7888 PR target/89338
7889 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
7890 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
7891
7892 PR target/89339
7893 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
7894
7895 2019-02-25 Tamar Christina <tamar.christina@arm.com>
7896
7897 PR target/88530
7898 * common/config/aarch64/aarch64-common.c
7899 (struct aarch64_option_extension): Add is_synthetic.
7900 (all_extensions): Use it.
7901 (TARGET_OPTION_INIT_STRUCT): Define hook.
7902 (struct gcc_targetm_common): Moved to end.
7903 (all_extensions_by_on): New.
7904 (opt_ext_cmp, typedef opt_ext): New.
7905 (aarch64_option_init_struct): New.
7906 (aarch64_contains_opt): New.
7907 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
7908 * config/aarch64/aarch64-option-extensions.def
7909 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
7910 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
7911 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
7912 Set is_synthetic to false.
7913 (crypto): Set is_synthetic to true.
7914 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
7915 SYNTHETIC.
7916
7917 2019-02-25 Tamar Christina <tamar.christina@arm.com>
7918
7919 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
7920 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
7921 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
7922 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
7923 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
7924 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
7925 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
7926 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
7927 Rename ...
7928 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
7929 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
7930 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
7931 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
7932 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
7933 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
7934 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
7935 vfmlsl_laneq_high_f16): ... To this.
7936 * config/arm/neon.md: Update comments.
7937
7938 2019-02-25 Tamar Christina <tamar.christina@arm.com>
7939
7940 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
7941 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
7942 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
7943 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
7944 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
7945 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
7946 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
7947 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
7948 Rename ...
7949 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
7950 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
7951 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
7952 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
7953 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
7954 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
7955 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
7956 vfmlslq_laneq_high_f16): ... To this.
7957
7958 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
7959
7960 PR rtl-optimization/86096
7961 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
7962 comparing mw_order values.
7963
7964 2019-02-25 Jakub Jelinek <jakub@redhat.com>
7965
7966 PR target/89434
7967 * config/arm/arm.md (*subsi3_carryin_const): Use
7968 arm_neg_immediate_operand predicate instead of
7969 arm_not_immediate_operand, "L" constraint instead of "K" and
7970 print it using %n2 instead of %B2.
7971 (*subsi3_carryin_const0): New define_insn.
7972 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
7973 instead of arm_not_operand and "I" constraint instead of "K" and
7974 print it using %n3 instead of %B2. Instead of using match_dup 2 add
7975 another match_operand and in the condition check that it is negation
7976 of operands[2].
7977 (*subsi3_carryin_compare_const0): New define_ins.
7978 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
7979 *subsi3_carryin_const.
7980 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
7981 split into *subsi3_carryin_compare_const0 if the highpart is zero.
7982
7983 PR target/89438
7984 * config/arm.vfp.md (*negdf2_vfp): Use
7985 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
7986 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
7987
7988 2019-02-24 Jakub Jelinek <jakub@redhat.com>
7989
7990 PR rtl-optimization/89445
7991 * simplify-rtx.c (simplify_ternary_operation): Don't use
7992 simplify_merge_mask on operands that may trap.
7993 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
7994 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
7995 second operand is CONST_VECTOR, check if any element could be zero.
7996 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
7997 their operands can trap.
7998
7999 2019-02-23 Martin Sebor <msebor@redhat.com>
8000
8001 * gimple-ssa-sprintf.c (target_strtol): Rename...
8002 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
8003 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
8004 check for range error.
8005
8006 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
8007
8008 PR driver/69471
8009 * opts-common.c (prune_options): Also prune joined switches
8010 with Negative and RejectNegative.
8011 * config/i386/i386.opt (march=): Add Negative(march=).
8012 (mtune=): Add Negative(mtune=).
8013 * doc/options.texi: Document Negative used together with Joined
8014 and RejectNegative.
8015
8016 2019-02-22 Martin Sebor <msebor@redhat.com>
8017
8018 * doc/extend.texi (Other Builtins): Add
8019 __builtin_is_constant_evaluated.
8020
8021 2019-02-22 Richard Biener <rguenther@suse.de>
8022
8023 PR tree-optimization/87609
8024 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
8025
8026 2019-02-22 Jeff Law <law@redhat.com>
8027
8028 PR rtl-optimization/87761
8029 * config/mips/mips.md: Add new combiner pattern to recognize
8030 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
8031
8032 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
8033
8034 PR target/89324
8035 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
8036 destination register in peepholes generating patterns for ADDS/SUBS.
8037 (add<mode>3_compare0,
8038 *addsi3_compare0_uxtw, add<mode>3_compareC,
8039 add<mode>3_compareV_imm, add<mode>3_compareV,
8040 *adds_<optab><ALLX:mode>_<GPI:mode>,
8041 *subs_<optab><ALLX:mode>_<GPI:mode>,
8042 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
8043 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
8044 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
8045 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
8046 sub<mode>3_compare1): Allow stack pointer for source register.
8047 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
8048
8049 2019-02-22 Martin Sebor <msebor@redhat.com>
8050
8051 PR tree-optimization/88993
8052 PR tree-optimization/88853
8053 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
8054 New helper.
8055 (sprintf_dom_walker::call_info::is_string_func): New helper.
8056 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
8057 for formatted string functions.
8058 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
8059
8060 2019-02-22 Martin Sebor <msebor@redhat.com>
8061
8062 PR c/89425
8063 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
8064 unreachable subexpressions.
8065
8066 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
8067 Hongtao Liu <hongtao.liu@intel.com>
8068 Sunil K Pandey <sunil.k.pandey@intel.com>
8069
8070 PR target/87007
8071 * config/i386/i386-passes.def: Add
8072 pass_remove_partial_avx_dependency.
8073 * config/i386/i386-protos.h
8074 (make_pass_remove_partial_avx_dependency): New.
8075 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
8076 New function.
8077 (pass_data_remove_partial_avx_dependency): New.
8078 (pass_remove_partial_avx_dependency): Likewise.
8079 (make_pass_remove_partial_avx_dependency): Likewise.
8080 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
8081 (*extendsfdf2): Add avx_partial_xmm_update.
8082 (truncdfsf2): Likewise.
8083 (*float<SWI48:mode><MODEF:mode>2): Likewise.
8084 (SF/DF conversion splitters): Disabled for TARGET_AVX.
8085
8086 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
8087
8088 PR middle-end/85598
8089 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
8090 analysis for pass.
8091
8092 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
8093
8094 PR target/89444
8095 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
8096 (PTA_SKYLAKE): Add PTA_AES.
8097 (PTA_GOLDMONT): Likewise.
8098
8099 2019-02-22 Sudakshina Das <sudi.das@arm.com>
8100
8101 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
8102 instruction if enabled.
8103 (aarch64_override_options): Remove reference to return address key.
8104
8105 2019-02-22 Richard Biener <rguenther@suse.de>
8106
8107 PR tree-optimization/89440
8108 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
8109 not necessary assert.
8110
8111 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
8112
8113 PR fortran/72741
8114 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
8115 (oacc_replace_fn_attrib_attr): ... this new function.
8116 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
8117 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
8118
8119 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8120
8121 * config/arm/arm-cpus.in (ares): Rename to...
8122 (neoverse-n1): ... This. Add ares as alias.
8123 * config/arm/arm-tables.opt: Regenerate.
8124 * config/arm/arm-tune.md: Likewise.
8125 * doc/invoke.txt (ARM Options): Document neoverse-n1.
8126
8127 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8128
8129 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
8130 * config/aarch64/aarch64-tune.md: Regenerate.
8131 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
8132
8133 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8134
8135 * config/aarch64/aarch64.c (ares_tunings): Rename to...
8136 (neoversen1_tunings): ... This.
8137 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
8138 (neoverse-n1): New CPU.
8139 * config/aarch64/aarch64-tune.md: Regenerate.
8140 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
8141
8142 2019-02-22 Richard Biener <rguenther@suse.de>
8143
8144 PR middle-end/87609
8145 * cfghooks.h (dependence_hash): New typedef.
8146 (struct copy_bb_data): New type.
8147 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
8148 (duplicate_block): Likewise.
8149 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
8150 (copy_bbs): Create and pass down copy_bb_data.
8151 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
8152 (rtl_duplicate_bb): Likewise.
8153 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
8154 remap dependence info.
8155
8156 2019-02-22 Richard Biener <rguenther@suse.de>
8157
8158 PR tree-optimization/87609
8159 * tree-core.h (tree_base): Document special clique values.
8160 * tree-inline.c (remap_dependence_clique): Do not use the
8161 special clique value of one.
8162 (maybe_set_dependence_info): Use clique one.
8163 (clear_dependence_clique): New callback.
8164 (compute_dependence_clique): Clear clique one from all refs
8165 before assigning it (again).
8166
8167 2019-02-21 Martin Sebor <msebor@redhat.com>
8168
8169 * doc/extend.texi (__clear_cache): Correct signature.
8170
8171 2019-02-21 Ian Lance Taylor <iant@golang.org>
8172
8173 PR go/89170
8174 * varasm.c (decode_addr_const): Call lookup_constant_def rather
8175 than output_constant_def.
8176 (add_constant_to_table): New static function.
8177 (output_constant_def): Call add_constant_to_table.
8178 (tree_output_constant_def): Likewise.
8179
8180 2019-02-21 Jakub Jelinek <jakub@redhat.com>
8181
8182 PR c++/89285
8183 * builtins.c (fold_builtin_arith_overflow): If first two args are
8184 INTEGER_CSTs, set intres and ovfres to constants rather than calls
8185 to ifn.
8186
8187 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
8188
8189 PR target/87412
8190 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
8191 error for -mindirect-branch/-mfunction-return with incompatible
8192 -fcf-protection.
8193
8194 2019-02-21 Jakub Jelinek <jakub@redhat.com>
8195
8196 PR bootstrap/88714
8197 * constraints.md (q): Remove.
8198 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
8199 instead of q.
8200
8201 2019-02-21 Martin Jambor <mjambor@suse.cz>
8202
8203 PR hsa/89302
8204 * omp-general.c (omp_extract_for_data): Removed a duplicate call
8205 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
8206 (omp_adjust_for_condition): ...here. Added necessary parameters.
8207 * omp-general.h (omp_adjust_for_condition): Updated declaration.
8208 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
8209 proper values to new parameters of omp_adjust_for_condition.
8210
8211 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8212
8213 PR middle-end/89412
8214 * expr.c (expand_assignment): If result is a MEM, use change_address
8215 instead of simplify_gen_subreg.
8216
8217 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8218 David Malcolm <dmalcolm@redhat.com>
8219
8220 PR middle-end/89091
8221 * fold-const.c (decode_field_reference): Return NULL_TREE if
8222 lang_hooks.types.type_for_size returns NULL. Check it before
8223 overwriting *exp_. Use return NULL_TREE instead of return 0.
8224
8225 2019-02-20 Jakub Jelinek <jakub@redhat.com>
8226
8227 PR middle-end/88074
8228 PR middle-end/89415
8229 * toplev.c (do_compile): Double the emin/emax exponents to workaround
8230 buggy mpc_norm.
8231
8232 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
8233
8234 PR target/89397
8235 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
8236 TARGET_SSE in addition to TARGET_SSE_MATH.
8237
8238 (ix86_excess_precision): Ditto.
8239 (ix86_float_exceptions_rounding_supported_p): Ditto.
8240 (use_rsqrt_p): Ditto.
8241 * config/i386/sse.md (rsqrt<mode>2): Ditto.
8242
8243 2019-02-20 David Malcolm <dmalcolm@redhat.com>
8244
8245 PR c/89410
8246 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
8247 linenum_arith_t when determining if two adjacent line spans are
8248 close enough to merge.
8249 (diagnostic_show_locus): Use linenum_arith_t when iterating over
8250 lines within each line_span.
8251
8252 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
8253
8254 PR target/86487
8255 * lra-constraints.c(uses_hard_regs_p): Fix handling of
8256 paradoxical SUBREGS.
8257
8258 2019-02-20 Li Jia He <helijia@linux.ibm.com>
8259
8260 PR target/88100
8261 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
8262 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
8263 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
8264 range checking it.
8265
8266 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
8267
8268 * config/gcn/gcn.c (print_operand): Fix typo.
8269
8270 2019-02-19 Richard Biener <rguenther@suse.de>
8271
8272 PR middle-end/88074
8273 * toplev.c (do_compile): Initialize mpfr's exponent range
8274 based on available float modes.
8275
8276 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
8277
8278 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
8279 as long as the epilogue isn't completed.
8280
8281 2019-02-18 Martin Sebor <msebor@redhat.com>
8282
8283 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
8284 __has_cpp_attribute, and __has_include.
8285
8286 2019-02-18 Martin Sebor <msebor@redhat.com>
8287
8288 * doc/invoke.texi (-Wreturn-type): Correct and expand.
8289
8290 2019-02-18 Martin Sebor <msebor@redhat.com>
8291
8292 PR middle-end/89294
8293 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
8294 expression.
8295 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
8296
8297 2019-02-18 Richard Biener <rguenther@suse.de>
8298
8299 PR tree-optimization/89296
8300 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
8301 of no-warning flag to cases that might emit the bogus warning.
8302
8303 2019-02-18 Jakub Jelinek <jakub@redhat.com>
8304
8305 PR bootstrap/88714
8306 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
8307 "q" constraint.
8308 * config/arm/vfp.md (*movdi_vfp): Likewise.
8309 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
8310 "q" constraint for operands[0].
8311
8312 PR target/89369
8313 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
8314 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
8315 pattern in a temporary buffer.
8316 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
8317 than 64-operands[2].
8318
8319 PR target/89361
8320 * config/s390/s390.c (s390_indirect_branch_attrvalue,
8321 s390_indirect_branch_settings): Define unconditionally.
8322 (s390_set_current_function): Likewise, but guard the whole body except
8323 the s390_indirect_branch_settings call with
8324 #if S390_USE_TARGET_ATTRIBUTE.
8325 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
8326
8327 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
8328 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
8329 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
8330 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
8331 HOST_WIDE_INT_1U instead of 1ULL.
8332 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
8333 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
8334 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
8335 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
8336 instead of 1UL.
8337 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
8338 instead of 1ul.
8339
8340 2019-02-18 Martin Jambor <mjambor@suse.cz>
8341
8342 PR tree-optimization/89209
8343 * tree-sra.c (create_access_replacement): New optional parameter
8344 reg_tree. Use it as a type if non-NULL and access type is not of
8345 a register type.
8346 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
8347 to create_access_replacement.
8348 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
8349 Check lacc is non-NULL before attempting to re-create it on the RHS.
8350
8351 2019-02-18 Martin Liska <mliska@suse.cz>
8352
8353 PR ipa/89306
8354 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
8355 by default.
8356 (symbol_table::free_edge): Recycle m_summary_id.
8357 * cgraph.h (get_summary_id): New.
8358 (symbol_table::release_symbol): Set m_summary_id to -1
8359 by default.
8360 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
8361 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
8362 function_summary to fast_function_summary.
8363 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
8364 * ipa-pure-const.c (class funct_state_summary_t):
8365 Switch from function_summary to fast_function_summary.
8366 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
8367 (class ipa_ref_opt_summary_t): Switch from function_summary
8368 to fast_function_summary.
8369 * symbol-summary.h (class function_summary_base): New class
8370 that is created from base of former function_summary.
8371 (function_summary_base::unregister_hooks): New.
8372 (class function_summary): Inherit from function_summary_base.
8373 (class call_summary_base): New class
8374 that is created from base of former call_summary.
8375 (class call_summary): Inherit from call_summary_base.
8376 (struct is_same): New.
8377 (class fast_function_summary): New summary class.
8378 (class fast_call_summary): New summary class.
8379 * vec.h (vec_safe_grow_cleared): New function.
8380
8381 2019-02-18 Martin Liska <mliska@suse.cz>
8382
8383 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
8384 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
8385 * doc/tm.texi: Document new target hook.
8386 * doc/tm.texi.in: Likewise.
8387 * target.def: Add new target macro.
8388 * gcc.c (find_fortran_preinclude_file): Do not search multilib
8389 suffixes.
8390
8391 2019-02-17 Alan Modra <amodra@gmail.com>
8392
8393 PR target/89271
8394 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
8395 output reg on add insn.
8396 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
8397
8398 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8399
8400 PR target/89372
8401 * config/i386/sse.md (ssedoublemode): Remove V4HI.
8402 (PMULHRSW): Likewise.
8403 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
8404 TARGET_AVX2.
8405 (ssse3_pmulhrswv4hi3): New expander.
8406
8407 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
8408
8409 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
8410 MMX. Add isa attribute.
8411
8412 2019-02-16 Jakub Jelinek <jakub@redhat.com>
8413
8414 PR rtl-optimization/66152
8415 * builtins.h (c_readstr): Declare.
8416 * builtins.c (c_readstr): Remove forward declaration. Add
8417 null_terminated_p argument, if false, read all bytes from the
8418 string instead of stopping after '\0'.
8419 * expr.c (string_cst_read_str): New function.
8420 (store_expr): Use string_cst_read_str instead of
8421 builtin_strncpy_read_str. Try to store by pieces the whole
8422 exp_len first, and only if that fails, split it up into
8423 store by pieces followed by clear_storage. Formatting fix.
8424
8425 * config/i386/i386.md (*movqi_internal): Remove static from
8426 buf variable. Use output_asm_insn (buf, operands); return "";
8427 instead of return buf;.
8428 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
8429 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
8430 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
8431
8432 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8433
8434 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
8435 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
8436 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
8437 (CC1_SPEC): Likewise.
8438 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
8439
8440 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8441
8442 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
8443 the base address on 64-bit strict-alignment platforms.
8444
8445 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
8446
8447 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
8448
8449 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8450
8451 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
8452
8453 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
8454
8455 PR rtl-optimization/88308
8456 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
8457 on copied instruction.
8458
8459 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
8460
8461 * final.c (insn_current_reference_address): Replace test on JUMP_P
8462 with test on jump_to_label_p.
8463 * config/visium/visium-passes.def: New file.
8464 * config/visium/t-visium (PASSES_EXTRA): Define.
8465 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
8466 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
8467 (TRAMPOLINE_ALIGNMENT): Define.
8468 * config/visium/visium.c (visium_option_override): Do not register
8469 the machine-specific reorg pass here.
8470 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
8471 for the GR6.
8472 (output_branch): Adjust threshold for long branch instruction.
8473 * config/visium/visium.md (cpu): Move around.
8474 (length): Adjust for the GR6.
8475
8476 2019-02-15 Richard Biener <rguenther@suse.de>
8477 Jakub Jelinek <jakub@redhat.com>
8478
8479 PR tree-optimization/89278
8480 * tree-loop-distribution.c: Include tree-eh.h.
8481 (generate_memset_builtin, generate_memcpy_builtin): Call
8482 rewrite_to_non_trapping_overflow on builtin->size before passing it
8483 to force_gimple_operand_gsi.
8484
8485 2019-02-15 Jakub Jelinek <jakub@redhat.com>
8486
8487 PR other/89342
8488 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
8489 optimize_debug.
8490 * opth-gen.awk: Likewise.
8491
8492 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
8493
8494 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
8495 Enable MMX, SSE and SSE2 by default.
8496 * config/i386/i386.c (ix86_option_override_internal): Do not
8497 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
8498
8499 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8500
8501 PR rtl-optimization/89354
8502 * combine.c (make_extraction): Punt if extraction_mode is narrower
8503 than len bits.
8504
8505 2019-02-14 Maya Rashish <coypu@sdf.org>
8506
8507 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
8508 * config/netbsd-d.c: New file.
8509 * config/t-netbsd: Add netbsd-d.o
8510
8511 2018-02-14 Steve Ellcey <sellcey@marvell.com>
8512
8513 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
8514 affects_type_identity to true for aarch64_vector_pcs.
8515 (aarch64_comp_type_attributes): New function.
8516 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
8517
8518 2019-02-14 Tamar Christina <tamar.christina@arm.com>
8519
8520 PR target/88850
8521 * config/arm/iterators.md (ANY64): Add V4HF.
8522
8523 2019-02-14 Martin Liska <mliska@suse.cz>
8524
8525 PR rtl-optimization/89242
8526 * dce.c (delete_unmarked_insns): Call free_dominance_info we
8527 process a transformation.
8528
8529 2019-02-14 Jakub Jelinek <jakub@redhat.com>
8530
8531 PR tree-optimization/89314
8532 * fold-const.c (fold_binary_loc): Cast strlen argument to
8533 const char * before dereferencing it. Formatting fixes.
8534
8535 PR middle-end/89284
8536 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
8537
8538 2019-02-13 Ian Lance Taylor <iant@golang.org>
8539
8540 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
8541 and set current index for other optimizations.
8542
8543 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
8544
8545 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
8546 nonimmediate_operand as operand 2 predicate.
8547 (vec_set<VF2_512_256:mode>_0): Ditto.
8548 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
8549 (*vec_concatv2si): Remove alternative 2.
8550 (*vec_concatv4si_0): Use vm constraint for alternative 0.
8551 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
8552 (vec_concatv2di): Split alternatives 4,5,6 to ...
8553 (*vec_concatv2di_0) ... new pattern.
8554
8555 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
8556
8557 PR target/89190
8558 * config/arm/arm.c (ldm_stm_operation_p) Set
8559 addr_reg_in_reglist correctly for first register.
8560 (load_multiple_sequence): Remove dead base check.
8561 (gen_ldm_seq): Correctly set write_back for Thumb-1.
8562
8563 2019-02-13 Tamar Christina <tamar.christina@arm.com>
8564
8565 PR target/88847
8566 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
8567 Expose as @aarch64_pred_mov.
8568 * config/aarch64/aarch64.c (aarch64_classify_address):
8569 Use expand_insn which legitimizes operands.
8570
8571 2019-02-13 Martin Liska <mliska@suse.cz>
8572
8573 * builtins.h (expand_builtin_with_bounds): Remove declaration.
8574 * calls.c (struct arg_data): Remove special_slot, pointer_arg
8575 and pointer_offset fields.
8576 (initialize_argument_information): Remove usage of dead
8577 fields.
8578 * cgraph.h (struct cgraph_thunk_info): Remove
8579 add_pointer_bounds_args.
8580 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
8581 fields.
8582 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
8583 fields.
8584 * config/i386/i386.c (ix86_function_arg_advance): Remove
8585 unrelated comment.
8586 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
8587 (def_builtin): Remove usage of dead
8588 fields.
8589 (ix86_add_new_builtins): Likewise.
8590 * ipa-fnsummary.c (compute_fn_summary): Likewise.
8591 * ipa-icf.c (sem_function::equals_wpa): Likewise.
8592 (sem_function::init): Likewise.
8593 (sem_variable::merge): Likewise.
8594 * ipa-visibility.c (function_and_variable_visibility): Likewise.
8595 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
8596 * lto-cgraph.c (lto_output_node): Likewise.
8597 (lto_output_varpool_node): Likewise.
8598 (input_node): Likewise.
8599 (input_varpool_node): Likewise.
8600 * lto-streamer-out.c (lto_output): Likewise.
8601 * tree-inline.c (expand_call_inline): Remove usage of
8602 assign_stmts.
8603 * tree-inline.h (struct copy_body_data): Likewise.
8604 * varpool.c (varpool_node::dump): Likewise.
8605
8606 2019-02-13 Jakub Jelinek <jakub@redhat.com>
8607
8608 PR middle-end/89303
8609 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
8610 into pt->vars_contains_escaped_heap instead of setting
8611 pt->vars_contains_escaped_heap to it.
8612
8613 PR middle-end/89281
8614 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
8615 INTVAL (size), compare it to GET_MODE_MASK instead of
8616 1 << GET_MODE_BITSIZE.
8617
8618 PR target/89290
8619 * config/i386/predicates.md (x86_64_immediate_operand): Allow
8620 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
8621 -mcmodel=large.
8622
8623 2019-02-13 Martin Liska <mliska@suse.cz>
8624
8625 PR lto/88858
8626 * cfgrtl.c (remove_barriers_from_footer): New function.
8627 (try_redirect_by_replacing_jump): Use it.
8628 (cfg_layout_redirect_edge_and_branch): Likewise.
8629
8630 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
8631
8632 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
8633 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
8634 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
8635 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
8636 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
8637 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
8638 New BU_CRYPTO_2.
8639 * config/rs6000/rs6000.c (builtin_function_type)
8640 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
8641 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
8642 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
8643 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
8644 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
8645
8646 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
8647
8648 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
8649 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
8650
8651 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
8652
8653 PR target/89229
8654 * config/i386/i386.md (*movoi_internal_avx): Revert revision
8655 268678 and revision 268657.
8656 (*movti_internal): Likewise.
8657
8658 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
8659
8660 PR target/89233
8661 * config/s390/s390.c (s390_decompose_address): Update comment.
8662 (s390_check_qrst_address): Reject invalid address forms after
8663 LRA.
8664
8665 2019-02-12 Martin Liska <mliska@suse.cz>
8666
8667 PR lto/88876
8668 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
8669 we need default values of funct_state for a function that
8670 is not optimized.
8671
8672 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
8673
8674 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
8675 the object to pick the size of stores on strict-alignment platforms.
8676
8677 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
8678 (*movdi_insn_sp32): Likewise.
8679 (*movdi_insn_sp64): Likewise.
8680
8681 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
8682
8683 PR lto/88677
8684 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
8685 types that needs constructiong.
8686 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
8687
8688 2019-02-12 Richard Biener <rguenther@suse.de>
8689
8690 PR tree-optimization/89253
8691 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
8692 duplicate the loop.
8693
8694 2019-02-11 David Malcolm <dmalcolm@redhat.com>
8695
8696 PR lto/88147
8697 * input.c (selftest::test_line_offset_overflow): New selftest.
8698 (selftest::input_c_tests): Call it.
8699
8700 2019-02-11 Martin Sebor <msebor@redhat.com>
8701
8702 PR tree-optimization/88771
8703 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
8704 when -Wstringop-overflow is set.
8705 (builtin_memref::builtin_memref): Adjust excessive upper bound
8706 only when lower bound is not excessive.
8707 (maybe_diag_overlap): Detect and diagnose excessive bounds via
8708 -Wstringop-ovefflow.
8709 (maybe_diag_offset_bounds): Rename...
8710 (maybe_diag_access_bounds): ...to this.
8711 (check_bounds_or_overlap): Adjust for name change above.
8712
8713 2019-02-11 Martin Sebor <msebor@redhat.com>
8714
8715 PR c++/87996
8716 * builtins.c (max_object_size): Move from here...
8717 * builtins.h (max_object_size): ...and here...
8718 * tree.c (max_object_size): ...to here...
8719 * tree.h (max_object_size): ...and here.
8720
8721 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
8722
8723 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
8724 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
8725 for correct semantics.
8726
8727 2019-02-11 Alan Modra <amodra@gmail.com>
8728
8729 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
8730 -mlongcall and -mpltseq.
8731 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
8732 (RS/6000 and PowerPC Options <-mpltseq>): Document.
8733 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
8734 * config/rs6000/sysv4.opt (mpltseq): New option.
8735 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
8736 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
8737 support is lacking. Don't allow -mpltseq with -mbss-plt.
8738 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
8739 -mpltseq given for ELFv1.
8740 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
8741 Only use UNSPEC_PLTSEQ for inline PLT calls.
8742 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
8743 use UNSPEC_PLTSEQ for inline PLT calls.
8744 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
8745 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
8746 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
8747 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
8748 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
8749 (pltseq_mtctr_<mode>): Likewise.
8750
8751 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
8752
8753 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
8754 Solaris ld.
8755 * configure: Regenerate.
8756
8757 2019-02-11 Jakub Jelinek <jakub@redhat.com>
8758
8759 PR bootstrap/88714
8760 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
8761 instead of r.
8762
8763 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
8764
8765 * function.c (assign_parm_setup_block): Use the stored
8766 size, not the passed size, when allocating stack-space,
8767 also for a parameter with alignment larger than
8768 MAX_SUPPORTED_STACK_ALIGNMENT.
8769
8770 2019-02-11 Martin Liska <mliska@suse.cz>
8771
8772 PR ipa/89009
8773 * ipa-cp.c (build_toporder_info): Remove usage of a param.
8774 * ipa-inline.c (inline_small_functions): Likewise.
8775 * ipa-pure-const.c (propagate_pure_const): Likewise.
8776 (propagate_nothrow): Likewise.
8777 * ipa-reference.c (propagate): Likewise.
8778 * ipa-utils.c (struct searchc_env): Remove unused field.
8779 (searchc): Always search across AVAIL_INTERPOSABLE.
8780 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
8781 the only called IPA pure const can properly not propagate
8782 across interposable boundary.
8783 * ipa-utils.h (ipa_reduced_postorder): Remove param.
8784
8785 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
8786
8787 * config/nds32/nds32.md (call_internal, call_value_internal,
8788 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
8789
8790 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
8791
8792 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
8793 typo.
8794
8795 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
8796
8797 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
8798 in comments
8799
8800 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
8801
8802 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
8803
8804 2019-02-10 Jakub Jelinek <jakub@redhat.com>
8805
8806 PR tree-optimization/89268
8807 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
8808 if preds is non-NULL.
8809
8810 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8811
8812 PR lto/89272
8813 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
8814 polymorphic types.
8815
8816 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
8817
8818 * config/nds32/nds32.md (trap): New pattern.
8819
8820 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
8821
8822 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
8823 dwarf span.
8824
8825 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
8826
8827 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
8828 to split POST_INC.
8829
8830 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8831
8832 * ipa-visibility.c (localize_node): Also do not localize
8833 LDPR_PREVAILING_DEF_IRONLY_EXP.
8834
8835 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8836
8837 PR lto/87957
8838 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
8839 instead of type_with_linkage.
8840
8841 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
8842
8843 PR ipa/88755
8844 * params.def (uninlined-function-insns, uninlined-function-time,
8845 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
8846 bound so we don't get overflows.
8847
8848 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
8849
8850 * config/rs6000/rs6000-string.c (expand_compare_loop,
8851 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
8852 memcmp/strncmp.
8853
8854 2019-02-09 Jakub Jelinek <jakub@redhat.com>
8855
8856 PR middle-end/89246
8857 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
8858 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
8859 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
8860
8861 2019-02-09 Alan Modra <amodra@gmail.com>
8862
8863 PR target/88343
8864 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
8865 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
8866 setup.
8867
8868 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
8869
8870 PR middle-end/88560
8871 * lra-constraints.c (process_alt_operands): Don't increase reject
8872 for memory when offset memory is required.
8873
8874 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
8875
8876 * config/s390/vector.md: Implement vector copysign.
8877
8878 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
8879
8880 * expr.c (expand_constructor): Correct indentations.
8881
8882 2019-02-08 Richard Biener <rguenther@suse.de>
8883
8884 PR tree-optimization/89247
8885 * tree-if-conv.c: Include tree-cfgcleanup.h.
8886 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
8887 (tree_if_conversion): Pass through predicate vector.
8888 (pass_if_conversion::execute): Do CFG cleanup and SSA update
8889 inline, see if any if-converted loops we refrece in
8890 LOOP_VECTORIZED calls vanished and fixup.
8891 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
8892
8893 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
8894
8895 * config/s390/constraints.md (jdd): New constraint.
8896
8897 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
8898
8899 PR target/89229
8900 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
8901 upper 16 vector registers without TARGET_AVX512VL.
8902 (*movti_internal): Likewise.
8903
8904 2019-02-08 Jakub Jelinek <jakub@redhat.com>
8905
8906 PR rtl-optimization/89234
8907 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
8908 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
8909 (copy_reg_eh_region_note_backward): Likewise.
8910
8911 2019-02-08 Richard Biener <rguenther@suse.de>
8912
8913 PR middle-end/89223
8914 * tree-data-ref.c (initialize_matrix_A): Fail if constant
8915 doesn't fit in HWI.
8916 (analyze_subscript_affine_affine): Handle failure from
8917 initialize_matrix_A.
8918
8919 2019-02-08 Jakub Jelinek <jakub@redhat.com>
8920
8921 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
8922 cfun everywhere.
8923
8924 2019-02-07 David Malcolm <dmalcolm@redhat.com>
8925
8926 PR tree-optimization/86637
8927 PR tree-optimization/89235
8928 * tree-vect-loop.c (optimize_mask_stores): Add an
8929 auto_purge_vect_location sentinel to ensure that vect_location is
8930 purged on exit.
8931 * tree-vectorizer.c
8932 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
8933 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
8934 to ensure that vect_location is purged on exit.
8935 (pass_slp_vectorize::execute): Likewise, replacing the manual
8936 reset.
8937 * tree-vectorizer.h (class auto_purge_vect_location): New class.
8938
8939 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8940
8941 * config/aarch64/iterators.md (max_opp): New code_attr.
8942 (USMAX): New code iterator.
8943 * config/aarch64/predicates.md (aarch64_smin): New predicate.
8944 (aarch64_smax): Likewise.
8945 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
8946 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
8947 MINUS (MAX MIN).
8948
8949 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
8950
8951 PR target/89229
8952 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
8953 for TARGET_AVX512VL.
8954 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
8955
8956 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
8957
8958 * config/s390/s390-builtin-types.def: Add new types.
8959 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
8960 (s390_vec_xlw4): Make the memory operand into a const pointer.
8961 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
8962 float.
8963 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
8964 a new vector type with the alignment of the scalar memory operand.
8965
8966 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
8967 Jakub Jelinek <jakub@redhat.com>
8968
8969 PR bootstrap/88714
8970 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
8971 arm_count_ldrdstrd_insns): New declarations.
8972 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
8973 MINUS.
8974 (valid_operands_ldrd_strd): New function.
8975 (arm_count_ldrdstrd_insns): New function.
8976 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
8977 sets instead of single DImode set and define new insns to match this.
8978
8979 2019-02-07 Tamar Christina <tamar.christina@arm.com>
8980
8981 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
8982 Make it a C initializer.
8983
8984 2019-02-07 Tamar Christina <tamar.christina@arm.com>
8985
8986 PR/target 88850
8987 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
8988
8989 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8990
8991 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
8992 Use neon_dot<q> for type.
8993 (neon_<sup>dot_lane<vsi2qi>): Likewise.
8994
8995 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
8996
8997 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
8998 Use neon_dot<q> for type.
8999 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
9000 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
9001
9002 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
9003
9004 PR rtl-optimization/89225
9005 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
9006 sizes check.
9007
9008 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
9009
9010 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
9011 after restoring registers saved to allocate the frame on Windows.
9012
9013 2019-02-06 Richard Biener <rguenther@suse.de>
9014
9015 PR tree-optimization/89182
9016 * graphite.h (cached_scalar_evolution_in_region): Declare.
9017 * graphite.c (struct seir_cache_key): New.
9018 (struct sese_scev_hash): Likewise.
9019 (seir_cache): New global.
9020 (cached_scalar_evolution_in_region): New function.
9021 (graphite_transform_loops): Allocate and release seir_cache.
9022 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
9023 cached_scalar_evolution_in_region.
9024 * graphite-scop-detection.c (scop_detection::can_represent_loop):
9025 Simplify.
9026 (scop_detection::graphite_can_represent_expr: Use
9027 cached_scalar_evolution_in_region.
9028 (scop_detection::stmt_simple_for_scop_p): Likewise.
9029 (find_params_in_bb): Likewise.
9030 (gather_bbs::before_dom_children): Likewise.
9031 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
9032 (add_loop_constraints): Likewise.
9033
9034 2019-02-06 Jakub Jelinek <jakub@redhat.com>
9035
9036 PR middle-end/89210
9037 * fold-const-call.c (fold_const_vec_convert): Pass true as last
9038 operand to new_unary_operation only if both element types are integral
9039 and it isn't a widening conversion. Return NULL_TREE if
9040 new_unary_operation failed.
9041
9042 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
9043
9044 PR target/88856
9045 * config/s390/s390.md: Remove load and test FP splitter.
9046
9047 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
9048
9049 PR target/89112
9050 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
9051 expand_compare_loop, expand_block_compare_gpr,
9052 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
9053 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
9054 #include "profile-count.h" and "predict.h" for types and functions
9055 needed to work with REG_BR_PROB notes.
9056
9057 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
9058
9059 PR target/89112
9060 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
9061 for the long branch case.
9062
9063 2019-02-05 Jakub Jelinek <jakub@redhat.com>
9064
9065 PR target/89188
9066 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
9067 can throw, non-call exceptions are enabled and we can't delete
9068 dead exceptions or alter cfg. Set must_clean if
9069 delete_insn_and_edges returns true, don't set it blindly for calls.
9070 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
9071
9072 PR rtl-optimization/89195
9073 * combine.c (make_extraction): For MEMs, don't extract bytes outside
9074 of the original MEM.
9075
9076 2019-02-05 Martin Liska <mliska@suse.cz>
9077
9078 PR gcov-profile/89000
9079 * gcov.c (function_summary): Remove argument.
9080 (file_summary): New function.
9081 (print_usage): Replace tabs with spaces.
9082 (generate_results): Use new function file_summary.
9083
9084 2019-02-05 Jakub Jelinek <jakub@redhat.com>
9085
9086 PR target/89186
9087 * optabs.c (prepare_cmp_insn): Pass x and y to
9088 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
9089
9090 2019-02-05 Richard Biener <rguenther@suse.de>
9091
9092 PR middle-end/89150
9093 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
9094 (struct bitmap_element): Drop chain_prev so we properly recurse on
9095 the prev member, supporting tree views.
9096 (struct bitmap_head): GTY skip the obstack member.
9097
9098 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
9099
9100 PR c/88698
9101 * doc/extend.texi (Vector Extensions): Add an example of using vector
9102 types together with x86 intrinsics.
9103
9104 2019-02-04 Alan Modra <amodra@gmail.com>
9105
9106 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
9107 str[] size to 160, and comment.
9108
9109 2019-02-04 Alan Modra <amodra@gmail.com>
9110
9111 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
9112 (rs6000_pltseq_template): Guard output of TLS markers with
9113 TARGET_TLS_MARKERS.
9114 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
9115 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
9116 to use inline PLT sequences.
9117 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
9118 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
9119 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
9120
9121 2019-02-04 Martin Liska <mliska@suse.cz>
9122
9123 PR ipa/88985
9124 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
9125 out when ipa_fn_summaries does not contain entry for callee.
9126
9127 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
9128
9129 * config/sparc/sparc.h: Remove superfluous blank lines.
9130 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
9131 (got_register_rtx): ...this.
9132 (sparc_got): Adjust to above renaming.
9133 (sparc_tls_got): Likewise.
9134 (sparc_delegitimize_address): Likewise.
9135 (sparc_output_mi_thunk): Likewise.
9136 (sparc_init_pic_reg): Likewise.
9137 (save_local_or_in_reg_p): Fix test on the GOT register.
9138 (USE_HIDDEN_LINKONCE): Move around.
9139 (get_pc_thunk_name): Likewise.
9140 (gen_load_pcrel_sym): Likewise.
9141 (load_got_register): Likewise.
9142
9143 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
9144
9145 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
9146 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
9147
9148 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
9149
9150 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
9151 into consideration.
9152
9153 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
9154
9155 * config.gcc (with_nds32_lib, glibc):
9156 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
9157 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
9158 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
9159
9160 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
9161
9162 PR target/89071
9163 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
9164 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
9165 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
9166 (*rcpsf2_sse): Ditto.
9167 (*rsqrtsf2_sse): Ditto.
9168 (sse4_1_round<mode<2): Ditto.
9169
9170 2019-02-03 Richard Biener <rguenther@suse.de>
9171
9172 PR debug/87295
9173 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
9174 orig.
9175
9176 2019-02-02 Jakub Jelinek <jakub@redhat.com>
9177
9178 PR middle-end/87887
9179 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
9180 Punt with warning on aggregate return or argument types. Ignore
9181 type/mode checking for uniform arguments.
9182
9183 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
9184
9185 * combine.c (try_combine): Do not print "Can't combine" messages unless
9186 printing failed combination attempts.
9187
9188 2019-02-01 Martin Jambor <mjambor@suse.cz>
9189
9190 PR hsa/87863
9191 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
9192 segment and global segment variables before making them static.
9193
9194 2019-02-01 Martin Jambor <mjambor@suse.cz>
9195
9196 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
9197 missed optimization dump with dump_enabled_p.
9198
9199 2019-02-01 Richard Biener <rguenther@suse.de>
9200
9201 PR middle-end/88597
9202 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
9203 the instantiate cache.
9204 (instantiate_scev_binary): Elide second operand procesing
9205 if equal to the first.
9206 * tree-chrec.c (chrec_contains_symbols): Add visited set.
9207 (chrec_contains_undetermined): Likewise.
9208 (tree_contains_chrecs): Likewise.
9209
9210 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
9211
9212 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
9213
9214 2019-02-01 Jakub Jelinek <jakub@redhat.com>
9215
9216 PR tree-optimization/89143
9217 * wide-int-range.h (wide_int_range_absu): Declare.
9218 * wide-int-range.cc (wide_int_range_absu): New function.
9219 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
9220
9221 PR tree-optimization/88107
9222 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
9223 instead of assertion that eh_region_outermost is non-NULL, if it
9224 is NULL, set *ALL to true and return NULL.
9225 (move_sese_region_to_fn): Adjust caller, if all is set, call
9226 duplicate_eh_regions with NULL region.
9227
9228 2019-02-01 Richard Biener <rguenth@suse.de>
9229
9230 PR rtl-optimization/88593
9231 * mode-switching.c (optimize_mode_switching): Free dominators before
9232 calling cleanup_cfg.
9233
9234 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
9235
9236 PR tree-optimization/88932
9237 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
9238
9239 2019-01-31 Jakub Jelinek <jakub@redhat.com>
9240
9241 PR middle-end/89137
9242 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
9243 bogus clang warning.
9244
9245 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
9246
9247 PR target/89071
9248 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
9249 alternative to avoid partial SSE register stall for TARGET_AVX.
9250 (truncdfsf2): Ditto.
9251 (sse4_1_round<mode>2): Ditto.
9252
9253 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
9254
9255 PR tree-optimization/89008
9256 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
9257 process anything of the form X * 0.
9258
9259 2019-01-31 Richard Biener <rguenther@suse.de>
9260
9261 PR tree-optimization/89135
9262 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
9263 with abnormal preds.
9264
9265 2019-01-31 Jakub Jelinek <jakub@redhat.com>
9266
9267 PR sanitizer/89124
9268 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
9269 always_inline callees into no_sanitize_address callers.
9270
9271 2019-01-31 Richard Biener <rguenther@suse.de>
9272
9273 PR rtl-optimization/89115
9274 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
9275
9276 2019-01-30 Martin Sebor <msebor@redhat.com>
9277
9278 PR other/89106
9279 * doc/extend.texi (cast to a union): Correct and expand.
9280
9281 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
9282
9283 PR rtl-optimization/87246
9284 * lra-constraints.c (simplify_operand_subreg): Reload memory
9285 in subreg if the address became invalid.
9286
9287 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
9288
9289 PR target/87064
9290 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
9291 Disable for little-endian.
9292
9293 2019-01-30 Richard Biener <rguenther@suse.de>
9294
9295 PR rtl-optimization/89115
9296 * opts.c (default_options_optimization): Reduce
9297 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
9298 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
9299 to the default.
9300
9301 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
9302
9303 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
9304 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
9305 type of vector element when vec_extract is implemented by direct
9306 move.
9307
9308 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
9309
9310 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
9311
9312 2019-01-30 Richard Biener <rguenther@suse.de>
9313
9314 PR tree-optimization/89111
9315 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
9316 canonicalization to appropriately sized access types.
9317
9318 2019-01-30 Jakub Jelinek <jakub@redhat.com>
9319
9320 PR c++/89105
9321 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
9322 for arguments to functions that are TU-local and shouldn't be
9323 referenced by assembly.
9324
9325 2019-01-30 Ulrich Drepper <drepper@redhat.com>
9326
9327 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
9328 after '='.
9329
9330 2019-01-29 Martin Sebor <msebor@redhat.com>
9331
9332 PR c/88956
9333 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
9334
9335 2019-01-29 Jakub Jelinek <jakub@redhat.com>
9336
9337 PR c++/66676
9338 PR ipa/89104
9339 * omp-simd-clone.c (simd_clone_clauses_extract)
9340 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
9341 OMP_CLAUSE_ALIGNED_ALIGNMENT.
9342
9343 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
9344
9345 * config.gcc: Force .init_array for ARC.
9346
9347 2019-01-29 Richard Biener <rguenther@suse.de>
9348
9349 PR debug/87295
9350 * dwarf2out.c (collect_skeleton_dies): New helper.
9351 (copy_decls_for_unworthy_types): Call it.
9352 (build_abbrev_table): Assert we do not try to replace
9353 DW_AT_signature refs with local refs.
9354
9355 2019-01-28 Jakub Jelinek <jakub@redhat.com>
9356
9357 PR middle-end/89002
9358 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
9359 for lastprivate/linear IV, push gimplify context around gimplify_assign
9360 and, if it needed any temporaries, pop it into a gimple bind around the
9361 sequence.
9362
9363 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
9364
9365 * common.opt (-Wattribute-alias): Remove "no-" from name.
9366 Make -Wattribute-alias command line option and
9367 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
9368
9369 2019-01-28 Jakub Jelinek <jakub@redhat.com>
9370
9371 PR target/89073
9372 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
9373 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
9374 x86 ISA options.
9375 (bmi2): Add missing @opindex.
9376 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
9377 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
9378 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
9379 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
9380 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
9381 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
9382 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
9383 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
9384 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
9385 xsavec, xsaveopt and xsaves options.
9386
9387 2019-01-28 Richard Biener <rguenther@suse.de>
9388
9389 PR debug/89076
9390 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
9391 support removal.
9392
9393 2019-01-28 Richard Biener <rguenther@suse.de>
9394
9395 PR tree-optimization/88739
9396 * tree-cfg.c (verify_types_in_gimple_reference): Verify
9397 BIT_FIELD_REFs only are applied to mode-precision operands
9398 when they are integral.
9399 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
9400 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
9401 BIT_FIELD_REFs of non-mode-precision integral operands.
9402
9403 2019-01-27 Jakub Jelinek <jakub@redhat.com>
9404
9405 PR target/87214
9406 * config/i386/sse.md
9407 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
9408 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
9409 first constants in pairs are multiples of 2. Formatting fixes.
9410 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
9411 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
9412 first constants in each quadruple are multiples of 4. Formatting fixes.
9413
9414 2019-01-26 Martin Jambor <mjambor@suse.cz>
9415
9416 PR ipa/88933
9417 * tree-inline.c: Include tree-cfgcleanup.h.
9418 (delete_unreachable_blocks_update_callgraph): Move...
9419 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
9420 ...here, make externally visible, make second argument bool, adjust
9421 all callers.
9422 * tree-cfgcleanup.c: Include cgraph.h.
9423 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
9424 Declare.
9425 * ipa-prop.c: Include tree-cfgcleanup.h.
9426 (ipcp_transform_function): Call
9427 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
9428
9429 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
9430
9431 PR rtl-optimization/88846
9432 * ira.c (process_set_for_memref_referenced_p): New.
9433 (memref_referenced_p): Add new param. Use
9434 process_set_for_memref_referenced_p. Add new switch cases.
9435 (memref_used_between_p): Pass new arg to memref_referenced_p.
9436
9437 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
9438
9439 PR target/88469
9440 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
9441 argument ABI_BREAK. Set to true if the calculated alignment has
9442 changed in gcc-9. Check bit-fields for their base type alignment.
9443 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
9444 (aarch64_function_arg_boundary): Likewise.
9445 (aarch64_gimplify_va_arg_expr): Likewise.
9446
9447 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9448
9449 PR middle-end/89037
9450 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
9451 instead of accessing TREE_INT_CST_ELT directly.
9452
9453 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
9454
9455 * doc/sourcebuild.texi (Environment attributes): Add fenv and
9456 fenv_exceptions description.
9457
9458 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
9459
9460 PR rtl-optimization/87763
9461 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
9462 Allow SUBREG when matching CC_NZmode compare.
9463
9464 2019-01-25 Richard Biener <rguenther@suse.de>
9465
9466 PR tree-optimization/89049
9467 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
9468 Look at the pattern stmt to determine if the stmt is vectorized.
9469
9470 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
9471
9472 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
9473 (pred_mov<mode>): Handle all-register forms using both a new
9474 alternative and a split.
9475
9476 2019-01-25 Richard Biener <rguenther@suse.de>
9477
9478 PR tree-optimization/86865
9479 * graphite-scop-detection.c (scop_detection::can_represent_loop):
9480 Reject non-do-while loops.
9481
9482 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
9483
9484 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
9485 * config/rs6000/constraints.md (Q constraint): Use REG_P.
9486 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
9487 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
9488 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
9489 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9490 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
9491 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
9492 vlogical_operand, gpc_reg_operand, int_reg_operand,
9493 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
9494 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
9495 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
9496 (save_world_operation, restore_world_operation, lmw_operation,
9497 stmw_operation): Use MEM_P and REG_P.
9498 (tie_operand): Use MEM_P.
9499 (vrsave_operation, crsave_operation): Use REG_P.
9500 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
9501 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
9502 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
9503 (call_operand): Use HARD_REGISTER_P.
9504 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
9505 Use CONST_INT_P.
9506 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
9507 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
9508 quad_aligned_load_p, replace_swapped_aligned_store,
9509 recombine_lvx_pattern, replace_swapped_aligned_load,
9510 recombine_stvx_pattern): Use MEM_P.
9511 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
9512 Use MEM_P and SYMBOL_REF_P.
9513 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
9514 (insn_is_swappable_p): Use REG_P and MEM_P.
9515 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
9516 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
9517 Use CONST_INT_P.
9518 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
9519 Use CONST_DOUBLE_P.
9520 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
9521 CONST_WIDE_INT_P.
9522 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
9523 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
9524 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
9525 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
9526 reg_or_subregno:
9527 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
9528 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
9529 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
9530 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
9531 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
9532 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
9533 rs6000_split_logical_di): Use CONST_INT_P.
9534 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
9535 REG_P and SYMBOL_REF_P.
9536 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
9537 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
9538 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
9539 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
9540 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
9541 (small_data_operand, print_operand_address): Use CONST_INT_P and
9542 SYMBOL_REF_P.
9543 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
9544 (rs6000_init_hard_regno_mode_ok, direct_move_p):
9545 Use HARD_REGISTER_NUM_P.
9546 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
9547 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
9548 SUBREG_P and SYMBOL_REF_P.
9549 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
9550 and HARD_REGISTER_NUM_P.
9551 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
9552 reg_or_subregno.
9553 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
9554 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
9555 MEM_P and REG_P.
9556 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
9557 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
9558 find_addr_reg): Use REG_P.
9559 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
9560 (rs6000_emit_le_vsx_move): Use SUBREG_P.
9561 (offsettable_ok_by_alignment, constant_pool_expr_p,
9562 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
9563 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
9564 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
9565 rs6000_assemble_integer, create_TOC_reference,
9566 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
9567 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
9568 (rs6000_split_vec_extract_var): Use reg_or_subregno.
9569 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
9570 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
9571 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9572 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
9573 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
9574 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
9575 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
9576 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
9577 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
9578 and cbranch<mode>4): Use CONST_INT_P.
9579 (multiple define_splits): Use REG_P and SUBREG_P.
9580 (define_expands call, call_value): Use MEM_P.
9581 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
9582 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
9583 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
9584 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
9585 and HARD_REGISTER_NUM_P.
9586 (multiple define_splits): Use HARD_REGISTER_NUM_P.
9587
9588 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
9589
9590 PR rtl-optimization/88948
9591 * rtl.h (prepare_copy_insn): New prototype.
9592 * gcse.c (prepare_copy_insn): New function, split out from
9593 process_insert_insn.
9594 (process_insert_insn): Use prepare_copy_insn.
9595 * store-motion.c (replace_store_insn): Use prepare_copy_insn
9596 instead of gen_move_insn.
9597
9598 2019-01-24 Jakub Jelinek <jakub@redhat.com>
9599
9600 PR debug/89006
9601 * config/i386/i386.c (ix86_pic_register_p): Return true for
9602 UNSPEC_SET_GOT too.
9603
9604 PR tree-optimization/88964
9605 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
9606 punt if HONOR_SNANS (chrec).
9607
9608 PR middle-end/89015
9609 * tree-nested.c (convert_nonlocal_reference_stmt,
9610 convert_local_reference_stmt, convert_tramp_reference_stmt,
9611 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
9612 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
9613 or GIMPLE_OMP_TASK.
9614
9615 PR tree-optimization/89027
9616 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
9617 for "omp simd array" variables.
9618
9619 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
9620
9621 PR target/88469
9622 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
9623 force the alignment of m_val.
9624
9625 2019-01-24 Richard Biener <rguenther@suse.de>
9626
9627 PR lto/87187
9628 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
9629 When in "legacy" debug mode make sure to reset self-origins.
9630
9631 2019-01-24 Martin Liska <mliska@suse.cz>
9632
9633 PR gcov-profile/88994
9634 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
9635 result will be always smaller or equal to the original.
9636 * gcov.c (mangle_name): Fix else branch where we should
9637 also copy to PTR and shift the pointer.
9638
9639 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
9640
9641 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
9642 * vr-values.c (find_case_label_ranges): Fix a comment typo.
9643
9644 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
9645
9646 * common/config/i386/i386-common.c
9647 (OPTION_MASK_ISA_ENQCMD_SET,
9648 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
9649 (ix86_handle_option): Handle -menqcmd.
9650 * config.gcc (enqcmdintrin.h): New header file.
9651 * config/i386/cpuid.h (bit_ENQCMD): New bit.
9652 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
9653 -menqcmd.
9654 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
9655 function type.
9656 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
9657 __builtin_ia32_enqcmds): New builtins.
9658 * config/i386/i386-c.c (__ENQCMD__): New macro.
9659 * config/i386/i386-option.c (ix86_target_string): Add
9660 -menqcmd.
9661 (ix86_valid_target_attribute_inner_p): Likewise.
9662 * config/i386/i386-expand.c
9663 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
9664 IX86_BUILTIN_ENQCMDS.
9665 * config/i386/i386.h (TARGET_ENQCMD): New.
9666 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
9667 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
9668 (movdir64b_<mode>): Parameterize to enable share expansion code
9669 with ENQCMD in function ix86_expand_builtin.
9670 * config/i386/i386.opt: Add -menqcmd.
9671 * config/i386/immintrin.h: Include enqcmdintrin.h.
9672 * config/i386/enqcmdintrin.h: New intrinsic file.
9673 * doc/invoke.texi: Add -menqcmd.
9674
9675 2019-01-23 Bin Cheng <bin.cheng@arm.com>
9676 Steve Ellcey <sellcey@marvell.com>
9677
9678 PR target/85711
9679 * recog.c (address_operand): Return false on wrong mode for address.
9680 (constrain_operands): Check for mode with 'p' constraint.
9681
9682 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
9683
9684 PR target/88998
9685 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
9686 Disparage MMX alternative.
9687 (sse2_cvtpd2pi): Ditto.
9688 (sse2_cvttpd2pi): Ditto.
9689
9690 2019-01-23 David Malcolm <dmalcolm@redhat.com>
9691
9692 PR driver/89014
9693 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
9694 use-after-free of the result of
9695 aarch64_get_extension_string_for_isa_flags.
9696
9697 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9698
9699 PR c/44715
9700 * doc/extend.texi: Document break and continue behavior in
9701 statement expressions.
9702
9703 2019-01-23 Richard Biener <rguenther@suse.de>
9704
9705 PR tree-optimization/89008
9706 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
9707 not leave another stray operand.
9708
9709 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9710
9711 * BASE-VER: Bump to 9.0.1.
9712
9713 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
9714
9715 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
9716 thunk that returns by reference, use the type of the return object
9717 of the thunk instead of that of the alias to build the dereference.
9718
9719 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
9720
9721 * config/arc/atomic.md: Add operand to DMB instruction.
9722
9723 2019-01-23 Jakub Jelinek <jakub@redhat.com>
9724
9725 PR tree-optimization/88964
9726 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
9727 build_zero_cst instead of build_int_cst. Return false for loop
9728 invariants which honor signed zeros.
9729
9730 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
9731
9732 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
9733
9734 2019-01-22 Jakub Jelinek <jakub@redhat.com>
9735
9736 PR target/88965
9737 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
9738 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
9739 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
9740
9741 PR middle-end/88968
9742 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
9743 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
9744
9745 PR target/87064
9746 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
9747 Disable for little endian.
9748
9749 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
9750
9751 PR target/88469
9752 * config/arm/arm.c (arm_needs_double_word_align): Check
9753 DECL_BIT_FIELD_TYPE.
9754
9755 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
9756 H.J. Lu <hongjiu.lu@intel.com>
9757
9758 PR target/88909
9759 * config/i386/i386-builtin.def: Add mask2 to all builtin
9760 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
9761 SPECIAL_ARGS.
9762 * config/i386/i386.c (BDESC): Add mask2 to the definition.
9763 (BDESC_FIRST): Likewise.
9764 (define_builtin): Add an argument for mask2. Updated to handle
9765 both ix86_isa_flags and ix86_isa_flags2.
9766 (define_builtin_const): Likewise.
9767 (define_builtin_pure): Likewise.
9768 (define_builtin2): Deleted.
9769 (define_builtin_const2): Likewise.
9770 (builtin_description): Add a member, mask2.
9771 (bdesc_*): Add mask2 to builtin initializations.
9772 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
9773 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
9774 support.
9775 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
9776
9777 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
9778
9779 PR target/88954
9780 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
9781 noplt attribute.
9782
9783 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
9784
9785 PR target/88469
9786 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
9787 alignment is dominated by a bitfield with 64-bit aligned base type.
9788 (arm_function_arg): Emit a warning if the alignment has changed since
9789 earlier GCC releases.
9790 (arm_function_arg_boundary): Likewise.
9791 (arm_setup_incoming_varargs): Likewise.
9792
9793 2019-01-22 Richard Biener <rguenther@suse.de>
9794
9795 PR tree-optimization/88862
9796 * graphite-scop-detection.c
9797 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
9798
9799 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
9800
9801 * doc/extend.tex (AMD GCN Function Attributes): New section.
9802 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
9803 * doc/invoke.texi (AMD GCN Options): New section.
9804 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
9805
9806 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
9807
9808 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
9809 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
9810
9811 2019-01-22 Jakub Jelinek <jakub@redhat.com>
9812
9813 PR tree-optimization/88044
9814 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
9815 is false in the first iteration, but !every_iteration, return false
9816 instead of true with niter->niter zero.
9817
9818 PR rtl-optimization/88904
9819 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
9820 any nonequal registers before processing BB_END (b).
9821
9822 PR target/88905
9823 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
9824 GET_MODE (op0).
9825 (expand_binop_directly, expand_doubleword_clz,
9826 expand_doubleword_popcount, expand_ctz, expand_ffs,
9827 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
9828
9829 PR rtl-optimization/49429
9830 PR target/49454
9831 PR rtl-optimization/86334
9832 PR target/88906
9833 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
9834 addressable from here...
9835 (emit_block_op_via_libcall): ... to here.
9836
9837 2019-01-22 Richard Biener <rguenther@suse.de>
9838
9839 * tree-vect-loop.c (vect_analyze_loop_operations): Use
9840 auto_vec for cost vector to fix memleak.
9841 (vectorize_fold_left_reduction): Properly gather SLP defs.
9842 (vectorizable_comparison): Do not swap operands to properly
9843 gather SLP defs.
9844
9845 2019-01-22 Alan Modra <amodra@gmail.com>
9846
9847 PR target/88614
9848 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
9849 stays a reg. Allow a const_int.
9850 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
9851 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
9852 (IS_NOMARK_TLSGETADDR): Define.
9853 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
9854 (rs6000_output_tlsargs): New function.
9855 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
9856 __tls_get_addr call takes an arg.
9857 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
9858 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
9859 delete split..
9860 (call_value_nonlocal_sysv): ..or here, delete split.
9861 (tls_gdld_nomark): Delete.
9862 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
9863 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
9864 (call_value_nonlocal_sysv): Likewise.
9865 (call_value_nonlocal_sysv_secure): Likewise.
9866 (call_value_nonlocal_aix): Likewise.
9867 (call_value_indirect_aix): Likewise.
9868 (call_value_indirect_elfv2): Likewise.
9869 (call_value_local32, call_value_local64): Disable for no-mark tls.
9870 (call_value_local_aix): Likewise.
9871
9872 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
9873
9874 PR target/88938
9875 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
9876 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
9877
9878 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
9879
9880 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
9881 string contents as hash_map keys.
9882
9883 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
9884
9885 PR c/88928
9886 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
9887 for rvalue context. Handle rvalues correctly. Use min_align_of_type
9888 instead of TYPE_ALIGN.
9889 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
9890 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
9891 pointer from TYPE_STUB_DECL.
9892
9893 2019-01-21 Richard Biener <rguenther@suse.de>
9894
9895 PR tree-optimization/88934
9896 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
9897 at the possibly non-constant operand.
9898 (vect_get_constant_vectors): Adjust.
9899
9900 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
9901
9902 PR target/71659
9903 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
9904 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
9905 instead of _X86INTRIN_H_INCLUDED.
9906 * onfig/i386/clwbintrin.h: Likewise.
9907 * config/i386/pkuintrin.h: Likewise.
9908 * config/i386/prfchwintrin.h: Likewise.
9909 * config/i386/rdseedintrin.h: Likewise.
9910 * config/i386/wbnoinvdintrin.h: Likewise.
9911 * config/i386/xsavecintrin.h: Likewise.
9912 * config/i386/xsavesintrin.h: Likewise.
9913 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
9914 * config/i386/xsaveintrin.h: Likewise.
9915 * config/i386/xsaveoptintrin.h: Likewise.
9916 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
9917 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
9918 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
9919 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
9920 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
9921 * config/i386/immintrin.h: Here.
9922
9923 2019-01-20 Martin Jambor <mjambor@suse.cz>
9924
9925 PR ipa/87615
9926 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
9927 with aa_walk_budget.
9928 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
9929 aa_walk_budget_p parameter.
9930 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
9931 walk. Updated all callers.
9932 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
9933 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
9934 unmodified_parm.
9935 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
9936 parameter info. Extract info from fbi. Pass fbi to recursive calls
9937 and to unmodified_parm.
9938 (phi_result_unknown_predicate): New parameter fbi, removed parameter
9939 info, updated call to will_be_nonconstant_expr_predicate.
9940 (param_change_prob): New parameter fbi, limit AA walking.
9941 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
9942 calls to various above functions.
9943 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
9944 parameter. Use it to limit AA walking.
9945 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
9946 fbi, limit AA walk.
9947 (detect_type_change): New parameter fbi, pass it on to
9948 detect_type_change_from_memory_writes.
9949 (detect_type_change_ssa): Likewise.
9950 (aa_overwalked): Removed.
9951 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
9952 accordingly, adjust to the neew AA limiting scheme.
9953 (parm_ref_data_preserved_p): Likewise.
9954 (ipa_compute_jump_functions_for_edge): Adjust call to
9955 get_dynamic_type.
9956 (ipa_analyze_call_uses): Likewise.
9957 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
9958 (ipa_analyze_node): Initialize aa_walk_budget.
9959 (ipcp_transform_function): Likewise.
9960 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
9961 to get_dynamic_type.
9962
9963 2019-01-19 Jakub Jelinek <jakub@redhat.com>
9964
9965 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
9966 outside of #if CHECKING_P code.
9967
9968 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
9969
9970 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
9971 New function, split out from...
9972 (loop_versioning::analyze_stride): ...here.
9973 (loop_versioning::find_per_loop_multiplication): Use gassign.
9974 (loop_versioning::analyze_term_using_scevs): Return a success code.
9975 (loop_versioning::analyze_arbitrary_term): New function.
9976 (loop_versioning::analyze_address_fragment): Use
9977 analyze_arbitrary_term if all else fails.
9978
9979 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
9980
9981 PR target/88892
9982 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
9983 operands.
9984
9985 2019-01-18 Richard Biener <rguenther@suse.de>
9986
9987 PR tree-optimization/88903
9988 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
9989 scalar stmts a SLP shift amount is composed of when detecting
9990 shifts by scalars.
9991
9992 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
9993
9994 PR target/88799
9995 * config/arm/arm-cpus.in (mp): New feature.
9996 (sec): New feature.
9997 (fgroup ARMv7ve): Add mp and sec features.
9998 (arch armv7-a): Add options to allow mp and sec extensions.
9999 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
10000 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
10001 extenstions to the base architecture.
10002 (cpu cortex-a8): Add sec extension to the base architecture.
10003 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
10004 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
10005 variants down to the base v7-a varaint.
10006 * config/arm/t-multilib (v7_a_arch_variants): New variable.
10007 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
10008 of permitted extensions for -march=armv7-a and for
10009 -mcpu=generic-armv7-a.
10010
10011 2019-01-18 Martin Liska <mliska@suse.cz>
10012
10013 * params.def: Fix comment.
10014 * tree-profile.c (gimple_init_gcov_profiler): Bump function
10015 name.
10016 (gimple_gen_ic_func_profiler): Likewise.
10017
10018 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
10019
10020 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
10021 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
10022 and put in error checks for stack protector guard options.
10023 (aarch64_stack_protect_guard): New.
10024 (TARGET_STACK_PROTECT_GUARD): Define.
10025 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
10026 (reg_stack_protect_address<mode>): New.
10027 (stack_protect_set): Adjust for SSP_GLOBAL.
10028 (stack_protect_test): Likewise.
10029 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
10030 (-mstack-protector-guard): Likewise.
10031 (-mstack-protector-guard-offset): Likewise.
10032
10033 2019-01-18 Jakub Jelinek <jakub@redhat.com>
10034
10035 PR tree-optimization/86214
10036 * tree-inline.h (struct copy_body_data): Add
10037 add_clobbers_to_eh_landing_pads member.
10038 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
10039 (copy_edges_for_bb): Call it if EH edge destination is <
10040 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
10041 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
10042 if flag_stack_reuse != SR_NONE and clear it afterwards.
10043
10044 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
10045
10046 PR target/85596
10047 * doc/install.texi (with-multilib-list): Document for aarch64.
10048
10049 2019-01-18 Jakub Jelinek <jakub@redhat.com>
10050
10051 PR target/88734
10052 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
10053 (("..."))) with ("...").
10054
10055 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
10056
10057 * doc/extend.texi (Built-in Functions for Memory Model Aware
10058 Atomic Operations): Document atomic fetch and nand.
10059
10060 2019-01-18 Martin Liska <mliska@suse.cz>
10061 Richard Biener <rguenther@suse.de>
10062
10063 PR middle-end/88587
10064 * cgraph.h (create_version_clone_with_body): Add new argument
10065 with attributes.
10066 * cgraphclones.c (cgraph_node::create_version_clone): Add
10067 DECL_ATTRIBUTES to a newly created decl. And call
10068 valid_attribute_p so that proper cl_target_optimization_node
10069 is set for the newly created declaration.
10070 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
10071 for declaration.
10072 (expand_target_clones): Do not call valid_attribute_p, it must
10073 be already done.
10074 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
10075 vector types.
10076
10077 2019-01-17 Jakub Jelinek <jakub@redhat.com>
10078
10079 PR target/88734
10080 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
10081 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
10082 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
10083
10084 2019-01-17 Martin Sebor <msebor@redhat.com>
10085
10086 PR middle-end/88273
10087 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
10088 Handle anti-ranges the same as no range at all.
10089
10090 2018-01-17 Steve Ellcey <sellcey@cavium.com>
10091
10092 * config/aarch64/aarch64.c (cgraph.h): New include.
10093 (intl.h): New include.
10094 (supported_simd_type): New function.
10095 (currently_supported_simd_type): Ditto.
10096 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
10097 (aarch64_simd_clone_adjust): Ditto.
10098 (aarch64_simd_clone_usable): Ditto.
10099 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
10100 (TARGET_SIMD_CLONE_ADJUST): Ditto.
10101 (TARGET_SIMD_CLONE_USABLE): Ditto.
10102 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
10103 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
10104 call.
10105
10106 2019-01-17 Martin Sebor <msebor@redhat.com>
10107
10108 PR tree-optimization/88800
10109 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
10110 NO_WARNING bit here. Avoid folding out-of-bounds calls.
10111 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
10112 redundant argument. Add new argument and issue diagnostics under
10113 its control. Detect out-of-bounds access even with warnings
10114 disabled.
10115 (check_bounds_or_overlap): Change return type. Add argument.
10116 (wrestrict_dom_walker::check_call): Adjust.
10117 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
10118 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
10119 check_bounds_or_overlap's return value.
10120 (handle_builtin_stxncpy): Same.
10121 (handle_builtin_strcat): Same.
10122
10123 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10124 Kwok Cheung Yeung <kcy@codesourcery.com>
10125 Julian Brown <julian@codesourcery.com>
10126 Tom de Vries <tom@codesourcery.com>
10127
10128 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
10129
10130 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10131
10132 * doc/sourcebuild.texi: Document dg-require-effective-target
10133 llvm_binutils and offload_gcn.
10134
10135 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10136 Kwok Cheung Yeung <kcy@codesourcery.com>
10137 Julian Brown <julian@codesourcery.com>
10138 Tom de Vries <tom@codesourcery.com>
10139
10140 * doc/sourcebuild.texi: Document dg-required-effective-target
10141 exceptions.
10142
10143 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10144 Kwok Cheung Yeung <kcy@codesourcery.com>
10145 Julian Brown <julian@codesourcery.com>
10146 Tom de Vries <tom@codesourcery.com>
10147 Jan Hubicka <hubicka@ucw.cz>
10148 Martin Jambor <mjambor@suse.cz>
10149
10150 * config.gcc: Add amdgcn*-*-amdhsa configuration.
10151 * configure.ac: Check for dlopen.
10152 * configure: Regenerate.
10153
10154 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10155 Kwok Cheung Yeung <kcy@codesourcery.com>
10156 Julian Brown <julian@codesourcery.com>
10157 Tom de Vries <tom@codesourcery.com>
10158 Jan Hubicka <hubicka@ucw.cz>
10159 Martin Jambor <mjambor@suse.cz>
10160
10161 * common/config/gcn/gcn-common.c: New file.
10162 * config/gcn/driver-gcn.c: New file.
10163 * config/gcn/gcn-builtins.def: New file.
10164 * config/gcn/gcn-hsa.h: New file.
10165 * config/gcn/gcn-modes.def: New file.
10166 * config/gcn/gcn-opts.h: New file.
10167 * config/gcn/gcn-passes.def: New file.
10168 * config/gcn/gcn-protos.h: New file.
10169 * config/gcn/gcn-run.c: New file.
10170 * config/gcn/gcn-tree.c: New file.
10171 * config/gcn/gcn.c: New file.
10172 * config/gcn/gcn.h: New file.
10173 * config/gcn/gcn.opt: New file.
10174 * config/gcn/t-gcn-hsa: New file.
10175
10176 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
10177 Kwok Cheung Yeung <kcy@codesourcery.com>
10178 Julian Brown <julian@codesourcery.com>
10179 Tom de Vries <tom@codesourcery.com>
10180 Jan Hubicka <hubicka@ucw.cz>
10181 Martin Jambor <mjambor@suse.cz>
10182
10183 * config/gcn/constraints.md: New file.
10184 * config/gcn/gcn-valu.md: New file.
10185 * config/gcn/gcn.md: New file.
10186 * config/gcn/predicates.md: New file.
10187
10188 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
10189
10190 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
10191 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
10192 (stmt_uses_0_or_null_in_undefined_way): Likewise.
10193 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
10194
10195 2019-01-17 Tamar Christina <tamar.christina@arm.com>
10196
10197 PR target/88851
10198 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
10199 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
10200 it and document registers.
10201
10202 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10203
10204 * config/aarch64/aarch64.c (ares_tunings): Define.
10205 * config/aarch64/aarch64-cores.def (ares): Use the above.
10206
10207 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10208
10209 PR target/88794
10210 Revert:
10211 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
10212
10213 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
10214 (_mm512_fixupimm_round_pd): Update parameters and builtin.
10215 (_mm512_maskz_fixupimm_round_pd): Ditto.
10216 (_mm512_fixupimm_round_ps): Ditto.
10217 (_mm512_maskz_fixupimm_round_ps): Ditto.
10218 (_mm_fixupimm_round_sd): Ditto.
10219 (_mm_maskz_fixupimm_round_sd): Ditto.
10220 (_mm_fixupimm_round_ss): Ditto.
10221 (_mm_maskz_fixupimm_round_ss): Ditto.
10222 (_mm512_fixupimm_pd): Ditto.
10223 (_mm512_maskz_fixupimm_pd): Ditto.
10224 (_mm512_fixupimm_ps): Ditto.
10225 (_mm512_maskz_fixupimm_ps): Ditto.
10226 (_mm_fixupimm_sd): Ditto.
10227 (_mm_maskz_fixupimm_sd): Ditto.
10228 (_mm_fixupimm_ss): Ditto.
10229 (_mm_maskz_fixupimm_ss): Ditto.
10230 (_mm512_mask_fixupimm_round_pd): Update builtin.
10231 (_mm512_mask_fixupimm_round_ps): Ditto.
10232 (_mm_mask_fixupimm_round_sd): Ditto.
10233 (_mm_mask_fixupimm_round_ss): Ditto.
10234 (_mm512_mask_fixupimm_pd): Ditto.
10235 (_mm512_mask_fixupimm_ps): Ditto.
10236 (_mm_mask_fixupimm_sd): Ditto.
10237 (_mm_mask_fixupimm_ss): Ditto.
10238 * config/i386/avx512vlintrin.h:
10239 (_mm256_fixupimm_pd): Update parameters and builtin.
10240 (_mm256_maskz_fixupimm_pd): Ditto.
10241 (_mm256_fixupimm_ps): Ditto.
10242 (_mm256_maskz_fixupimm_ps): Ditto.
10243 (_mm_fixupimm_pd): Ditto.
10244 (_mm_maskz_fixupimm_pd): Ditto.
10245 (_mm_fixupimm_ps): Ditto.
10246 (_mm_maskz_fixupimm_ps): Ditto.
10247 (_mm256_mask_fixupimm_pd): Update builtin.
10248 (_mm256_mask_fixupimm_ps): Ditto.
10249 (_mm_mask_fixupimm_pd): Ditto.
10250 (_mm_mask_fixupimm_ps): Ditto.
10251 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
10252 * config/i386/i386-builtin.def: Update builtin definitions.
10253 * config/i386/i386.c: Handle new builtin types and remove useless ones.
10254 * config/i386/sse.md: Update VFIXUPIMM* patterns.
10255 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10256 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10257 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
10258 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10259 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10260 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
10261 * config/i386/subst.md:
10262 (round_saeonly_sd_mask_operand4): Add new subst_attr.
10263 (round_saeonly_sd_mask_op4): Ditto.
10264 (round_saeonly_expand_operand5): Ditto.
10265 (round_saeonly_expand): Update.
10266
10267 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10268
10269 PR target/88794
10270 Revert:
10271 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
10272
10273 * config/i386/sse.md: Combine VFIXUPIMM* patterns
10274 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10275 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10276 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
10277 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
10278 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
10279 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
10280
10281 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
10282
10283 PR target/88794
10284 Revert:
10285 2018-12-15 Jakub Jelinek <jakub@redhat.com>
10286
10287 PR target/88489
10288 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
10289 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
10290 instead of UNSPEC_FIXUPIMM.
10291
10292 2019-01-17 Richard Biener <rguenther@suse.de>
10293
10294 PR lto/86736
10295 * dwarf2out.c (want_pubnames): Never generate pubnames sections
10296 and friends for the LTO part of debug info.
10297
10298 2019-01-17 Jakub Jelinek <jakub@redhat.com>
10299
10300 PR tree-optimization/86214
10301 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
10302 if x == y.
10303
10304 PR rtl-optimization/88870
10305 * dce.c (deletable_insn_p): Never delete const/pure calls that can
10306 throw if we can't alter the cfg or delete dead exceptions.
10307 (mark_insn): Don't call find_call_stack_args for such calls.
10308
10309 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
10310
10311 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
10312 prototypes for vec_st.
10313 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
10314 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
10315 mainly on signed/unsigned long long and double.
10316
10317 2019-01-16 David Malcolm <dmalcolm@redhat.com>
10318
10319 PR target/88861
10320 * combine.c (delete_noop_moves): Convert to "bool" return,
10321 returning true if any edges are eliminated.
10322 (combine_instructions): Also return true if delete_noop_moves
10323 returns true.
10324
10325 2019-01-16 Tamar Christina <tamar.christina@arm.com>
10326
10327 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
10328 correct max nunits for endian swap.
10329 (aarch64_expand_fcmla_builtin): Correct subreg code.
10330 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
10331 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
10332 lane endianness.
10333
10334 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
10335
10336 * config/alpha/alpha.c (alpha_gimplify_va_arg):
10337 Handle split indirect COMPLEX_TYPE arguments.
10338
10339 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
10340
10341 PR target/86891
10342 * config/aarch64/aarch64-modes.def: Add comment about how the carry
10343 bit is set by add and compare.
10344 (CC_ADC): New CC_MODE.
10345 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
10346 to cache the code and mode of X. Adjust the shape of a CC_Cmode
10347 comparison. Add detection for CC_ADCmode.
10348 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
10349 CC_ADCmode.
10350 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
10351 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
10352 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
10353 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
10354 to eliminate the need for zero-extending the operands.
10355 (add<mode>3_compareC_imm): Delete. Merge into ...
10356 (add<mode>3_compareC): ... this. Restructure the comparison to
10357 eliminate the need for zero-extending the operands.
10358 (add<mode>3_carryin): Use LTU for the overflow detection.
10359 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
10360 Reexpress comparison for overflow.
10361 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
10362 (add<mode>3_carryinC): Likewise.
10363 (add<mode>3_carryinV): Use LTU for carry between partials.
10364 * config/aarch64/predicates.md (aarch64_carry_operation): Update
10365 handling of CC_Cmode and add CC_ADCmode.
10366 (aarch64_borrow_operation): Likewise.
10367
10368 2019-01-16 Tamar Christina <tamar.christina@arm.com>
10369
10370 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
10371 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
10372 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
10373 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
10374
10375 2019-01-16 Martin Liska <mliska@suse.cz>
10376
10377 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
10378 for GCC driver.
10379 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
10380 a new argument.
10381 * gcc.c (add_sysrooted_hdrs_prefix): New function.
10382 (path_prefix_reset): Move up in the source file.
10383 (find_fortran_preinclude_file): Make complex search for the
10384 fortran header files.
10385
10386 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
10387
10388 * godump.c (go_output_typedef): When outputting a typedef, refer
10389 to the underlying type by its name and not its structure.
10390
10391 2019-01-15 David Malcolm <dmalcolm@redhat.com>
10392
10393 PR c++/88795
10394 * tree.c (build_function_type): Assert that arg_types is not
10395 error_mark_node.
10396
10397 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
10398
10399 PR inline-asm/52813
10400 * doc/extend.texi: Document that listing the stack pointer in the
10401 clobber list of an asm is a deprecated feature.
10402 * common.opt (Wdeprecated): Moved from c-family/c.opt.
10403 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
10404 warning instead of an error for clobbers of the stack pointer.
10405 Add a note explaining why.
10406
10407 2019-01-15 Richard Biener <rguenther@suse.de>
10408
10409 PR debug/88046
10410 * dwarf2out.c (gen_member_die): Do not generate inheritance
10411 DIEs late.
10412
10413 2019-01-15 Richard Biener <rguenther@suse.de>
10414
10415 PR tree-optimization/88855
10416 * tree-if-conv.c (combine_blocks): Collect
10417 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
10418
10419 2019-01-15 Tom de Vries <tdevries@suse.de>
10420
10421 PR target/80547
10422 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
10423 lhs == NULL_TREE for gang-level reduction.
10424
10425 2019-01-15 Richard Biener <rguenther@suse.de>
10426 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
10427
10428 PR ipa/88788
10429 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
10430 return true if SSA_NAME is already marked in visited bitmap.
10431 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
10432
10433 2019-01-15 Jakub Jelinek <jakub@redhat.com>
10434
10435 PR tree-optimization/88775
10436 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
10437 equal == 0 equality pointer comparisons some more if compared in
10438 integral types and either one points to an automatic var and the
10439 other to a global, or we can prove at least one points to the middle
10440 or both point to start or both point to end.
10441
10442 2019-01-14 Andi Kleen <ak@linux.intel.com>
10443
10444 * Makefile.in: Lower autofdo sampling rate by 10x.
10445 * Makefile.tpl: Dito.
10446
10447 2019-01-14 Tom Honermann <tom@honermann.net>
10448
10449 * defaults.h: Define CHAR8_TYPE.
10450
10451 2019-01-14 Martin Sebor <msebor@redhat.com>
10452
10453 PR target/88638
10454 * doc/extend.texi (Darwin Format Checks): Clarify.
10455
10456 2019-01-14 Richard Biener <rguenther@suse.de>
10457
10458 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
10459 whether we are in (simplify ...) or (match ...) context.
10460
10461 2019-01-14 Jakub Jelinek <jakub@redhat.com>
10462
10463 PR rtl-optimization/88796
10464 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
10465 * cfgexpand.c (stack_protect_prologue): Initialize
10466 crtl->stack_protect_guard_decl.
10467 * function.c (stack_protect_epilogue): Use it instead of calling
10468 targetm.stack_protect_guard again.
10469 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
10470 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
10471 crtl->stack_protect_guard_decl.
10472 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
10473 on the returned MEM_EXPR.
10474
10475 2019-01-12 Tom de Vries <tdevries@suse.de>
10476
10477 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
10478 vector length using -fopenacc-dim.
10479
10480 2019-01-12 Tom de Vries <tdevries@suse.de>
10481
10482 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
10483 lengths into account.
10484
10485 2019-01-12 Svante Signell <svante.signell@gmail.com>
10486
10487 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
10488 (TARGET_CAN_SPLIT_STACK): Define.
10489 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
10490
10491 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
10492
10493 * params.def (inline-unit-growth): Set to 40.
10494
10495 2019-01-12 Jakub Jelinek <jakub@redhat.com>
10496
10497 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
10498
10499 2019-01-12 Tom de Vries <tdevries@suse.de>
10500
10501 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
10502 region calling vector-partitionable routine, set default_vector_length
10503 to WARP_SIZE.
10504
10505 2019-01-12 Tom de Vries <tdevries@suse.de>
10506
10507 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
10508 variable default_vector_length.
10509
10510 2019-01-12 Tom de Vries <tdevries@suse.de>
10511
10512 PR middle-end/88703
10513 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
10514 from oacc_default_dims, as oacc_validate_dims would do it, and apply
10515 dimensions limits.
10516
10517 2019-01-12 Tom de Vries <tdevries@suse.de>
10518
10519 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
10520 (nvptx_goacc_validate_dims): Add used parameter.
10521 * doc/tm.texi: Regenerate.
10522 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
10523 argument to call to targetm.goacc.validate_dims.
10524 (default_goacc_validate_dims): Add used
10525 parameter.
10526 * target.def (validate_dims): Add used parameter in DEFHOOK.
10527 * targhooks.h (default_goacc_validate_dims): Add used parameter.
10528
10529 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10530
10531 PR middle-end/85956
10532 PR lto/88733
10533 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
10534 field.
10535 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
10536 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
10537 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
10538 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
10539
10540 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
10541
10542 PR rtl-optimization/87305
10543 * lra-assigns.c
10544 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
10545 for little endian pseudos used as paradoxical subreg.
10546
10547 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10548
10549 PR tree-optimization/88693
10550 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
10551 for STRING_CSTs that don't contain any NUL characters in the first
10552 TREE_STRING_LENGTH bytes.
10553
10554 2019-01-11 Alan Modra <amodra@gmail.com>
10555
10556 PR 88777
10557 PR 88614
10558 * genattrtab.c (min_fn): Don't translate values.
10559 (min_attr_value): Return INT_MAX when the value can't be calculated.
10560 Return minimum among any values that can be calculated.
10561 (max_attr_value): Adjust.
10562
10563 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10564
10565 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
10566
10567 2019-01-11 Steve Ellcey <sellcey@marvell.com>
10568
10569 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
10570 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
10571 (aarch64_return_call_with_max_clobbers): New function.
10572 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
10573 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
10574 argument.
10575 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
10576 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
10577 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
10578 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
10579 * cselib.c (cselib_process_insn): Add argument to
10580 targetm.hard_regno_call_part_clobbered call.
10581 * ira-conflicts.c (ira_build_conflicts): Ditto.
10582 * ira-costs.c (ira_tune_allocno_costs): Ditto.
10583 * lra-constraints.c (inherit_reload_reg): Ditto.
10584 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
10585 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
10586 argument. Call targetm.return_call_with_max_clobbers.
10587 Add argument to targetm.hard_regno_call_part_clobbered call.
10588 (calls_have_same_clobbers_p): New function.
10589 (process_bb_lives): Add call_insn and last_call_insn variables.
10590 Pass call_insn to check_pseudos_live_through_calls.
10591 Modify if stmt to check targetm.return_call_with_max_clobbers.
10592 Update setting of flush variable.
10593 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
10594 to false.
10595 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
10596 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
10597 targetm.hard_regno_call_part_clobbered call.
10598 * reginfo.c (choose_hard_reg_mode): Ditto.
10599 * regrename.c (check_new_reg_p): Ditto.
10600 * reload.c (find_equiv_reg): Ditto.
10601 * reload1.c (emit_reload_insns): Ditto.
10602 * sched-deps.c (deps_analyze_insn): Ditto.
10603 * sel-sched.c (init_regs_for_mode): Ditto.
10604 (mark_unavailable_hard_regs): Ditto.
10605 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
10606 * target.def (hard_regno_call_part_clobbered): Add insn argument.
10607 (return_call_with_max_clobbers): New target function.
10608 * doc/tm.texi: Regenerate.
10609 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
10610 * hooks.c (hook_bool_uint_mode_false): Change to
10611 hook_bool_insn_uint_mode_false.
10612 * hooks.h (hook_bool_uint_mode_false): Ditto.
10613
10614 2019-01-11 Steve Ellcey <sellcey@marvell.com>
10615
10616 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
10617 (aarch64_remove_extra_call_preserved_regs): New function.
10618 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
10619 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
10620 * doc/tm.texi: Regenerate.
10621 * final.c (get_call_reg_set_usage): Call new hook.
10622 * target.def (remove_extra_call_preserved_regs): New hook.
10623 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
10624 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
10625
10626 2019-01-11 Jakub Jelinek <jakub@redhat.com>
10627
10628 PR bootstrap/88714
10629 * passes.c (finish_optimization_passes): Call print_combine_total_stats
10630 inside of pass_combine_1 dump rather than pass_profile_1.
10631
10632 2019-01-11 Tom de Vries <tdevries@suse.de>
10633
10634 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
10635 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
10636 (PTX_NUM_PER_WORKER_BARRIERS): Define.
10637 (nvptx_apply_dim_limits): Prevent vector_length 64 and
10638 num_workers 16.
10639
10640 2019-01-11 Tom de Vries <tdevries@suse.de>
10641
10642 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
10643
10644 2019-01-11 Jan Beulich <jbeulich@suse.com>
10645
10646 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
10647 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
10648 sse2_cvtsi2sd): Add {l}.
10649 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
10650 syntax.
10651
10652 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10653
10654 PR target/88785
10655 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
10656 define_expand.
10657 (*float<floatunssuffix>v2div2sf2): New define_insn.
10658 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
10659 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
10660 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
10661 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
10662 match_operands with "const0_operand" "C".
10663
10664 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10665
10666 * config/aarch64/aarch64-builtins.c
10667 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
10668 (aarch64_init_simd_builtins): ...Here
10669
10670 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
10671
10672 PR rtl-optimization/87305
10673 * lra-assigns.c
10674 (setup_live_pseudos_and_spill_after_risky_transforms): Check
10675 allocation for big endian pseudos used as paradoxical subregs and
10676 spill them if it is wrong.
10677 * lra-constraints.c (lra_constraints): Add a comment.
10678
10679 2019-01-10 Richard Biener <rguenther@suse.de>
10680
10681 PR tree-optimization/88792
10682 * tree-ssa-pre.c (get_representative_for): Do not return a
10683 value-number here.
10684
10685 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10686
10687 PR middle-end/84877
10688 PR bootstrap/88450
10689 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
10690 (assign_parm_setup_block): Do the argument slot realignment here
10691 instead.
10692
10693 2019-01-10 Stefan Agner <stefan@agner.ch>
10694
10695 PR target/88648
10696 * config/arm/arm.c (arm_option_override_internal): Force
10697 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
10698
10699 2019-01-10 Jakub Jelinek <jakub@redhat.com>
10700
10701 PR c/88568
10702 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
10703 DECL_EXTERNAL.
10704
10705 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10706
10707 * config/arm/arm-builtins.c
10708 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
10709 (MAC_LANE_PAIR_QUALIFIERS): New.
10710 (arm_expand_builtin_args): Use it.
10711 (arm_expand_builtin_1): Likewise.
10712 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
10713 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
10714 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
10715 * config/arm/arm_neon.h:
10716 (vcadd_rot90_f16): New.
10717 (vcaddq_rot90_f16): New.
10718 (vcadd_rot270_f16): New.
10719 (vcaddq_rot270_f16): New.
10720 (vcmla_f16): New.
10721 (vcmlaq_f16): New.
10722 (vcmla_lane_f16): New.
10723 (vcmla_laneq_f16): New.
10724 (vcmlaq_lane_f16): New.
10725 (vcmlaq_laneq_f16): New.
10726 (vcmla_rot90_f16): New.
10727 (vcmlaq_rot90_f16): New.
10728 (vcmla_rot90_lane_f16): New.
10729 (vcmla_rot90_laneq_f16): New.
10730 (vcmlaq_rot90_lane_f16): New.
10731 (vcmlaq_rot90_laneq_f16): New.
10732 (vcmla_rot180_f16): New.
10733 (vcmlaq_rot180_f16): New.
10734 (vcmla_rot180_lane_f16): New.
10735 (vcmla_rot180_laneq_f16): New.
10736 (vcmlaq_rot180_lane_f16): New.
10737 (vcmlaq_rot180_laneq_f16): New.
10738 (vcmla_rot270_f16): New.
10739 (vcmlaq_rot270_f16): New.
10740 (vcmla_rot270_lane_f16): New.
10741 (vcmla_rot270_laneq_f16): New.
10742 (vcmlaq_rot270_lane_f16): New.
10743 (vcmlaq_rot270_laneq_f16): New.
10744 (vcadd_rot90_f32): New.
10745 (vcaddq_rot90_f32): New.
10746 (vcadd_rot270_f32): New.
10747 (vcaddq_rot270_f32): New.
10748 (vcmla_f32): New.
10749 (vcmlaq_f32): New.
10750 (vcmla_lane_f32): New.
10751 (vcmla_laneq_f32): New.
10752 (vcmlaq_lane_f32): New.
10753 (vcmlaq_laneq_f32): New.
10754 (vcmla_rot90_f32): New.
10755 (vcmlaq_rot90_f32): New.
10756 (vcmla_rot90_lane_f32): New.
10757 (vcmla_rot90_laneq_f32): New.
10758 (vcmlaq_rot90_lane_f32): New.
10759 (vcmlaq_rot90_laneq_f32): New.
10760 (vcmla_rot180_f32): New.
10761 (vcmlaq_rot180_f32): New.
10762 (vcmla_rot180_lane_f32): New.
10763 (vcmla_rot180_laneq_f32): New.
10764 (vcmlaq_rot180_lane_f32): New.
10765 (vcmlaq_rot180_laneq_f32): New.
10766 (vcmla_rot270_f32): New.
10767 (vcmlaq_rot270_f32): New.
10768 (vcmla_rot270_lane_f32): New.
10769 (vcmla_rot270_laneq_f32): New.
10770 (vcmlaq_rot270_lane_f32): New.
10771 (vcmlaq_rot270_laneq_f32): New.
10772 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
10773 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
10774 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
10775 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
10776 vcmlaq_lane270): New.
10777 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
10778 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
10779 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
10780 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
10781 (arm_option_reconfigure_globals): Use them.
10782 * config/arm/iterators.md (VDF, VQ_HSF): New.
10783 (VCADD, VCMLA): New.
10784 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
10785 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
10786 New.
10787 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
10788 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
10789
10790 2019-01-10 Tamar Christina <tamar.christina@arm.com>
10791
10792 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
10793 Add qualifier_lane_pair_index.
10794 (emit-rtl.h): Include.
10795 (TYPES_QUADOP_LANE_PAIR): New.
10796 (aarch64_simd_expand_args): Use it.
10797 (aarch64_simd_expand_builtin): Likewise.
10798 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
10799 New.
10800 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
10801 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
10802 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
10803 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
10804 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
10805 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
10806 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
10807 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
10808 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
10809 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
10810 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
10811 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
10812 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
10813 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
10814 Add __ARM_FEATURE_COMPLEX.
10815 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
10816 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
10817 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
10818 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
10819 fcmlaq_lane270): New.
10820 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
10821 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
10822 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
10823 * config/aarch64/arm_neon.h:
10824 (vcadd_rot90_f16): New.
10825 (vcaddq_rot90_f16): New.
10826 (vcadd_rot270_f16): New.
10827 (vcaddq_rot270_f16): New.
10828 (vcmla_f16): New.
10829 (vcmlaq_f16): New.
10830 (vcmla_lane_f16): New.
10831 (vcmla_laneq_f16): New.
10832 (vcmlaq_lane_f16): New.
10833 (vcmlaq_rot90_lane_f16): New.
10834 (vcmla_rot90_laneq_f16): New.
10835 (vcmla_rot90_lane_f16): New.
10836 (vcmlaq_rot90_f16): New.
10837 (vcmla_rot90_f16): New.
10838 (vcmlaq_laneq_f16): New.
10839 (vcmla_rot180_laneq_f16): New.
10840 (vcmla_rot180_lane_f16): New.
10841 (vcmlaq_rot180_f16): New.
10842 (vcmla_rot180_f16): New.
10843 (vcmlaq_rot90_laneq_f16): New.
10844 (vcmlaq_rot270_laneq_f16): New.
10845 (vcmlaq_rot270_lane_f16): New.
10846 (vcmla_rot270_laneq_f16): New.
10847 (vcmlaq_rot270_f16): New.
10848 (vcmla_rot270_f16): New.
10849 (vcmlaq_rot180_laneq_f16): New.
10850 (vcmlaq_rot180_lane_f16): New.
10851 (vcmla_rot270_lane_f16): New.
10852 (vcadd_rot90_f32): New.
10853 (vcaddq_rot90_f32): New.
10854 (vcaddq_rot90_f64): New.
10855 (vcadd_rot270_f32): New.
10856 (vcaddq_rot270_f32): New.
10857 (vcaddq_rot270_f64): New.
10858 (vcmla_f32): New.
10859 (vcmlaq_f32): New.
10860 (vcmlaq_f64): New.
10861 (vcmla_lane_f32): New.
10862 (vcmla_laneq_f32): New.
10863 (vcmlaq_lane_f32): New.
10864 (vcmlaq_laneq_f32): New.
10865 (vcmla_rot90_f32): New.
10866 (vcmlaq_rot90_f32): New.
10867 (vcmlaq_rot90_f64): New.
10868 (vcmla_rot90_lane_f32): New.
10869 (vcmla_rot90_laneq_f32): New.
10870 (vcmlaq_rot90_lane_f32): New.
10871 (vcmlaq_rot90_laneq_f32): New.
10872 (vcmla_rot180_f32): New.
10873 (vcmlaq_rot180_f32): New.
10874 (vcmlaq_rot180_f64): New.
10875 (vcmla_rot180_lane_f32): New.
10876 (vcmla_rot180_laneq_f32): New.
10877 (vcmlaq_rot180_lane_f32): New.
10878 (vcmlaq_rot180_laneq_f32): New.
10879 (vcmla_rot270_f32): New.
10880 (vcmlaq_rot270_f32): New.
10881 (vcmlaq_rot270_f64): New.
10882 (vcmla_rot270_lane_f32): New.
10883 (vcmla_rot270_laneq_f32): New.
10884 (vcmlaq_rot270_lane_f32): New.
10885 (vcmlaq_rot270_laneq_f32): New.
10886 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
10887 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
10888 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
10889 (FCADD, FCMLA): New.
10890 (rot): New.
10891 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
10892
10893 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
10894
10895 PR other/16615
10896
10897 * config/pa/pa.c: Change "can not" to "cannot".
10898 * gimple-ssa-evrp-analyze.c: Likewise.
10899 * ipa-icf.c: Likewise.
10900 * ipa-polymorphic-call.c: Likewise.
10901 * ipa-pure-const.c: Likewise.
10902 * lra-constraints.c: Likewise.
10903 * lra-remat.c: Likewise.
10904 * reload1.c: Likewise.
10905 * reorg.c: Likewise.
10906 * tree-ssa-uninit.c: Likewise.
10907
10908 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
10909
10910 PR other/16615
10911
10912 * Makefile.in: Mechanically replace "can not" with "cannot".
10913 * alias.c: Likewise.
10914 * builtins.c: Likewise.
10915 * calls.c: Likewise.
10916 * cgraph.c: Likewise.
10917 * cgraph.h: Likewise.
10918 * cgraphclones.c: Likewise.
10919 * cgraphunit.c: Likewise.
10920 * combine-stack-adj.c: Likewise.
10921 * combine.c: Likewise.
10922 * common/config/i386/i386-common.c: Likewise.
10923 * config/aarch64/aarch64.c: Likewise.
10924 * config/alpha/sync.md: Likewise.
10925 * config/arc/arc.c: Likewise.
10926 * config/arc/predicates.md: Likewise.
10927 * config/arm/arm-c.c: Likewise.
10928 * config/arm/arm.c: Likewise.
10929 * config/arm/arm.h: Likewise.
10930 * config/arm/arm.md: Likewise.
10931 * config/arm/cortex-r4f.md: Likewise.
10932 * config/csky/csky.c: Likewise.
10933 * config/csky/csky.h: Likewise.
10934 * config/darwin-f.c: Likewise.
10935 * config/epiphany/epiphany.md: Likewise.
10936 * config/i386/i386.c: Likewise.
10937 * config/i386/sol2.h: Likewise.
10938 * config/m68k/m68k.c: Likewise.
10939 * config/mcore/mcore.h: Likewise.
10940 * config/microblaze/microblaze.md: Likewise.
10941 * config/mips/20kc.md: Likewise.
10942 * config/mips/sb1.md: Likewise.
10943 * config/nds32/nds32.c: Likewise.
10944 * config/nds32/predicates.md: Likewise.
10945 * config/pa/pa.c: Likewise.
10946 * config/rs6000/e300c2c3.md: Likewise.
10947 * config/rs6000/rs6000.c: Likewise.
10948 * config/s390/s390.h: Likewise.
10949 * config/sh/sh.c: Likewise.
10950 * config/sh/sh.md: Likewise.
10951 * config/spu/vmx2spu.h: Likewise.
10952 * cprop.c: Likewise.
10953 * dbxout.c: Likewise.
10954 * df-scan.c: Likewise.
10955 * doc/cfg.texi: Likewise.
10956 * doc/extend.texi: Likewise.
10957 * doc/fragments.texi: Likewise.
10958 * doc/gty.texi: Likewise.
10959 * doc/invoke.texi: Likewise.
10960 * doc/lto.texi: Likewise.
10961 * doc/md.texi: Likewise.
10962 * doc/objc.texi: Likewise.
10963 * doc/rtl.texi: Likewise.
10964 * doc/tm.texi: Likewise.
10965 * dse.c: Likewise.
10966 * emit-rtl.c: Likewise.
10967 * emit-rtl.h: Likewise.
10968 * except.c: Likewise.
10969 * expmed.c: Likewise.
10970 * expr.c: Likewise.
10971 * fold-const.c: Likewise.
10972 * genautomata.c: Likewise.
10973 * gimple-fold.c: Likewise.
10974 * hard-reg-set.h: Likewise.
10975 * ifcvt.c: Likewise.
10976 * ipa-comdats.c: Likewise.
10977 * ipa-cp.c: Likewise.
10978 * ipa-devirt.c: Likewise.
10979 * ipa-fnsummary.c: Likewise.
10980 * ipa-icf.c: Likewise.
10981 * ipa-inline-transform.c: Likewise.
10982 * ipa-inline.c: Likewise.
10983 * ipa-polymorphic-call.c: Likewise.
10984 * ipa-profile.c: Likewise.
10985 * ipa-prop.c: Likewise.
10986 * ipa-pure-const.c: Likewise.
10987 * ipa-reference.c: Likewise.
10988 * ipa-split.c: Likewise.
10989 * ipa-visibility.c: Likewise.
10990 * ipa.c: Likewise.
10991 * ira-build.c: Likewise.
10992 * ira-color.c: Likewise.
10993 * ira-conflicts.c: Likewise.
10994 * ira-costs.c: Likewise.
10995 * ira-int.h: Likewise.
10996 * ira-lives.c: Likewise.
10997 * ira.c: Likewise.
10998 * ira.h: Likewise.
10999 * loop-invariant.c: Likewise.
11000 * loop-unroll.c: Likewise.
11001 * lower-subreg.c: Likewise.
11002 * lra-assigns.c: Likewise.
11003 * lra-constraints.c: Likewise.
11004 * lra-eliminations.c: Likewise.
11005 * lra-lives.c: Likewise.
11006 * lra-remat.c: Likewise.
11007 * lra-spills.c: Likewise.
11008 * lra.c: Likewise.
11009 * lto-cgraph.c: Likewise.
11010 * lto-streamer-out.c: Likewise.
11011 * postreload-gcse.c: Likewise.
11012 * predict.c: Likewise.
11013 * profile-count.h: Likewise.
11014 * profile.c: Likewise.
11015 * recog.c: Likewise.
11016 * ree.c: Likewise.
11017 * reload.c: Likewise.
11018 * reload1.c: Likewise.
11019 * reorg.c: Likewise.
11020 * resource.c: Likewise.
11021 * rtl.def: Likewise.
11022 * rtl.h: Likewise.
11023 * rtlanal.c: Likewise.
11024 * sched-deps.c: Likewise.
11025 * sched-ebb.c: Likewise.
11026 * sched-rgn.c: Likewise.
11027 * sel-sched-ir.c: Likewise.
11028 * sel-sched.c: Likewise.
11029 * shrink-wrap.c: Likewise.
11030 * simplify-rtx.c: Likewise.
11031 * symtab.c: Likewise.
11032 * target.def: Likewise.
11033 * toplev.c: Likewise.
11034 * tree-call-cdce.c: Likewise.
11035 * tree-cfg.c: Likewise.
11036 * tree-complex.c: Likewise.
11037 * tree-core.h: Likewise.
11038 * tree-eh.c: Likewise.
11039 * tree-inline.c: Likewise.
11040 * tree-loop-distribution.c: Likewise.
11041 * tree-nrv.c: Likewise.
11042 * tree-profile.c: Likewise.
11043 * tree-sra.c: Likewise.
11044 * tree-ssa-alias.c: Likewise.
11045 * tree-ssa-dce.c: Likewise.
11046 * tree-ssa-dom.c: Likewise.
11047 * tree-ssa-forwprop.c: Likewise.
11048 * tree-ssa-loop-im.c: Likewise.
11049 * tree-ssa-loop-ivcanon.c: Likewise.
11050 * tree-ssa-loop-ivopts.c: Likewise.
11051 * tree-ssa-loop-niter.c: Likewise.
11052 * tree-ssa-phionlycprop.c: Likewise.
11053 * tree-ssa-phiopt.c: Likewise.
11054 * tree-ssa-propagate.c: Likewise.
11055 * tree-ssa-threadedge.c: Likewise.
11056 * tree-ssa-threadupdate.c: Likewise.
11057 * tree-ssa-uninit.c: Likewise.
11058 * tree-ssanames.c: Likewise.
11059 * tree-streamer-out.c: Likewise.
11060 * tree.c: Likewise.
11061 * tree.h: Likewise.
11062 * vr-values.c: Likewise.
11063
11064 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
11065
11066 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
11067 (ix86_split_xorsign): Ditto.
11068 * config/i386/i386.c (ix86_expand_xorsign): New function.
11069 (ix86_split_xorsign): Ditto.
11070 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
11071 (xorsign<mode>3): New expander.
11072 (xorsign<mode>3_1): New insn_and_split pattern.
11073 * config/i386/sse.md (xorsign<mode>3): New expander.
11074
11075 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11076
11077 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
11078 (*tablejump_sp64): Likewise.
11079 (*tablejump<P:mode>): ...this.
11080 (*call_address_sp32): Merge into...
11081 (*call_address_sp64): Likewise.
11082 (*call_address<P:mode>): ...this.
11083 (*call_symbolic_sp32): Merge into...
11084 (*call_symbolic_sp64): Likewise.
11085 (*call_symbolic<P:mode>): ...this.
11086 (call_value): Remove constraint and add predicate.
11087 (*call_value_address_sp32): Merge into...
11088 (*call_value_address_sp64): Likewise.
11089 (*call_value_address<P:mode>): ...this.
11090 (*call_value_symbolic_sp32): Merge into...
11091 (*call_value_symbolic_sp64): Likewise.
11092 (*call_value_symbolic<P:mode>): ...this.
11093 (*sibcall_symbolic_sp32): Merge into...
11094 (*sibcall_symbolic_sp64): Likewise.
11095 (*sibcall_symbolic<P:mode>): ...this.
11096 (sibcall_value): Remove constraint and add predicate.
11097 (*sibcall_value_symbolic_sp32): Merge into...
11098 (*sibcall_value_symbolic_sp64): Likewise.
11099 (*sibcall_value_symbolic<P:mode>): ...this.
11100 (window_save): Minor tweak.
11101 (*branch_sp32): Merge into...
11102 (*branch_sp64): Likewise.
11103 (*branch<P:mode>): ...this.
11104
11105 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11106 James Clarke <jrtc27@jrtc27.com>
11107
11108 PR target/84010
11109 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
11110 consistently in TLS address generation and adjust code to the renaming
11111 of patterns. Mark calls to __tls_get_addr as const.
11112 * config/sparc/sparc.md (tgd_hi22): Turn into...
11113 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
11114 (tgd_lo10): Turn into...
11115 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
11116 (tgd_add32): Merge into...
11117 (tgd_add64): Likewise.
11118 (tgd_add<P:mode>): ...this and use Pmode throughout.
11119 (tldm_hi22): Turn into...
11120 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
11121 (tldm_lo10): Turn into...
11122 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
11123 (tldm_add32): Merge into...
11124 (tldm_add64): Likewise.
11125 (tldm_add<P:mode>): ...this and use Pmode throughout.
11126 (tldm_call32): Merge into...
11127 (tldm_call64): Likewise.
11128 (tldm_call<P:mode>): ...this and use Pmode throughout.
11129 (tldo_hix22): Turn into...
11130 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
11131 (tldo_lox10): Turn into...
11132 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
11133 (tldo_add32): Merge into...
11134 (tldo_add64): Likewise.
11135 (tldo_add<P:mode>): ...this and use Pmode throughout.
11136 (tie_hi22): Turn into...
11137 (tie_hi22<P:mode>): ...this and use Pmode throughout.
11138 (tie_lo10): Turn into...
11139 (tie_lo10<P:mode>): ...this and use Pmode throughout.
11140 (tie_ld64): Use DImode throughout.
11141 (tie_add32): Merge into...
11142 (tie_add64): Likewise.
11143 (tie_add<P:mode>): ...this and use Pmode throughout.
11144 (tle_hix22_sp32): Merge into...
11145 (tle_hix22_sp64): Likewise.
11146 (tle_hix22<P:mode>): ...this and use Pmode throughout.
11147 (tle_lox22_sp32): Merge into...
11148 (tle_lox22_sp64): Likewise.
11149 (tle_lox22<P:mode>): ...this and use Pmode throughout.
11150 (*tldo_ldub_sp32): Merge into...
11151 (*tldo_ldub_sp64): Likewise.
11152 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
11153 (*tldo_ldub1_sp32): Merge into...
11154 (*tldo_ldub1_sp64): Likewise.
11155 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
11156 (*tldo_ldub2_sp32): Merge into...
11157 (*tldo_ldub2_sp64): Likewise.
11158 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
11159 (*tldo_ldsb1_sp32): Merge into...
11160 (*tldo_ldsb1_sp64): Likewise.
11161 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
11162 (*tldo_ldsb2_sp32): Merge into...
11163 (*tldo_ldsb2_sp64): Likewise.
11164 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
11165 (*tldo_ldub3_sp64): Use DImode throughout.
11166 (*tldo_ldsb3_sp64): Likewise.
11167 (*tldo_lduh_sp32): Merge into...
11168 (*tldo_lduh_sp64): Likewise.
11169 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
11170 (*tldo_lduh1_sp32): Merge into...
11171 (*tldo_lduh1_sp64): Likewise.
11172 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
11173 (*tldo_ldsh1_sp32): Merge into...
11174 (*tldo_ldsh1_sp64): Likewise.
11175 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
11176 (*tldo_lduh2_sp64): Use DImode throughout.
11177 (*tldo_ldsh2_sp64): Likewise.
11178 (*tldo_lduw_sp32): Merge into...
11179 (*tldo_lduw_sp64): Likewise.
11180 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
11181 (*tldo_lduw1_sp64): Use DImode throughout.
11182 (*tldo_ldsw1_sp64): Likewise.
11183 (*tldo_ldx_sp64): Likewise.
11184 (*tldo_stb_sp32): Merge into...
11185 (*tldo_stb_sp64): Likewise.
11186 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
11187 (*tldo_sth_sp32): Merge into...
11188 (*tldo_sth_sp64): Likewise.
11189 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
11190 (*tldo_stw_sp32): Merge into...
11191 (*tldo_stw_sp64): Likewise.
11192 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
11193 (*tldo_stx_sp64): Use DImode throughout.
11194
11195 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11196
11197 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
11198 check configure option to set BTI and Return Address Signing.
11199 * configure.ac: Add --enable-standard-branch-protection and
11200 --disable-standard-branch-protection.
11201 * configure: Regenerated.
11202 * doc/install.texi: Document the same.
11203
11204 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11205 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11206
11207 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
11208 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
11209 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
11210 if bti is enabled.
11211 * config/aarch64/aarch64-bti-insert.c: New file.
11212 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
11213 pass.
11214 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
11215 new bti pass.
11216 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
11217 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
11218 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
11219 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
11220
11221 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11222
11223 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
11224 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
11225 Disable bti for -mbranch-protection=none.
11226 (aarch64_handle_standard_branch_protection): Enable bti for
11227 -mbranch-protection=standard.
11228 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
11229 -mbranch-protection.
11230 (aarch64_bti_enabled): Check if bti is enabled.
11231 * config/aarch64/aarch64.opt: Declare target variable.
11232 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
11233
11234 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11235
11236 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
11237 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
11238 (aarch64_expand_epilogue): Likewise.
11239 (aarch64_output_mi_thunk): Likewise
11240 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
11241 TAILCALL_ADDR_REGS to x16 and x17.
11242 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
11243
11244 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11245
11246 * config/aarch64/aarch64-option-extensions.def: Define
11247 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
11248 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
11249 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
11250 (AARCH64_FL_PREDRES): New.
11251 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
11252 AARCH64_FL_PREDRES by default.
11253 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
11254
11255 2018-01-09 Sudakshina Das <sudi.das@arm.com>
11256
11257 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
11258 ARMv8.5-A.
11259 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
11260 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
11261 * doc/invoke.texi: Document ARMv8.5-A.
11262
11263 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
11264
11265 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
11266 (xorsign<mode>3): Likewise.
11267
11268 2019-01-09 Jelinek <jakub@redhat.com>
11269
11270 PR middle-end/88758
11271 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
11272 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
11273
11274 PR rtl-optimization/88331
11275 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
11276 not currently_expanding_to_rtl.
11277
11278 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
11279
11280 * doc/invoke.texi (-Os): Remove trailing spaces.
11281 (-finline-functions): Remove reference to -O2.
11282
11283 2019-01-08 Jakub Jelinek <jakub@redhat.com>
11284
11285 PR rtl-optimization/79593
11286 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
11287
11288 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
11289 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
11290
11291 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
11292
11293 PR bootstrap/88721
11294 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
11295 to -1 on entry.
11296
11297 PR debug/88723
11298 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
11299 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
11300
11301 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
11302
11303 PR target/88717
11304 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
11305 ix86_avx_u128_mode_entry.
11306
11307 2019-01-08 Martin Liska <mliska@suse.cz>
11308
11309 PR tree-optimization/88753
11310 * tree-switch-conversion.c (switch_conversion::build_one_array):
11311 Come up with local variable constructor. Convert first to
11312 type of constructor values.
11313
11314 2019-01-08 Richard Biener <rguenther@suse.de>
11315
11316 PR tree-optimization/86554
11317 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
11318 rpo_avail): Move earlier.
11319 (visit_nary_op): When value-numbering to expressions
11320 with different overflow behavior make sure there's an
11321 available expression on the path.
11322
11323 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
11324
11325 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
11326 aarch64_parse_branch_protection,
11327 struct aarch64_branch_protect_type,
11328 aarch64_handle_no_branch_protection,
11329 aarch64_handle_standard_branch_protection,
11330 aarch64_validate_mbranch_protection,
11331 aarch64_handle_pac_ret_protection,
11332 aarch64_handle_attr_branch_protection,
11333 accepted_branch_protection_string,
11334 aarch64_pac_ret_subtypes,
11335 aarch64_branch_protect_types,
11336 aarch64_handle_pac_ret_leaf): Define.
11337 (aarch64_override_options_after_change_1, aarch64_override_options):
11338 Add check for accepted_branch_protection_string.
11339 (aarch64_option_save): Save accepted_branch_protection_string.
11340 (aarch64_option_restore): Save accepted_branch_protection_string.
11341 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
11342 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
11343 msign-return-address.
11344 * doc/invoke.texi: Add mbranch-protection.
11345
11346 2019-01-08 Alan Modra <amodra@gmail.com>
11347
11348 PR target/88614
11349 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
11350 Delete "unknownp" parameter. Adjust callers. Handle
11351 CONST_INT, PLUS, MINUS, and MULT.
11352 (attr_value_aligned): Renamed from or_attr_value.
11353 (min_attr_value): Return INT_MIN for unhandled rtl case..
11354 (min_fn): ..and translate to INT_MAX here.
11355 (write_length_unit_log): Modify to cope without "unknown".
11356 (write_attr_value): Handle IF_THEN_ELSE.
11357
11358 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11359
11360 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
11361 optimization for masked stores.
11362
11363 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11364
11365 PR middle-end/88567
11366 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
11367 output vector directly to duplicate_and_interleave instead of
11368 going through a temporary. Postpone insertion of ctor_seq to
11369 the end of the loop.
11370
11371 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
11372
11373 PR target/86891
11374 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
11375 unsigned_p. Handle signed and unsigned overflow correction as
11376 required.
11377 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
11378 prototype.
11379 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
11380 for operand 2.
11381 (add<mode>3_compareV_imm): Make this callable for expanding.
11382 (subv<GPI:mode>4): Use register_operand for operand 1. Use
11383 aarch64_plus_operand for operand 2.
11384 (subv<GPI:mode>_insn): New insn pattern.
11385 (subv<GPI:mode>_imm): Likewise.
11386 (negv<GPI:mode>3): New expand pattern.
11387 (negv<GPI:mode>_insn): New insn pattern.
11388 (negv<GPI:mode>_cmp_only): Likewise.
11389 (cmpv<GPI:mode>_insn): Likewise.
11390 (subvti4): Use register_operand for operand 1. Update call to
11391 aarch64_expand_subvti.
11392 (usubvti4): Likewise.
11393 (negvti3): New expand pattern.
11394 (negdi_carryout): New insn pattern.
11395 (negvdi_carryinV): New insn pattern.
11396 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
11397 version the named version.
11398 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
11399 operands.
11400 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
11401 patterns.
11402 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
11403 patterns.
11404 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
11405 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
11406 (sub<mode>3_carryinCV): Delete.
11407 (sub<GPI:mode>3_carryinV): New expand pattern.
11408 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
11409
11410 2019-01-07 Richard Biener <rguenther@suse.de>
11411
11412 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
11413 of tree_operand_hash.
11414
11415 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11416
11417 PR tree-optimization/88598
11418 * tree.h (single_nonzero_element): Declare.
11419 * tree.c (single_nonzero_element): New function.
11420 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
11421 if I is the only nonzero element of CST.
11422
11423 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
11424
11425 PR tree-optimization/88598
11426 * tree.h (initializer_each_zero_or_onep): Declare.
11427 * tree.c (initializer_each_zero_or_onep): New function.
11428 (signed_or_unsigned_type_for): Handle float types too.
11429 (unsigned_type_for, signed_type_for): Update comments accordingly.
11430 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
11431 x & { 0 or -1, 0 or -1, ... }.
11432
11433 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
11434
11435 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
11436 with x86_64-pc-linux-gnu.
11437
11438 2019-01-07 Tom de Vries <tdevries@suse.de>
11439
11440 PR target/85486
11441 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
11442 function.
11443 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
11444 routines.
11445
11446 2019-01-07 Jakub Jelinek <jakub@redhat.com>
11447
11448 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
11449 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
11450 TARGET_AVX512F as condition.
11451
11452 PR debug/88723
11453 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
11454 const_not_ok_for_debug_p target hook.
11455 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
11456 on UNSPEC and subexpressions thereof if all subexpressions of the
11457 UNSPEC are CONSTANT_P.
11458
11459 PR tree-optimization/88676
11460 * tree-ssa-phiopt.c (two_value_replacement): New function.
11461 (tree_ssa_phiopt_worker): Call it.
11462
11463 PR sanitizer/88619
11464 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
11465 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
11466
11467 PR c++/85052
11468 * tree-vect-generic.c: Include insn-config.h and recog.h.
11469 (expand_vector_piecewise): Add defaulted ret_type argument,
11470 if non-NULL, use that in preference to type for the result type.
11471 (expand_vector_parallel): Formatting fix.
11472 (do_vec_conversion, do_vec_narrowing_conversion,
11473 expand_vector_conversion): New functions.
11474 (expand_vector_operations_1): Call expand_vector_conversion
11475 for VEC_CONVERT ifn calls.
11476 * internal-fn.def (VEC_CONVERT): New internal function.
11477 * internal-fn.c (expand_VEC_CONVERT): New function.
11478 * fold-const-call.c (fold_const_vec_convert): New function.
11479 (fold_const_call): Use it for CFN_VEC_CONVERT.
11480 * doc/extend.texi (__builtin_convertvector): Document.
11481
11482 2019-01-07 Tom de Vries <tdevries@suse.de>
11483
11484 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
11485 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
11486 vector_red_partition, vector_red_sym): New global variables.
11487 (nvptx_option_override): Initialize vector_red_sym.
11488 (nvptx_declare_function_name): Restore red_partition register.
11489 (nvptx_file_end): Emit code to declare the vector reduction variables.
11490 (nvptx_output_red_partition): New function.
11491 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
11492 large vector reductions.
11493 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
11494 (nvptx_init_builtins): Add VECTOR_ADDR.
11495 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
11496 Handle nvptx_expand_shared_addr.
11497 (nvptx_get_shared_red_addr): Add vector argument and handle large
11498 vectors.
11499 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
11500 large vectors.
11501 (nvptx_goacc_reduction_init): Likewise.
11502 (nvptx_goacc_reduction_fini): Likewise.
11503 (nvptx_goacc_reduction_teardown): Likewise.
11504 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
11505 init,fini,teardown}.
11506 (nvptx_init_axis_predicate): Initialize vector_red_partition.
11507 (nvptx_set_current_function): Init vector_red_partition.
11508 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
11509 (nvptx_red_partition): New insn.
11510 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
11511
11512 2019-01-07 Tom de Vries <tdevries@suse.de>
11513
11514 PR target/85381
11515 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
11516 empty loops.
11517
11518 2019-01-07 Tom de Vries <tdevries@suse.de>
11519
11520 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
11521 (nvptx_option_override): Init oacc_bcast_partition.
11522 (nvptx_init_oacc_workers): New function.
11523 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
11524 (nvptx_needs_shared_bcast): New function.
11525 (nvptx_find_par): Generalize to enable vectors to use shared-memory
11526 to propagate state.
11527 (nvptx_shared_propagate): Initialize vector bcast partition and
11528 synchronization state.
11529 (nvptx_single): Generalize to enable vectors to use shared-memory
11530 to propagate state.
11531 (nvptx_process_pars): Likewise.
11532 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
11533 * config/nvptx/nvptx.h (struct machine_function): Add
11534 bcast_partition and sync_bar members.
11535
11536 2019-01-07 Tom de Vries <tdevries@suse.de>
11537
11538 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
11539 (nvptx_apply_dim_limits): New function.
11540 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
11541 PTX_WARP_SIZE.
11542
11543 2019-01-07 Tom de Vries <tdevries@suse.de>
11544
11545 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
11546 as late as possible.
11547
11548 2019-01-07 Tom de Vries <tdevries@suse.de>
11549
11550 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
11551 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
11552 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
11553 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
11554 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
11555
11556 2019-01-07 Tom de Vries <tdevries@suse.de>
11557
11558 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
11559
11560 2019-01-07 Tom de Vries <tdevries@suse.de>
11561
11562 * omp-offload.c (oacc_get_min_dim): New function.
11563 * omp-offload.h (oacc_get_min_dim): Declare.
11564
11565 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
11566
11567 PR target/88521
11568 * config/i386/i386.c (function_value_ms_64): Return small sturct in
11569 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
11570
11571 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11572
11573 PR tree-opt/86020
11574 Revert:
11575 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
11576
11577 * ipa-inline.c (edge_badness): Use inlined_time instead of
11578 inline_summaries->get.
11579
11580 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11581
11582 * opts.c (enable_fdo_optimizations): Enable
11583 version-loops-for-strides, loop-interchange, unrol-and-jam
11584 and tree-loop-distribution.
11585 * invoke.texi: Document newly enabled options.
11586
11587 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11588
11589 * doc/invoke.texi (max-inline-insns-small): New parameters.
11590 * ipa-inline.c (want_early_inline_function_p): simplify.
11591 (want_inline_small_function_p): Fix pasto from previous patch;
11592 use max-inline-insns-small bound.
11593 * params.def (max-inline-insns-small): New param.
11594 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
11595 variables correctly.
11596
11597 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11598
11599 * doc/invoke.texi: Document max-inline-insns-size,
11600 uninlined-function-insns, uninlined-function-time,
11601 uninlined-thunk-insns and uninlined-thunk-time.
11602 * params.def: Add max-inline-insns-size,
11603 uninlined-function-insns, uninlined-function-time,
11604 uninlined-thunk-insns and uninlined-thunk-time.
11605 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
11606 new parameters.
11607 * ipa-inline.c (can_inline_edge_by_limits_p,
11608 want_inline_small_function_p): Use new parameters.
11609
11610 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
11611
11612 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
11613
11614 2019-01-05 Jakub Jelinek <jakub@redhat.com>
11615
11616 PR middle-end/82564
11617 PR target/88620
11618 * expr.c (expand_assignment): For calls returning VLA structures
11619 if to_rtx is not a MEM, force it into a stack temporary.
11620
11621 PR debug/88635
11622 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
11623 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
11624 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
11625 subexpressions of both operands.
11626 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
11627 subrtxes are CONSTANT_P.
11628 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
11629 2018-11-09 changes.
11630
11631 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
11632
11633 * params.def (hot-bb-count-ws-permille): Set to 990.
11634
11635 2019-01-04 Martin Sebor <msebor@redhat.com>
11636
11637 PR c/88546
11638 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
11639 leaf.
11640
11641 2019-01-04 Martin Sebor <msebor@redhat.com>
11642
11643 PR c/88363
11644 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
11645
11646 2019-01-04 Jakub Jelinek <jakub@redhat.com>
11647
11648 * gdbinit.in: Turn off pagination for the skip commands, restore
11649 it to previous state afterwards.
11650
11651 2019-01-04 Jakub Jelinek <jakub@redhat.com>
11652
11653 PR target/88594
11654 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
11655 of GET_MODE (opN) as modes of the libcall arguments.
11656
11657 2019-01-04 Jan Beulich <jbeulich@suse.com>
11658
11659 * config/i386/sse.md
11660 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
11661 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
11662 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
11663 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
11664 avx512f_vmcmp<mode>3<round_saeonly_name>,
11665 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
11666 avx512f_maskcmp<mode>3,
11667 <avx512>_cvt<ssemodesuffix>2mask<mode>,
11668 <avx512>_cvt<ssemodesuffix>2mask<mode>,
11669 *<avx512>_cvtmask2<ssemodesuffix><mode>,
11670 *<avx512>_cvtmask2<ssemodesuffix><mode>,
11671 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
11672 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
11673 <avx512>_gt<mode>3<mask_scalar_merge_name>,
11674 <avx512>_gt<mode>3<mask_scalar_merge_name>,
11675 <avx512>_testm<mode>3<mask_scalar_merge_name>,
11676 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
11677 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
11678 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
11679 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
11680 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
11681 avx512cd_maskb_vec_dup<mode>,
11682 avx512cd_maskw_vec_dup<mode>,
11683 avx512dq_fpclass<mode><mask_scalar_merge_name>,
11684 avx512dq_vmfpclass<mode>,
11685 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
11686 instead of =Yk.
11687
11688 2019-01-03 Martin Sebor <msebor@redhat.com>
11689
11690 PR tree-optimization/88659
11691 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
11692
11693 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
11694
11695 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
11696 unaligned vsx and avoid lxvd2x/stxvd2x.
11697 (gen_lvx_v4si_move): New function.
11698
11699 2019-01-03 Tom de Vries <tdevries@suse.de>
11700
11701 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
11702 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
11703 function.
11704 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
11705
11706 2019-01-03 Tom de Vries <tdevries@suse.de>
11707
11708 * config/nvptx/nvptx.c (struct offload_attrs): New.
11709 (populate_offload_attrs): New function. Factor mask extraction out of
11710 nvptx_reorg. Add extraction of dimensions.
11711 (nvptx_reorg): Use populate_offload_attrs.
11712
11713 2019-01-03 Tom de Vries <tdevries@suse.de>
11714
11715 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
11716 cases for oacc_min_dims_p and routine_p. Add asserts for
11717 oacc_default_dims_p and offload_region_p.
11718
11719 2019-01-03 Tom de Vries <tdevries@suse.de>
11720
11721 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
11722 factored out of ...
11723 (nvptx_goacc_validate_dims): ... here.
11724
11725 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
11726
11727 PR tree-optimization/85574
11728 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
11729 structure.
11730 (struct ssa_equip_hash_traits): Declare.
11731 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
11732
11733 2019-01-03 Jakub Jelinek <jakub@redhat.com>
11734
11735 PR debug/88644
11736 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
11737 change it to qualified_type.
11738
11739 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
11740
11741 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
11742 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
11743
11744 2019-01-02 Martin Sebor <msebor@redhat.com>
11745 Jeff Law <law@redhat.com>
11746
11747 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
11748 (get_range_strlen_tree): Update appropriately.
11749 (get_range_strlen)
11750 * gimple-fold.h (get_range_strlen): Drop unused last argument.
11751
11752 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
11753 rather than set_range_info.
11754 * tree-ssa-strlen.c (set_strlen_range): Extracted from
11755 maybe_set_strlen_range. Handle potentially boundary crossing
11756 cases more conservatively.
11757 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
11758 Call set_strlen_range.
11759 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
11760
11761 PR middle-end/88663
11762 * gimple-fold.c (get_range_strlen): Update prototype to no longer
11763 need the flexp argument.
11764 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
11765 from calls to get_range_strlen. Update comments. Just update
11766 VAL for an unterminated const char array and let the reset of the
11767 code handle it normally. No longer try to set *flexp. Adjust
11768 return value.
11769 (get_range_strlen): Update for the new get_range_strlen API.
11770 (get_maxval_strlen): Similarly.
11771 (gimple_fold_builtin_strlen): Handle update meaning of return value
11772 from get_range_strlen.
11773 * gimple-ssa-sprintf.c (get_string_length): Update for the new
11774 get_range_strlen API.
11775
11776 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
11777
11778 PR lto/88130
11779 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
11780 false at WPA time when body was removed.
11781
11782 2019-01-02 Martin Liska <mliska@suse.cz>
11783
11784 PR tree-optimization/88650
11785 * predict.c (set_even_probabilities): Calculate probability
11786 remainer only when really used.
11787
11788 2019-01-02 Richard Biener <rguenther@suse.de>
11789
11790 PR middle-end/88651
11791 * tree-data-ref.c (analyze_subscript_affine_affine): Use
11792 widest_ints when mangling max_stmt_execution results.
11793
11794 2019-01-02 Richard Biener <rguenther@suse.de>
11795
11796 PR tree-optimization/88621
11797 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
11798 bitfields when canoncalizing.
11799
11800 2019-01-02 Richard Biener <rguenther@suse.de>
11801
11802 PR target/87545
11803 * config/i386/x86-tune-costs.h (intel_cost): Adjust
11804 cost of cheap SSE instruction.
11805
11806 2019-01-02 Richard Biener <rguenther@suse.de>
11807
11808 PR ipa/85574
11809 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
11810 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
11811 function.
11812 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
11813 set after UIDs before splitting them.
11814
11815 2019-01-01 Martin Sebor <msebor@redhat.com>
11816 Jeff Law <law@redhat.com>
11817
11818 * gimple-fold.c (get_range_strlen_tree): Record if the computed
11819 length is optimistic. If it is, then arrange to compute the
11820 conservative length as well.
11821
11822 * gimple-fold.h (get_range_strlen): Update prototype.
11823 * builtins.c (check_access): Update call to get_range_strlen to use
11824 c_strlen_data pointer. Change various variable accesses to instead
11825 pull data from the c_strlen_data structure.
11826 (check_strncat_sizes, expand_builtin_strncat): Likewise.
11827 * calls.c (maybe_warn_nonstring_arg): Likewise.
11828 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
11829 minimum length if maximum lengh is unknown.
11830 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
11831 that used c_strlen, it's no longer needed. Restructure slightly.
11832 (format_string): Set unlikely range appropriately.
11833 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
11834 formatting issues.
11835 (get_range_strlen): Accept c_strlen_data pointer for external
11836 call sites as well. Pass through to call to internal get_range_strlen.
11837 Adjust minlen, maxlen and maxbound as needed.
11838 (get_maxval_strlen): Update comments.
11839 (gimple_fold_builtin_strlen): Update call to get_range_strlen
11840 to use c_strlen_data pointer. Change variable accesses to instead
11841 use c_strlen_data data members.
11842
11843 * gimple-fold.c (get_range_strlen): Update prototype.
11844 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
11845 local variables. Use pdata to return information to caller.
11846 Update calls to get_range_strlen. Update pdata->maxbound.
11847 (get_range_strlen -- static version): Similarly.
11848 (get_range_strlen -- extern version): Update for internal
11849 get_range_strlen API change. Convert to external data format.
11850 (get_maxval_strlen): Similarly.
11851
11852 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
11853
11854 * coverage.c (get_coverage_counts): Use current_function_decl.
11855 * profile.c (read_thunk_profile): New function.
11856 (branch_prob): Add THUNK parameter.
11857 * tree-profile.c (tree_profiling): Handle thunks.
11858 * value-prof.c (init_node_map): Handle thunks.
11859 * value-prof.h (branch_prob): Upate prototype.
11860 (read_thunk_profile): Declare.
11861
11862 2019-01-01 Jakub Jelinek <jakub@redhat.com>
11863
11864 Update copyright years.
11865
11866 * gcc.c (process_command): Update copyright notice dates.
11867 * gcov-dump.c (print_version): Ditto.
11868 * gcov.c (print_version): Ditto.
11869 * gcov-tool.c (print_version): Ditto.
11870 * gengtype.c (create_file): Ditto.
11871 * doc/cpp.texi: Bump @copying's copyright year.
11872 * doc/cppinternals.texi: Ditto.
11873 * doc/gcc.texi: Ditto.
11874 * doc/gccint.texi: Ditto.
11875 * doc/gcov.texi: Ditto.
11876 * doc/install.texi: Ditto.
11877 * doc/invoke.texi: Ditto.
11878 \f
11879 Copyright (C) 2019 Free Software Foundation, Inc.
11880
11881 Copying and distribution of this file, with or without modification,
11882 are permitted in any medium without royalty provided the copyright
11883 notice and this notice are preserved.