1 2019-07-04 Jakub Jelinek <jakub@redhat.com>
4 * gimplify.c (struct gimplify_omp_ctx): Add add_safelen1 member.
5 (gimplify_bind_expr): If seeing TREE_ADDRESSABLE VLA inside of simd
6 loop body, set ctx->add_safelen1 instead of making it GOVD_PRIVATE.
7 (gimplify_adjust_omp_clauses): Add safelen (1) clause if
8 ctx->add_safelen1 is set.
10 * omp-expand.c (expand_omp_for_static_nochunk): Don't emit
11 GOMP_loop_start at the start of second worksharing loop in a scan.
12 For nowait, don't emit GOMP_loop_end_nowait at the end of first
13 worksharing loop in a scan even if there are conditional lastprivates,
14 and do emit GOMP_loop_end_nowait at the end of second worksharing loop.
16 2019-07-04 Jan Hubicka <jh@suse.cz>
18 * tree-ssa-alias.c (nonoverlapping_component_refs_since_match_p):
19 Fix check for match in the ref walk.
21 2019-07-04 Martin Liska <mliska@suse.cz>
23 * tree-ssa-loop-niter.c (get_upper_bound_based_on_builtin_expr_with_prob):
25 (estimate_numbers_of_iterations):
26 Support __builtin_expect_with_probability for analysis
27 of # of loop iterations.
29 2019-07-04 Alexandre Oliva <oliva@adacore.com>
31 * doc/generic.texi (Cleanups): Document EH_ELSE_EXPR.
33 * expr.c (expand_expr_real_1): Reject it.
34 * gimplify.c (gimplify_expr): Gimplify it, within
36 * tree-dump.c (dequeue_and_dump): Dump it.
37 * tree-pretty-print.c (dump_generic_node): Likewise.
38 * tree.c (block_may_fallthru): Handle it.
39 * tree.def (EH_ELSE_EXPR): Introduce it.
40 * gimple-pretty-print.c (dump_gimple_try): Dump TRY_FINALLY
41 with GIMPLE_EH_ELSE as try/finally/else.
43 2019-07-04 Richard Biener <rguenther@suse.de>
46 * tree-pass.h (execute_all_ipa_transforms): Add a flag
47 parameter whether to disable GC collection.
48 * passes.c (execute_one_ipa_transform_pass): Likewise, and
50 (execute_all_ipa_transforms): Likewise and pass it down.
51 * cgraph.c (cgraph_node::get_body): Do not invoke garbage
52 collection from applying IPA transforms.
53 * cgraphunit.c (cgraph_node::expand): Allow garbage collection
54 from applying IPA transforms.
56 2019-07-04 Richard Biener <rguenther@suse.de>
58 PR tree-optimization/90911
59 * tree-vectorizer.h (_loop_vec_info::scalar_loop_scaling): New field.
60 (LOOP_VINFO_SCALAR_LOOP_SCALING): new.
61 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
63 (vect_transform_loop): Scale scalar loop profile if needed.
64 * tree-vect-loop-manip.c (vect_loop_versioning): When re-using
65 the loop copy from if-conversion adjust edge probabilities
66 and scale the vectorized loop body profile, queue the scalar
67 profile for updating after peeling.
69 2019-07-04 Jan Hubicka <jh@suse.cz>
71 * tree-ssa-alias.c (decl_refs_may_alias_p): Add size1 and size2
72 parameters; return early for must-alias.
73 (indirect_ref_may_alias_decl_p): Likewise; when establishing
74 outer types match, try nonoverlapping_component_refs
75 if must-alias is not obvious.
76 (indirect_refs_may_alias_p): Likewise.
77 (refs_may_alias_p_2): Likewise.
79 2019-07-04 Richard Biener <rguenther@suse.de>
81 * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
83 * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
85 (struct vn_walk_cb_data): New callback data struct.
86 (vn_reference_lookup_2): Adjust.
87 (vn_reference_lookup_3): Likewise.
88 (vn_reference_lookup_pieces): Likewise.
89 (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
90 (visit_reference_op_load): Adjust.
92 2019-07-04 Jakub Jelinek <jakub@redhat.com>
94 PR tree-optimization/91063
95 * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
96 stmt from stmts sequence before calling vect_init_vector_1.
99 2019-07-04 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
102 * fwprop.c (reg_single_def_p): New function.
103 (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
104 (forward_propagate_into): New parameter reg_prop_only
105 with default value false.
106 Propagate def's src into loop only if SET_SRC and SET_DEST
107 of def_set have single definitions.
108 Likewise if reg_prop_only is set to true.
109 (fwprop): New param fwprop_addr_p.
110 Integrate fwprop_addr into fwprop.
111 (fwprop_addr): Remove.
112 (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
114 (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
115 * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
116 * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
118 2019-07-04 Jakub Jelinek <jakub@redhat.com>
120 * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
121 in worksharing loop scans.
123 PR tree-optimization/91074
124 * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
127 PR rtl-optimization/90756
128 * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
131 2019-07-03 Dennis Zhang <dennis.zhang@arm.com>
133 * config/aarch64/aarch64.md: Remove redundant constraints from
134 define_expand but keep some patterns untouched if they are
135 specially selected by TARGET_SECONDARY_RELOAD hook.
136 * config/aarch64/aarch64-sve.md: Likewise.
137 * config/aarch64/atomics.md: Remove redundant constraints from
139 * config/aarch64/aarch64-simd.md: Likewise.
141 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
143 * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
144 (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
145 (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
147 (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
150 2019-07-03 Iain Sandoe <iain@sandoe.co.uk>
152 * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
153 (STARTFILE_SPEC): Split crt3 into a separate spec.
154 (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
155 (DARWIN_CRT2_SPEC): New.
156 (DARWIN_CRT3_SPEC): New.
157 (MIN_LD64_OMIT_STUBS): Revise to 62.1.
158 * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
159 (DARWIN_CRT3_SPEC): New.
161 2019-07-03 Michael Meissner <meissner@linux.ibm.com>
163 * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
164 Change the RTL attribute "length" from "4" to "*" to allow the
165 length attribute to be adjusted automatically for prefixed load,
166 store, and add immediate instructions.
167 * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
169 (extendsi<mode>2, EXTSI iterator): Likewise.
170 (movsi_internal1): Likewise.
171 (movsi_from_sf): Likewise.
172 (movdi_from_sf_zero_ext): Likewise.
173 (mov<mode>_internal): Likewise.
174 (movcc_internal1, QHI iterator): Likewise.
175 (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
176 (movsf_from_si): Likewise.
177 (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
178 (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
179 (mov<mode>, FMOVE128 iterator): Likewise.
180 (movdi_internal64): Likewise.
181 * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
183 (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
184 (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
185 (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
186 (vsx_splat_v4sf): Likewise.
188 2019-07-03 Mark Wielaard <mark@klomp.org>
191 * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
192 DW_AT_addr_base if there is actually a .debug_addr section with
194 (output_addr_table): Add DWARF5 table header generation here after
195 checking there are actually any addresses from...
196 (dwarf2out_finish): ...here.
197 * testsuite/g++.dg/pr90981.C: New test.
199 2019-07-03 Richard Biener <rguenther@suse.de>
202 * match.pd (vec_perm -> bit_insert): Fix element read from
205 2019-07-03 Martin Liska <mliska@suse.cz>
207 * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
208 * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
210 * generic-match-head.c: Include dbgcnt.h.
211 * gimple-match-head.c: Likewise.
213 2019-07-03 Martin Liska <mliska@suse.cz>
215 * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
216 (GCOV_COUNTER_V_TOPN): New.
217 (GCOV_COUNTER_V_INDIR): Use _topn.
218 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
219 (GCOV_TOPN_VALUES): New.
220 (GCOV_SINGLE_VALUE_COUNTERS): Remove.
221 (GCOV_TOPN_VALUES_COUNTERS): New.
222 * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
224 (gimple_init_gcov_profiler): Rename variables from one_value
226 (gimple_gen_one_value_profiler): Remove.
227 (gimple_gen_topn_values_profiler): New function.
228 * value-prof.c (dump_histogram_value): Use TOPN_VALUES
229 names instead of SINGLE_VALUE.
230 (stream_out_histogram_value): Likewise.
231 (stream_in_histogram_value): Likewise.
232 (get_most_common_single_value): Likewise.
233 (gimple_divmod_fixed_value_transform): Likewise.
234 (gimple_stringops_transform): Likewise.
235 (gimple_divmod_values_to_profile): Likewise.
236 (gimple_stringops_values_to_profile): Likewise.
237 (gimple_find_values_to_profile): Likewise.
238 * value-prof.h (enum hist_type): Rename to TOPN.
239 (gimple_gen_one_value_profiler): Remove.
240 (gimple_gen_topn_values_profiler): New.
242 2019-07-03 Eric Botcazou <ebotcazou@adacore.com>
244 * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
245 if it has the DW_AT_data_member_location attribute.
247 2019-07-03 Richard Biener <rguenther@suse.de>
249 * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
252 2019-07-03 Sylvia Taylor <sylvia.taylor@arm.com>
254 * config/aarch64/aarch64.md (FP_REGNUM): New constant.
255 (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
256 (tlsdesc_small_sve_<mode>): Likewise.
258 2019-07-03 Martin Liska <mliska@suse.cz>
260 * Makefile.in: Define ZSTD_LIB.
261 * common.opt: Adjust compression level
262 to support also zstd levels.
263 * config.in: Regenerate.
264 * configure: Likewise.
265 * configure.ac: Add --with-zstd and --with-zstd-include options
267 * doc/install.texi: Mention zstd dependency.
268 * gcc.c: Print supported LTO compression algorithms.
269 * lto-compress.c (lto_normalized_zstd_level): Likewise.
270 (lto_compression_zstd): Likewise.
271 (lto_uncompression_zstd): Likewise.
272 (lto_end_compression): Dispatch in between zlib and zstd.
273 (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
274 (lto_uncompression_zlib): Make it static.
275 * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
276 * lto-section-in.c (lto_get_section_data): Pass info
277 about used compression.
278 * lto-streamer-out.c: By default use zstd when possible.
279 * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
280 (TV_IPA_LTO_COMPRESS): Likewise for compression.
282 2019-07-03 Martin Liska <mliska@suse.cz>
284 * lto-section-in.c (lto_get_section_data): Add "lto" section.
285 * lto-section-out.c (lto_destroy_simple_output_block): Never
286 compress LTO_section_lto section.
287 * lto-streamer-out.c (produce_asm): Do not set major_version
289 (lto_output_toplevel_asms): Likewise.
290 (produce_lto_section): New function.
291 (lto_output): Call produce_lto_section.
292 (lto_write_mode_table): Do not set major_version and
294 (produce_asm_for_decls): Likewise.
295 * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
297 (struct lto_header): Remove.
298 (struct lto_section): New struct.
299 (struct lto_simple_header): Do not inherit from lto_header.
300 (struct lto_file_decl_data): Add lto_section_header field.
302 2019-07-03 Martin Liska <mliska@suse.cz>
304 * lra-eliminations.c (eliminate_regs_in_insn): Remove
306 * reg-stack.c (check_asm_stack_operands): Likewise.
307 * tree-ssa-structalias.c (create_function_info_for): Likewise.
308 * tree-vect-generic.c (expand_vector_operations_1): Likewise.
309 * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
312 2019-07-03 Martin Liska <mliska@suse.cz>
314 PR tree-optimization/90892
315 * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
318 2019-07-03 Martin Liska <mliska@suse.cz>
321 * multiple_target.c (create_dispatcher_calls): Add to comdat
322 group only if set for ifunc.
324 2019-07-03 Martin Liska <mliska@suse.cz>
327 * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
328 Define local_object_name in outer scope in order to handle
329 use-after-scope issue.
331 2019-07-03 Martin Liska <mliska@suse.cz>
333 * common.opt: Add fprofile-note.
334 * coverage.c (coverage_init): Append the option
336 * doc/invoke.texi: Document -fprofile-note.
338 2019-07-03 Jakub Jelinek <jakub@redhat.com>
340 PR tree-optimization/91033
341 * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
342 vect_analyze_data_refs): Add bool * arguments.
343 * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
344 if failure is due to scatter/gather, set *fatal to false if non-NULL.
345 * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
346 * tree-vect-loop.c (vect_analyze_loop_2): Adjust
347 vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
348 * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
349 vect_analyze_data_refs caller.
351 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
353 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
354 OMP_CLAUSE__CONDTEMP_ as range's upper bound.
355 (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
356 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
357 OMP_CLAUSE__SCANTEMP_ entry.
358 (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
359 * tree-pretty-print.c (dump_omp_clause): Likewise.
360 * tree-nested.c (convert_nonlocal_omp_clauses,
361 convert_local_omp_clauses): Likewise.
362 * omp-general.h (struct omp_for_data): Add have_scantemp and
363 have_nonctrl_scantemp members.
364 * omp-general.c (omp_extract_for_data): Initialize them.
365 * omp-low.c (struct omp_context): Add scan_exclusive member.
366 (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
367 result again with GF_OMP_FOR_KIND_MASK. Initialize also
369 (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
370 of !ctx->scan_inclusive.
371 (lower_rec_input_clauses): Simplify gimplification of dtors using
372 gimplify_and_add. For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
373 rather than rvarp. Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
374 loops. Don't add barrier for reduction_omp_orig_ref if
375 ctx->scan_??xclusive.
376 (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
377 (lower_omp_scan): Use ctx->scan_exclusive instead
378 of !ctx->scan_inclusive. Handle worksharing loops with inscan
379 reductions. Use new_vard != new_var instead of repeated
380 omp_is_reference calls.
381 (omp_find_scan, lower_omp_for_scan): New functions.
382 (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
384 * omp-expand.c (expand_omp_scantemp_alloc): New function.
385 (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
386 and fd->have_scantemp.
388 * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
389 on worksharing loop propagate it as shared clause to containing
392 * omp-expand.c (expand_omp_for_static_nochunk,
393 expand_omp_for_static_chunk): For nowait worksharing loop with
394 conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
397 2019-07-02 Joern Rennecke <joern.rennecke@riscy-ip.com>
400 * testsuite/gcc.dg/plugin/start_unit_plugin.c: Register a root tab
401 to reference fake_var.
403 2019-07-02 qing zhao <qing.zhao@oracle.com>
405 PR preprocessor/90581
406 * doc/cppopts.texi: Add document for -fmax-include-depth.
407 * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
409 2019-07-02 Uroš Bizjak <ubizjak@gmail.com>
411 * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
412 Use TARGET_SSE2 && SSE_REGNO_P in split condition.
413 (mmx_packssdw): Ditto.
414 (mmx_punpckhbw): Ditto.
415 (mmx_punpcklbw): Ditto.
416 (mmx_punpckhwd): Ditto.
417 (mmx_punpcklwd): Ditto.
418 (mmx_punpckhdq): Ditto.
419 (mmx_punpckldq): Ditto.
420 (*vec_dupv4hi): Ditto.
421 (*vec_dupv2si): Ditto.
422 (mmx_pmovmskb): Ditto.
423 * config/i386/sse.md (sse_cvtpi2ps): Use
424 TARGET_SSE2 && SSE_REG_P in split condition.
425 (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
426 TARGET_SSSE3 && SSE_REGNO_P in split condition.
427 (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
428 (ssse3_pshufbv8qi3): Ditto.
429 (ssse3_palignrdi): Ditto.
431 2019-07-02 Andrew Stubbs <ams@codesourcery.com>
433 * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
434 with inlined save and restore.
436 2019-07-02 Eric Botcazou <ebotcazou@adacore.com>
438 * cfgexpand.c (pass_expand::execute): Deal specially with instructions
439 to be inserted on single successor edge of the entry block. Then call
440 commit_edge_insertions instead of inserting the instructions manually.
441 * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
442 RTL expansion and rebuild jump labels chain.
444 2019-07-02 Richard Biener <rguenther@suse.de>
446 * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
448 * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
450 * tree.c (build_common_tree_nodes): Initialize them.
451 * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
452 Make declarations comments.
453 * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
454 chrec_known): Remove definitions.
455 (initialize_scalar_evolutions_analyzer): Remove.
456 (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
457 * tree-streamer.c (preload_common_nodes): Do not preload
458 TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
460 2019-07-02 Jan Hubicka <jh@suse.cz>
462 * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
465 2019-07-02 Jan Hubicka <jh@suse.cz>
467 * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
469 (nonoverlapping_component_refs_since_match_p): ... this one;
470 handle also non-decl bases; return -1 if search gave up.
471 (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
472 nonoverlapping_component_refs_of_decl_p_no_alias to
473 nonoverlapping_component_refs_since_match_p_may_alias,
474 nonoverlapping_component_refs_since_match_p_no_alias.
475 (dump_alias_stats): Update dumping.
476 (aliasing_matching_component_refs_p): Break out from ...;
477 dispatch to nonoverlapping_component_refs_for_decl_p
478 and nonoverlapping_component_refs_since_match_p.
479 (aliasing_component_refs_p): ... here; call
480 nonoverlapping_component_refs_p in scenarios where we can not
481 precisely determine base match.
482 (decl_refs_may_alias_p): Use
483 nonoverlapping_component_refs_since_match_p.
484 (indirect_ref_may_alias_decl_p): Do not call
485 nonoverlapping_component_refs_p.
486 (indirect_refs_may_alias_p): Likewise.
488 2019-07-02 Jan Hubicka <jh@suse.cz>
490 * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
491 to clobber of return value.
493 2019-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
495 * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
496 for is_neon_type instructions that have not already been categorized.
498 2019-07-02 Richard Biener <rguenther@suse.de>
500 PR tree-optimization/58483
501 * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
502 for MEM_REF base hashing.
503 (equal_mem_array_ref_p): Likewise for base comparison.
505 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
507 * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
509 (signbit<mode>2): Use that name. Simplify.
511 2019-07-01 Joern Rennecke <joern.rennecke@riscy-ip.com>
514 * tree-ssa-phiopt.c (factor_out_conditional_conversion):
515 Tune heuristic from PR71016 to allow MIN / MAX.
516 * testsuite/gcc.dg/tree-ssa/pr66726-4.c: New testcase.
518 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
520 * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
522 (abs<mode>2): Use that name. Simplify.
524 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
526 * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
528 (neg<mode>2): Use that name. Simplify.
530 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
532 * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
534 (abs<mode>2): Use that name. Simplify.
536 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
538 * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
540 (neg<mode>2): Use that name. Simplify.
542 2019-07-01 Uroš Bizjak <ubizjak@gmail.com>
544 * config/i386/i386.md ("isa" attribute): Add sse_noavx.
545 ("enabled" attribute): Handle sse_noavx isa attribute.
546 * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
547 Use TARGET_SSE && SSE_REGNO_P in split condition.
548 (*vec_dupv2sf): Ditto.
550 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
552 * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
554 (floatsi<mode>2): Use that name. Simplify.
556 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
558 * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
560 (extenddf<mode>2_vsx): Make this a parameterized name.
561 (extenddf<mode>2): Use those names. Simplify.
563 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
565 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
567 (eh_return): Use that name. Simplify.
569 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
571 * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
572 (doloop_end): Use that name. Simplify.
574 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
576 * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
578 (indirect_jump): Use that name. Simplify.
580 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
582 * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
584 (abs<mode>2): Use that name. Simplify.
586 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
588 * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
590 (fix_trunc<mode>si2): Use that name. Simplify.
592 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
594 * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
595 (allocate_stack): Use that name. Simplify.
597 2019-07-01 Martin Sebor <msebor@redhat.com>
600 * hash-map.h (hash_map::put): On insertion invoke element ctor.
601 (hash_map::get_or_insert): Same. Reformat comment.
602 * hash-set.h (hash_set::add): On insertion invoke element ctor.
603 * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
604 * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
605 * hash-table.h (hash_table::operator=): Prevent copy assignment.
606 (hash_table::hash_table (const hash_table&)): Use copy ctor
607 instead of assignment to copy elements.
609 2019-07-01 Wilco Dijkstra <wdijkstr@arm.com>
610 John David Anglin <danglin@gcc.gnu.org>
613 * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
614 using saved frame pointer.
616 2019-07-01 Eric Botcazou <ebotcazou@adacore.com>
619 * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
620 Add frame clobber and schedule blockage.
622 2019-07-01 Sandra Loosemore <sandra@codesourcery.com>
624 * doc/invoke.texi (Link Options): Further editorial changes to
625 -flinker-output docs.
627 2019-07-01 Segher Boessenkool <segher@kernel.crashing.org>
629 * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
630 Load both operands of a PLUS into registers separately.
632 2019-07-01 Andreas Krebbel <krebbel@linux.ibm.com>
634 * config/s390/vector.md: Fix shift count operand printing.
636 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
638 * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
640 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
642 * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
643 Use recog_data to test for an output operand.
645 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
647 * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
648 exclude any others that are disparaged or that are bound to need
650 (ira_get_dup_out_num): Expand comment.
652 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
654 * ira.c (ira_setup_alts): Use preprocess_constraints to get the
655 constraint string for each operand/alternative combo. Only handle
656 '%' at the start of constraint strings, and look for it outside
659 2019-07-01 Richard Sandiford <richard.sandiford@arm.com>
661 * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
662 alternative_mask instead of HARD_REG_SET to represent a
663 bitmask of alternatives.
664 * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
665 * ira-conflicts.c (add_insn_allocno_copies): Likewise.
667 2019-07-01 Martin Liska <mliska@suse.cz>
669 * edit-context.c (test_applying_fixits_unreadable_file): Do not
670 use () for a constructor call.
671 (test_applying_fixits_line_out_of_range): Likewise.
672 * ggc-page.c (alloc_page): Use (void *) for %p printf format
674 (free_page): Likewise.
676 2019-07-01 Vladislav Ivanishin <vlad@ispras.ru>
678 * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
679 parameter names to match usage (no functional change).
680 (GdbPrettyPrinters.add_printer_for_regex): Ditto.
682 2019-07-01 Richard Biener <rguenther@suse.de>
684 * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
686 (pass_fre::execute): Honor it.
687 * passes.def: Adjust pass_fre invocations to allow iterating,
688 add non-iterating pass_fre before late threading/dom.
690 2019-07-01 Richard Biener <rguenther@suse.de>
692 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
693 TARGET_MEM_REF handling to also handle address-taken ones.
695 2019-07-01 Hongtao Liu <hongtao.liu@intel.com>
697 * doc/sourcebuild.texi (Effective-Target Keywords, Other
698 hardware attributes): Document avx512vp2intersect.
700 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
702 * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
703 (abs<mode>2): New expander.
704 * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
705 Use CODE_FOR_ssse3_absv8qi2.
706 (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
707 (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
709 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
711 * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
712 to sse, sse_noavx and avx. Update all uses.
714 2019-06-30 Uroš Bizjak <ubizjak@gmail.com>
716 * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
717 (*mmx_<plusminus_insn><mode>3): Ditto.
718 (*mmx_mulv4hi3"): Ditto.
719 (*mmx_smulv4hi3_highpart): Ditto.
720 (*mmx_umulv4hi3_highpart): Ditto.
721 (*mmx_pmaddwd): Ditto.
722 (*sse2_umulv1siv1di3): Ditto.
723 (*mmx_<code>v4hi3): Ditto.
724 (*mmx_<code>v8qi3): Ditto.
725 (mmx_ashr<mode>3): Ditto.
726 ("mmx_<shift_insn><mode>3): Ditto.
727 (*mmx_eq<mode>3): Ditto.
728 (mmx_gt<mode>3): Ditto.
729 (mmx_andnot<mode>3): Ditto.
730 (*mmx_<code><mode>3): Ditto.
731 (*mmx_pinsrw): Ditto.
732 (*mmx_pextrw): Ditto.
733 (mmx_pshufw_1): Ditto.
734 (*mmx_uavgv8qi3): Ditto.
735 (*mmx_uavgv4hi3): Ditto.
736 ("mmx_psadbw): Ditto.
737 * config/i386/sse.md (sse_cvtps2pi): Ditto.
738 (sse_cvttps2pi): Ditto.
739 (ssse3_pmaddubsw): Ditto.
740 (*ssse3_pmulhrswv4hi3): Ditto.
741 (ssse3_psign<mode>3): Ditto.
743 2019-06-29 Eric Botcazou <ebotcazou@adacore.com>
745 * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
746 adjustment for bit-fields to all aggregate types.
748 2019-06-28 Michael Meissner <meissner@linux.ibm.com>
750 * config/rs6000/predicates.md (pcrel_address): Use
751 SYMBOL_REF_LOCAL_P to determine if a label is local.
752 (pcrel_external_address): New predicate.
753 (non_prefixed_mem_operand): Delete, predicate not used.
754 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
755 SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
757 (SYMBOL_REF_PCREL_P): Likewise.
760 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
762 (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
763 (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
764 (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
766 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
768 * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
769 override on extra_headers.
771 2019-06-28 Iain Sandoe <iain@sandoe.co.uk>
773 * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
774 * config/darwin-driver.c (darwin_default_min_version): Remove newline
776 (darwin_driver_init): Likewise.
778 2019-06-28 Jan Beulich <jbeulich@suse.com>
780 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
781 vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
782 Eliminate redundant alternative.
784 2019-06-28 Jan Beulich <jbeulich@suse.com>
786 * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
787 vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
790 2019-06-28 Claudiu Zissulescu <claziss@synopsys.com>
792 * config/arc/arc.c (arc_rtx_costs): All short instructions are
793 having a lower cost regardless of the speed option.
795 2019-06-28 Jan Beulich <jbeulich@suse.com>
797 * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
798 vector_operand plus, on both alternatives, "Bm" constraint.
800 2019-06-28 Dennis Zhang <dennis.zhang@arm.com>
802 * config/arm/arm.md: Remove redundant constraints from
803 define_expand but leave reload_inm and reload_outm patterns
804 untouched since they need special constraints to work.
805 * config/arm/arm-fixed.md: Remove redundant constraints from
807 * config/arm/iwmmxt.md: Likewise.
808 * config/arm/neon.md: Likewise.
809 * config/arm/sync.md: Likewise.
810 * config/arm/thumb1.md: Likewise.
811 * config/arm/vec-common.md: Likewise.
813 2019-06-27 Ilia Diachkov <ilia.diachkov@optimitech.com>
815 * doc/install.texi: Document --disable-tm-clone-registry.
817 2019-06-27 Jakub Jelinek <jakub@redhat.com>
820 * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
823 PR tree-optimization/91010
824 * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
825 return true. Otherwise, don't call operand_equal_p if offset1 or
826 offset2 is NULL and just return false.
828 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
830 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
831 user-specified float mode choice for kernel mode code.
833 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
835 * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
838 2019-06-27 Iain Sandoe <iain@sandoe.co.uk>
840 * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
841 use longcall for 64b code.
843 2019-06-27 Aaron Sawdey <acsawdey@linux.ibm.com>
845 * builtins.c (get_memory_rtx): Fix comment.
846 * optabs.def (movmem_optab): Change to cpymem_optab.
847 * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
848 (emit_block_move_hints): Change movmem to cpymem.
849 * defaults.h: Change movmem to cpymem.
850 * targhooks.c (get_move_ratio): Change movmem to cpymem.
851 (default_use_by_pieces_infrastructure_p): Ditto.
852 * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
853 * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
855 * config/aarch64/aarch64.h: Change movmem to cpymem.
856 * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
857 * config/alpha/alpha.h: Change movmem to cpymem in comment.
858 * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
860 * config/arc/arc-protos.h: Change movmem to cpymem.
861 * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
862 * config/arc/arc.h: Change movmem to cpymem in comment.
863 * config/arc/arc.md (movmemsi): Change movmem to cpymem.
864 * config/arm/arm-protos.h: Change movmem to cpymem in names.
865 * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi,
866 gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
867 * config/arm/arm.md (movmemqi): Change movmem to cpymem.
868 * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
869 * config/avr/avr-protos.h: Change movmem to cpymem.
870 * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
871 avr_out_movmem): Change movmem to cpymem.
872 * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
873 Change movmem to cpymem.
874 * config/bfin/bfin-protos.h: Change movmem to cpymem.
875 * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
876 Change movmem to cpymem.
877 * config/bfin/bfin.h: Change movmem to cpymem in comment.
878 * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
879 * config/c6x/c6x-protos.h: Change movmem to cpymem.
880 * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
881 * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
882 * config/frv/frv.md (movmemsi): Change name to cpymemsi.
883 * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
884 * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
885 * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
886 expand_set_or_movmem_via_rep, expand_movmem_epilogue,
887 expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
888 expand_small_cpymem_or_setmem,
889 expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
890 expand_set_or_cpymem_constant_prologue,
891 ix86_expand_set_or_cpymem): Change movmem to cpymem.
892 * config/i386/i386-protos.h: Change movmem to cpymem.
893 * config/i386/i386.h: Change movmem to cpymem in comment.
894 * config/i386/i386.md (movmem<mode>): Change name to cpymem.
895 (setmem<mode>): Change expansion function name.
896 * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
897 * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
898 movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
899 * config/m32c/m32c-protos.h: Change movmem to cpymem.
900 * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
901 * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
902 * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
904 * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
905 * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
906 * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
907 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
908 Change movmem to cpymem.
909 * config/mips/mips.h: Change movmem to cpymem.
910 * config/mips/mips.md (movmemsi): Change name to cpymemsi.
911 * config/nds32/nds32-memory-manipulation.c
912 (nds32_expand_movmemsi_loop_unknown_size,
913 nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
914 nds32_expand_movmemsi_unroll,
915 nds32_expand_movmemsi): Change movmem to cpymem.
916 * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
917 * config/nds32/nds32-protos.h: Change movmem to cpymem.
918 * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
919 (pa_adjust_insn_length): Change call to compute_movmem_length.
920 * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
921 movmemdi, movmemdi_prereload,
922 movmemdi_postreload): Change movmem to cpymem.
923 * config/pdp11/pdp11.md (movmemhi, movmemhi1,
924 movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
925 * config/riscv/riscv.c: Change movmem to cpymem in comment.
926 * config/riscv/riscv.h: Change movmem to cpymem.
927 * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
928 * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
929 * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
931 * config/s390/s390-protos.h: Change movmem to cpymem.
932 * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
933 s390_expand_insv): Change movmem to cpymem.
934 * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
935 movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
936 * config/sh/sh.md (movmemsi): Change name to cpymemsi.
937 * config/sparc/sparc.h: Change movmem to cpymem in comment.
938 * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
939 for nonexistent function.
940 * config/vax/vax.h: Change movmem to cpymem in comment.
941 * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
942 * config/visium/visium.h: Change movmem to cpymem in comment.
943 * config/visium/visium.md (movmemsi): Change name to cpymemsi.
944 * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
945 * doc/md.texi: Change movmem to cpymem and update description to match.
946 * doc/rtl.texi: Change movmem to cpymem.
947 * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
948 * doc/tm.texi: Regenerate.
950 2019-06-27 Bill Schmidt <wschmidt@linux.ibm.com>
952 * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
953 -fvariable-expansion-in-unroller by default.
954 * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
957 2019-06-27 David Edelsohn <dje.gcc@gmail.com>
960 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
961 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
963 * config.gcc(rs6000-*-*): Define target_gtfiles.
965 2019-06-27 Jan Hubicka <jh@suse.cz>
967 * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
968 (add_type_duplicate): When odr hash is not allocated, to nothing.
969 (odr_based_tbaa_p): New function.
970 (set_type_canonical_for_odr_type): New function.
971 * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
972 set_type_canonical_for_odr_type): New.
973 * tree.c (gimple_canonical_types_compatible_p): ODR types with
974 ODR based TBAA are not equivalent to non-ODR types.
976 2019-06-27 Martin Liska <mliska@suse.cz>
978 PR tree-optimization/90974
979 PR rtl-optimization/90975
980 PR rtl-optimization/90976
982 PR tree-optimization/91017
983 * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
985 * lra.c (lra_set_insn_recog_data): Remove a leftover from
986 initial commit of IRA.
987 * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
989 * tree-vect-loop.c (vect_create_epilog_for_reduction):
991 * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
994 2019-06-27 Jakub Jelinek <jakub@redhat.com>
997 * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
998 instead of register_operand for operands[1], add m to its constraints
999 if operands[2] uses "C" constraint. Ensure in condition that if
1000 operands[2] is not 0, then operands[1] is not a MEM. For last two
1001 alternatives, use unaligned loads instead of aligned if operands[1] is
1004 2019-06-27 Martin Liska <mliska@suse.cz>
1006 * asan.c (asan_emit_allocas_unpoison): Remove obviously
1008 * bt-load.c (move_btr_def): Likewise.
1009 * builtins.c (expand_builtin_apply_args_1): Likewise.
1010 (expand_builtin_apply): Likewise.
1011 * cfgexpand.c (expand_asm_stmt): Likewise.
1012 (construct_init_block): Likewise.
1013 * cfghooks.c (verify_flow_info): Likewise.
1014 * cfgloopmanip.c (remove_path): Likewise.
1015 * cfgrtl.c (rtl_verify_bb_layout): Likewise.
1016 * cgraph.c (cgraph_node::set_pure_flag): Likewise.
1017 * combine.c (simplify_if_then_else): Likewise.
1018 * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
1019 (choose_basereg): Likewise.
1020 (ix86_expand_prologue): Likewise.
1021 (ix86_preferred_output_reload_class): Likewise.
1022 * cselib.c (cselib_record_sets): Likewise.
1023 * df-scan.c (df_scan_alloc): Likewise.
1024 * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
1025 * early-remat.c (early_remat::record_equiv_candidates): Likewise.
1026 * emit-rtl.c (try_split): Likewise.
1027 * graphite-scop-detection.c (assign_parameter_index_in_region): Likewise.
1028 * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
1029 * ira-color.c (setup_profitable_hard_regs): Likewise.
1030 * ira.c (rtx_moveable_p): Likewise.
1031 * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
1032 * read-rtl.c (read_subst_mapping): Likewise.
1033 * regrename.c (scan_rtx): Likewise.
1034 * reorg.c (fill_slots_from_thread): Likewise.
1035 * tree-inline.c (tree_function_versioning): Likewise.
1036 * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
1037 * tree-ssa-sink.c (statement_sink_location): Likewise.
1038 * tree-ssa-threadedge.c (thread_across_edge): Likewise.
1039 * tree-vect-loop.c (vect_get_loop_niters): Likewise.
1040 (vect_create_epilog_for_reduction): Likewise.
1041 * tree.c (build_nonstandard_integer_type): Likewise.
1043 2019-06-27 Richard Biener <rguenther@suse.de>
1045 * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
1047 2019-06-27 Jun Ma <JunMa@linux.alibaba.com>
1049 PR tree-optimization/89772
1050 * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
1051 out-of-bound accesses checking.
1053 2019-06-27 Martin Liska <mliska@suse.cz>
1055 PR tree-optimization/91014
1056 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
1057 when LHS is NULL_TREE.
1059 2019-06-27 Martin Liska <mliska@suse.cz>
1061 * symbol-summary.h (traverse): Pass
1062 argument a to the call of callback.
1063 (gt_ggc_mx): Mark arguments as unused.
1064 (gt_pch_nx): Likewise.
1066 2019-06-27 Kewen Lin <linkw@gcc.gnu.org>
1069 * gcc/loop-iv.c (find_simple_exit): Call finite_loop_p to update
1072 2019-06-26 Jeff Law <law@redhat.com>
1074 PR tree-optimization/90883
1075 * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
1076 (delete_dead_or_redundant_assignment): Likewise.
1078 PR tree-optimization/90883
1079 * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
1080 * tree-ssa-dse.c: Update various comments to distinguish between
1081 dead and redundant stores.
1082 (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
1083 (dse_optimize_redundant_stores): New function.
1084 (delete_dead_or_redundant_call): Renamed from delete_dead_call.
1085 Distinguish between dead and redundant calls in dump output. All
1087 (delete_dead_or_redundant_assignment): Similarly for assignments.
1088 (dse_optimize_stmt): Handle _CHK variants. For statements which
1089 store 0 into multiple memory locations, try to prove a subsequent
1092 2019-06-26 Uroš Bizjak <ubizjak@gmail.com>
1095 * config/i386/i386.c (ix86_autovectorize_vector_sizes):
1096 Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
1098 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
1100 * config/rs6000/rs6000-internal.h (branch_island): New typedef.
1101 (branch_islands): New extern.
1102 * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
1103 * config/rs6000/rs6000.c: .. here.
1105 2019-06-26 Iain Sandoe <iain@sandoe.co.uk>
1107 * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
1108 (powerpc*-*-*) ... to here.
1110 2019-06-26 Jeff Law <law@redhat.com>
1112 * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
1113 memcpy, memmove and memset builtins.
1114 (maybe_trim_memstar_call): Likewise.
1116 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
1118 * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
1120 2019-06-26 David Edelsohn <dje.gcc@gmail.com>
1122 * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
1124 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
1126 * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
1128 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
1130 * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
1133 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
1135 * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
1137 2019-06-26 Richard Biener <rguenther@suse.de>
1140 * tree-inline.c (remap_ssa_name): Copy SSA range info.
1142 2019-06-26 Richard Biener <rguenther@suse.de>
1144 * lto-streamer.h (lto_bitmap_alloc): Remove.
1145 (lto_bitmap_free): Likewise.
1146 * lto-streamer.c (lto_bitmap_alloc): Remove.
1147 (lto_bitmap_free): Likewise.
1148 (lto_obstack): Likewise.
1149 (lto_obstack_initialized): Likewise.
1150 * lto-streamer-out.c (lto_output): Use own obstack for local
1151 bitmap, free it consistently.
1153 2019-06-26 Jakub Jelinek <jakub@redhat.com>
1156 * config/i386/sse.md
1157 (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
1158 vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
1159 insns if operands[2] is misaligned_operand.
1161 2019-06-26 Li Jia He <helijia@linux.ibm.com>
1163 * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
1165 * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
1168 2019-06-26 Segher Boessenkool <segher@kernel.crashing.org>
1170 * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
1172 2019-06-26 Martin Liska <mliska@suse.cz>
1174 PR tree-optimization/90973
1175 * tree-vect-loop.c (vect_get_known_peeling_cost): Use
1176 epilogue_cost_vec instead of prologue_cost_vec for
1179 2019-06-26 Martin Liska <mliska@suse.cz>
1181 * bb-reorder.c (connect_better_edge_p): Add missing else
1182 statement in the middle of if-else statements.
1184 /home/marxin/Programming/gcc/gcc/bb-reorder.c:1031:2: warning: Value stored to 'is_better_edge' is never read
1185 is_better_edge = true;
1187 /home/marxin/Programming/gcc/gcc/bb-reorder.c:1034:2: warning: Value stored to 'is_better_edge' is never read
1188 is_better_edge = false;
1191 2019-06-25 Hongtao Liu <hongtao.liu@intel.com>
1192 H.J. Lu <hongjiu.lu@intel.com>
1193 Olga Makhotina <olga.makhotina@intel.com>
1195 * common/config/i386/i386-common.c
1196 (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
1197 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
1198 (OPTION_MASK_ISA2_AVX512F_UNSET): Add
1199 OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
1200 (ix86_handle_option): Handle -mavx512vp2intersect.
1201 * config/i386/avx512vp2intersectintrin.h: New.
1202 * config/i386/avx512vp2intersectvlintrin.h: New.
1203 * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
1204 * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1206 * config/i386/i386-builtin-types.def: Add new types.
1207 * config/i386/i386-builtin.def: Add new builtins.
1208 * config/i386/i386-builtins.c: (enum processor_features): Add
1209 F_AVX512VP2INTERSECT.
1210 (static const _isa_names_table isa_names_table): Ditto.
1211 * config/i386/i386-c.c (ix86_target_macros_internal): Define
1212 __AVX512VP2INTERSECT__.
1213 * config/i386/i386-expand.c (ix86_expand_builtin): Expand
1214 IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
1215 IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
1216 IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
1217 * config/i386/i386-modes.def (P2QI, P2HI): New modes.
1218 * config/i386/i386-options.c (ix86_target_string): Add
1219 -mavx512vp2intersect.
1220 (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
1221 * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
1222 P2HImode and P2QImode.
1223 (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
1224 number for P2QImode and P2HImode.
1225 (ix86_regmode_natural_size): New function.
1226 * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
1227 TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
1228 REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
1229 * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
1230 * config/i386/i386.opt: Add -mavx512vp2intersect.
1231 * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
1232 avx512vp2intersectvlintrin.h.
1233 * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
1234 (define_mode_iterator VI48_AVX512VP2VL): New.
1235 (avx512vp2intersect_2intersect<mode>,
1236 avx512vp2intersect_2intersectv16si): New define_insn patterns.
1237 * config.gcc: Add avx512vp2intersectvlintrin.h and
1238 avx512vp2intersectintrin.h to extra_headers.
1239 * doc/invoke.texi: Document -mavx512vp2intersect.
1241 2019-06-25 Iain Sandoe <iain@sandoe.co.uk>
1243 * config/rs6000/darwin.h (ENDFILE_SPEC): New.
1245 2019-06-25 Bill Seurer <seurer@linux.vnet.ibm.com>
1247 * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
1248 savres_routine_syms, savres_routine_name, morestack_ref,
1249 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
1250 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
1251 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
1252 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
1253 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
1254 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
1255 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
1256 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
1257 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
1258 get_stack_clash_protection_probe_interval,
1259 get_stack_clash_protection_guard_size,
1260 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
1261 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
1262 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
1263 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
1264 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
1265 gen_frame_mem_offset, rs6000_savres_routine_name,
1266 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
1267 ptr_regno_for_savres, rs6000_emit_savres_rtx,
1268 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
1269 rs6000_global_entry_point_prologue_needed_p,
1270 rs6000_get_separate_components, rs6000_components_for_bb,
1271 rs6000_disqualify_components, rs6000_emit_prologue_components,
1272 rs6000_emit_epilogue_components, rs6000_set_handled_components,
1273 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
1274 rs6000_output_savres_externs, rs6000_output_function_prologue,
1275 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
1276 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
1277 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
1278 rs6000_output_function_epilogue, gen_add3_const,
1279 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
1280 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
1282 (machine_function): Moved to rs6000.h.
1283 (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
1285 * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
1286 savres_routine_syms, savres_routine_name, morestack_ref,
1287 rs6000_init_machine_status, save_reg_p, first_reg_to_save,
1288 first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
1289 compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
1290 rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
1291 rs6000_return_addr, rs6000_decl_ok_for_sibcall,
1292 rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
1293 rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
1294 create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
1295 rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
1296 get_stack_clash_protection_probe_interval,
1297 get_stack_clash_protection_guard_size,
1298 rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
1299 rs6000_emit_probe_stack_range, output_probe_stack_range_1,
1300 interesting_frame_related_regno, output_probe_stack_range_stack_clash,
1301 output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
1302 gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
1303 gen_frame_mem_offset, rs6000_savres_routine_name,
1304 rs6000_savres_routine_sym, rs6000_emit_stack_reset,
1305 ptr_regno_for_savres, rs6000_emit_savres_rtx,
1306 rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
1307 rs6000_global_entry_point_prologue_needed_p,
1308 rs6000_get_separate_components, rs6000_components_for_bb,
1309 rs6000_disqualify_components, rs6000_emit_prologue_components,
1310 rs6000_emit_epilogue_components, rs6000_set_handled_components,
1311 emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
1312 rs6000_output_savres_externs, rs6000_output_function_prologue,
1313 rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
1314 load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
1315 offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
1316 rs6000_output_function_epilogue, gen_add3_const,
1317 rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
1318 rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
1319 to here from rs6000.c.
1320 * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
1321 * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
1322 quad_address_offset_p) Moved to here from rs6000.c.
1323 * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
1324 * config/config.gcc: Add new source file rs6000-logue.c to garbage
1327 2019-06-25 Martin Liska <mliska@suse.cz>
1329 * hash-table.c (hashtab_chk_error): Move here from ...
1330 * hash-table.h (hashtab_chk_error): ... here.
1332 2019-06-25 Martin Liska <mliska@suse.cz>
1334 PR tree-optimization/90978
1335 * df-scan.c (df_update_entry_block_defs): Remove dead else
1337 (df_update_exit_block_uses): Likewise.
1339 2019-06-25 Kwok Cheung Yeung <kcy@codesourcery.com>
1340 Andrew Stubbs <ams@codesourcery.com>
1342 * config.gcc (thread_file): Set to gcn for AMD GCN.
1343 * config/gcn/gcn.c (gcn_emutls_var_init): New function.
1344 (TARGET_EMUTLS_VAR_INIT): New hook.
1346 2019-06-25 Martin Jambor <mjambor@suse.cz>
1349 * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
1351 2019-06-25 Richard Biener <rguenther@suse.de>
1353 PR tree-optimization/90930
1354 * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
1355 into parallel form in the last pass instance.
1357 2019-06-25 Claudiu Zissulescu <claziss@synopsys.com>
1359 * config/arc/arc.c (arc_symbol_binds_local_p): New function.
1360 (arc_legitimize_pic_address): Simplify and cleanup the function.
1361 (SYMBOLIC_CONST): Remove.
1362 (prepare_pic_move): Likewise.
1363 (prepare_move_operands): Handle complex mov cases here.
1364 (arc_legitimize_address_0): Remove call to
1365 arc_legitimize_pic_address.
1366 (arc_legitimize_address): Remove call to
1367 arc_legitimize_tls_address.
1368 * config/arc/arc.md (movqi_insn): Allow Cm3 match.
1369 (movhi_insn): Likewise.
1371 2019-06-25 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1373 * gcc/c-family/c-common.c (c_common_nodes_and_builtins): Define
1374 alternate "__intN__" name for "__intN" types.
1375 * gcc/c/c-parser.c (c_parse_init): Create keyword for "__intN__" type.
1376 * gcc/cp/lex.c (init_reswords): Likewise.
1377 * gcc/config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
1379 * gcc/cp/cp-tree.h (cp_decl_specifier_seq): New bitfield "int_n_alt".
1380 * gcc/c/c-decl.c (declspecs_add_type): Don't pedwarn about "__intN" ISO
1381 C incompatibility if alternate "__intN__" form is used.
1382 * gcc/cp/decl.c (grokdeclarator): Likewise.
1383 * gcc/cp/parser.c (cp_parser_simple_type_specifier): Set
1384 decl_specs->int_n_alt if "__intN__" form is used.
1385 * gcc/gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
1386 format of "__intN" types for UINTMAX_TYPE.
1387 * gcc/brig/brig-lang.c (brig_build_c_type_nodes): Accept "__intN__"
1388 format of "__intN" types for SIZE_TYPE.
1389 * gcc/lto/lto-lang.c (lto_build_c_type_nodes): Likewise.
1390 * gcc/stor-layout.c (initialize_sizetypes): Accept "__intN__"
1391 format of "__intN" types for SIZETYPE.
1392 * gcc/tree.c (build_common_tree_nodes): Accept "__intN__"
1393 format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
1394 * gcc/doc/invoke.texi: Document that __intN__ disables pedantic
1397 2019-06-25 Jan Hubicka <jh@suse.cz>
1399 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
1400 base2_alias_set is non-zero before doing TBAA based disambiguation.
1402 2019-06-25 Martin Liska <mliska@suse.cz>
1404 PR tree-optimization/90973
1405 * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
1406 of prologue and epilogue.
1408 2019-06-24 Jan Hubicka <jh@suse.cz>
1410 * ipa-utils.h (type_with_linkage_p): Verify that type is
1412 (odr_type_p): Remove extra return.
1413 * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
1414 hash STRING_FLAG only for arrays and integers.
1415 * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
1417 * tree-streamer-out.c (pack_ts_type_common_value_fields):
1419 * print-tree.c (print_node): Print cxx-odr-p
1421 * tree.c (need_assembler_name_p): Also check that type
1423 (verify_type_variant): Update verification of SRING_FLAG;
1424 also check CXX_ODR_P.
1425 * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
1426 (TYPE_STRING_FLAG): Use it.
1427 (TYPE_CXX_ODR_P): New macro.
1428 * dwarf2out.c (gen_array_type_die): First check that type
1429 is an array and then test string flag.
1431 2019-06-24 Richard Biener <rguenther@suse.de>
1433 PR tree-optimization/90972
1434 * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
1435 in common code, dealing with STRING_CST properly.
1437 2019-06-24 Richard Biener <rguenther@suse.de>
1439 PR tree-optimization/90930
1440 PR tree-optimization/90316
1441 * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
1444 2019-06-24 Martin Sebor <msebor@redhat.com>
1446 * tree-pretty-print.h: Remove unnecessary punctuation characters
1448 * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
1450 2019-06-24 Jonathan Wakely <jwakely@redhat.com>
1452 * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
1453 (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
1454 (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
1456 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
1458 * config/rs6000/darwin.h: Handle GCC target pragma.
1460 2019-06-23 Iain Sandoe <iain@sandoe.co.uk>
1462 * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
1464 2019-06-22 Jeff Law <law@redhat.com>
1466 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1468 2019-06-22 Jan Hubicka <jh@suse.cz>
1470 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
1471 give up on bitfields; continue searching for different refs
1474 2019-06-21 Jakub Jelinek <jakub@redhat.com>
1476 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
1477 even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
1478 containing the offset as possible simd lane access. Look through
1479 widening conversion. Move the
1480 TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
1482 2019-06-21 Richard Biener <rguenther@suse.de>
1484 PR tree-optimization/90930
1485 * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
1486 flag on new stmts to avoid re-processing them.
1488 2019-06-21 Matthew Beliveau <mbelivea@redhat.com>
1490 PR c++/90875 - added -Wswitch-outside-range option
1491 * doc/invoke.texi (Wswitch-outside-range): Document.
1493 2019-06-21 Jeff Law <law@redhat.com>
1495 PR tree-optimization/90949
1496 * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
1497 * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
1499 2019-06-21 Richard Biener <rguenther@suse.de>
1502 * dwarf2out.c (prune_unused_types_walk): Always consider
1503 function-local extern declarations as used.
1505 2019-06-21 Richard Biener <rguenther@suse.de>
1507 PR tree-optimization/90913
1508 * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
1509 the scalar variant of if-conversion versioning.
1511 2019-06-21 Jakub Jelinek <jakub@redhat.com>
1513 * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
1514 create another "omp scan inscan exclusive" array if
1515 !ctx->scan_inclusive.
1516 (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
1517 (lower_omp_scan): Likewise.
1518 * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
1519 2-bit bitfield for simd_lane_access_p member.
1520 * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
1521 aux == (void *)-4 as simd lane access.
1522 * tree-vect-stmts.c (check_scan_store): Handle exclusive scan. Update
1523 comment with permutations to show the canonical permutation order.
1524 (vectorizable_scan_store): Handle exclusive scan.
1525 (vectorizable_store): Call vectorizable_scan_store even for
1526 STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
1528 * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
1529 "omp simd array" arrays with one byte elements.
1531 2019-06-20 Uroš Bizjak <ubizjak@gmail.com>
1533 * config/alpha/alpha.md (@unaligned_store<mode>):
1534 Rename from unaligned_store<mode>.
1535 (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
1536 * config/alpha/sync.md (@load_locked_<mode>): Rename
1537 from load_locked_<mode>.
1538 (@store_conditional_<mode>): Rename from store_conditional_<mode>.
1539 (@atomic_compare_and_swap<mode>_1): Rename
1540 from atomic_compare_and_swap<mode>_1.
1541 (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
1542 * config/alpha/alpha.c (alpha_expand_mov_nobwx):
1543 Use gen_reload_in_aligned and gen_unaligned_store.
1544 (emit_load_locked): Remove.
1545 (emit_store_conditional): Ditto.
1546 (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
1547 (alpha_split_compare_and_swap): Ditto.
1548 (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
1549 (alpha_split_compare_and_swap_12): Use gen_load_locked
1550 and gen_store_conditional.
1551 (alpha_split_atomic_exchange): Ditto.
1552 (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
1553 (alpha_split_atomic_exchange_12): Use gen_load_locked
1554 and gen_store_conditional.
1556 2019-06-20 Richard Earnshaw <rearnsha@arm.com>
1558 * config/aarch64/aarch64-errata.h: New file.
1559 * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
1560 (CA53_ERR_843419_SPEC): Delete.
1561 (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
1562 * config/aarch64/aarch64-linux.h: Likewise.
1563 * config/aarch64/aarch64-netbsd.h: Likewise.
1564 * config/aarch64/aarch64-freebsd.h: Likewise.
1566 2019-06-20 Marek Polacek <polacek@redhat.com>
1568 * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
1570 2019-06-20 Michael Meissner <meissner@linux.ibm.com>
1572 * config/rs6000/rs6000.md (isa attribute): Add support for
1573 for a future processor.
1575 2019-06-20 H.J. Lu <hongjiu.lu@intel.com>
1578 * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
1579 standard scalar operation pattern for V2DF.
1580 * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
1581 (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
1582 (*ieee_<ieee_maxmin><mode>3): Likewise.
1583 (vec_setv2df_0): Likewise.
1585 2019-06-20 Jan Hubicka <jh@suse.cz>
1587 * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
1588 parameter; it has no use in gimple memory model.
1589 (indirect_ref_may_alias_decl_p): Update.
1591 2019-06-20 Martin Liska <mliska@suse.cz>
1593 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
1596 2019-06-20 Jakub Jelinek <jakub@redhat.com>
1598 * tree-vect-stmts.c (enum scan_store_kind): New type.
1599 (scan_store_can_perm_p): Change last argument from int * to
1600 vec<enum scan_store_kind> *, record precisely which permutations
1601 need whole vector left shift or that plus VEC_COND_EXPR.
1602 (vectorizable_scan_store): Adjust caller, use whole vector left shift
1603 and additional VEC_COND_EXPR only for those iterations that need it.
1605 2019-06-20 Alexandre Oliva <oliva@adacore.com>
1607 * config.gcc: Fix ARM --with-fpu checking and error message.
1609 2019-06-19 Marek Polacek <polacek@redhat.com>
1611 PR c++/60364 - noreturn after first decl not diagnosed.
1612 * attribs.c (get_attribute_namespace): No longer static.
1613 (decl_attributes): Avoid shadowing. Preserve the C++11 form for C++11
1615 (attr_noreturn_exclusions): Make it extern.
1616 * attribs.h (get_attribute_namespace): Declare.
1617 * tree-inline.c (function_attribute_inlinable_p): Use
1620 2019-06-19 Martin Sebor <msebor@redhat.com>
1622 PR tree-optimization/90626
1623 * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
1625 PR tree-optimization/90626
1626 * tree-ssa-strlen.c (strxcmp_unequal): New function.
1627 (handle_builtin_string_cmp): Call it.
1629 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
1631 * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
1632 and DARWIN_NOPIE_SPEC.
1633 (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
1634 (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
1635 (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
1636 (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
1637 (DARWIN_EXPORT_DYNAMIC): Delete.
1638 * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
1639 and pie options processing to darwin.h.
1640 * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
1642 2019-06-19 Iain Sandoe <iain@sandoe.co.uk>
1644 * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
1645 in computing the number of options to be moved.
1647 2019-06-19 Maya Rashish <coypu@sdf.org>
1649 * config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
1650 (CLEAR_INSN_CACHE) Use it.
1652 2019-06-19 Uroš Bizjak <ubizjak@gmail.com>
1654 * config/i386/i386.md (cmpstrnsi): Remove dead code.
1656 2019-06-19 Wilco Dijkstra <wdijkstr@arm.com>
1659 * builtins.c (expand_builtin_setjmp_setup): Save
1660 hard_frame_pointer_rtx.
1661 (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
1663 * function.c (expand_function_start): Save hard_frame_pointer_rtx for
1665 * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
1667 (remove_reg_equal_offset_note): Remove unused function.
1668 * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
1670 * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1671 (arc_builtin_setjmp_frame_value): Remove function.
1672 * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1673 (avr_builtin_setjmp_frame_value): Remove function.
1674 * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1675 (ix86_builtin_setjmp_frame_value): Remove function.
1676 * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
1677 * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1678 (sparc_builtin_setjmp_frame_value): Remove function.
1679 * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1680 (vax_builtin_setjmp_frame_value): Remove function.
1681 * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
1682 pointer if has_nonlocal_label.
1684 2019-06-19 Jakub Jelinek <jakub@redhat.com>
1686 * doc/md.texi: Document vec_shl_<mode> pattern.
1687 * optabs.def (vec_shl_optab): New optab.
1688 * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
1689 argument, if == vec_shl_optab, check for left whole vector shift
1690 pattern rather than right shift.
1691 (expand_vec_perm_const): Add vec_shl_optab support.
1692 * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
1694 * tree-vect-generic.c (lower_vec_perm): Support permutations which
1695 can be handled by vec_shl_optab.
1696 * tree-vect-stmts.c (scan_store_can_perm_p): New function.
1697 (check_scan_store): Use it.
1698 (vectorizable_scan_store): If target can't do normal permutations,
1699 try to use whole vector left shifts and if needed a VEC_COND_EXPR
1701 * config/i386/sse.md (vec_shl_<mode>): New expander.
1703 * omp-low.c (lower_rec_input_clauses): Handle references properly
1705 (lower_omp_scan): Likewise.
1707 2019-06-19 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
1709 * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
1710 mem_mode is BLKmode.
1712 2019-06-18 Max Filippov <jcmvbkbc@gmail.com>
1715 * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
1716 pointer adjustment for the case of no callee-saved registers and
1717 stack frame bigger than 128 bytes.
1719 2019-06-18 Thomas Schwinge <thomas@codesourcery.com>
1722 * omp-low.c (check_omp_nesting_restrictions): Handle
1723 GF_OMP_TARGET_KIND_OACC_DECLARE.
1725 2019-06-18 Uroš Bizjak <ubizjak@gmail.com>
1727 * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
1728 (@add<mode>3_carry): Rename from add<mode>3_carry.
1729 (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
1730 (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
1731 (@copysign<mode>3_const): Rename from copysign<mode>3_const.
1732 (@copysign<mode>3_var): Rename from copysign<mode>3_var.
1733 (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
1734 (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
1735 (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
1736 (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
1737 (cmpstrnsi): Use gen_cmp_1.
1738 (lwp_slwpcb): Use gen_lwp_slwpcb_1.
1739 (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
1740 (@umonitor_<mode>): Rename from umonitor_<mode>.
1741 * config/i386/i386-expand.c (ix86_expand_copysign):
1742 Use gen_copysign3_const and gen_copysign3_var.
1743 (ix86_expand_xorsign): Use gen_xorsign3_1.
1744 (ix86_expand_branch): Use gen_sub3_carry_ccc,
1745 gen_sub3_carry_ccgz and gen_cmp1.
1746 (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
1747 (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
1748 (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
1749 (ix86_split_lshr): Ditto.
1750 (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
1752 2019-06-18 Jason Merrill <jason@redhat.com>
1754 * tree.c (build_constructor): Add MEM_STAT_DECL.
1756 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
1758 * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
1759 * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
1760 (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
1761 (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
1762 (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
1763 (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
1764 (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
1765 Use CC_NZC instead of CC.
1766 * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
1767 * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
1768 (aarch64_print_operand): Handle E_CC_NZCmode.
1769 (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
1770 of gen_set_clobber_cc.
1772 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
1774 * config/aarch64/aarch64-sve.md: Tabify file.
1776 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
1778 * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
1779 * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
1780 * config/aarch64/aarch64-sve.md: Use it.
1782 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
1784 * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
1785 * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
1786 (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
1787 (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
1788 (aarch64_expand_sve_vec_cmp_int): Use it.
1789 (aarch64_expand_sve_vec_cmp_float): Likewise.
1790 * config/aarch64/aarch64-sve.md: Likewise throughout.
1792 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
1793 Kugan Vivekanandarajah <kuganv@linaro.org>
1795 * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
1796 (*cond_<optab><mode>_z): Fold into...
1797 (*cond_<optab><mode>_any): ...here. Also handle cases in which
1798 operand 4 can be tied to operand 0 (either inherently or via RA).
1800 2019-06-18 Richard Biener <rguenther@suse.de>
1803 * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
1804 as if optimized away.
1806 2019-06-18 Tom de Vries <tdevries@suse.de>
1808 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
1809 * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
1810 * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
1812 (define_insn "@set_softstack_<mode>"): ... this.
1813 (define_insn "omp_simt_enter_<mode>"): Rename to ...
1814 (define_insn "@omp_simt_enter_<mode>"): ... this.
1815 (define_insn "omp_simt_exit_<mode>"): Rename to ...
1816 (define_insn "@omp_simt_exit_<mode>"): ... this.
1818 2019-06-18 Richard Sandiford <richard.sandiford@arm.com>
1820 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
1821 vf parameter. Restore the previous iv step of nscalars_step,
1822 but give it iv_type rather than compare_type. Tweak code order
1823 to match the comments.
1824 (vect_set_loop_condition_masked): Update accordingly.
1825 * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
1826 for iv_precision. Tweak comment formatting.
1828 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
1830 * config/darwin.c: Strip trailing whitespace.
1832 2019-06-18 Iain Sandoe <iain@sandoe.co.uk>
1834 * config/darwin.c (darwin_emit_unwind_label): New default to false.
1835 (darwin_override_options): Set darwin_emit_unwind_label as needed.
1837 2019-06-18 Martin Jambor <mjambor@suse.cz>
1840 * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
1841 caller does not have flag_ipa_cp set.
1843 2019-06-18 Alejandro Martinez <alejandro.martinezvicente@arm.com>
1845 * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
1846 from "*fold_left_plus_<mode>", updated operands order.
1847 * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
1848 * internal-fn.c (mask_fold_left_direct): New define.
1849 (expand_mask_fold_left_optab_fn): Likewise.
1850 (direct_mask_fold_left_optab_supported_p): Likewise.
1851 * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
1852 * optabs.def (mask_fold_left_plus_optab): New optab.
1853 * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
1854 masked internal_fn for a reduction ifn.
1855 (vectorize_fold_left_reduction): Add support for masking reductions.
1857 2019-06-18 Kewen Lin <linkw@gcc.gnu.org>
1860 * target.def (predict_doloop_p): New hook.
1861 * targhooks.h (default_predict_doloop_p): New declaration.
1862 * targhooks.c (default_predict_doloop_p): New function.
1863 * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
1864 * doc/tm.texi: Regenerate.
1865 * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
1866 (TARGET_PREDICT_DOLOOP_P): New macro.
1867 * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
1869 2019-06-17 Jakub Jelinek <jakub@redhat.com>
1871 * omp-low.c (struct omp_context): Add scan_inclusive field.
1872 (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
1874 (struct omplow_simd_context): Add lastlane member.
1875 (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
1876 reductions. Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
1878 (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
1879 (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
1880 (lower_omp_scan): New function.
1881 (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
1882 * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
1883 check 3rd argument if present rather than 2nd.
1884 * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
1885 (struct _stmt_vec_info): Change simd_lane_access_p from bool into
1887 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
1888 scan_map. For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
1890 (_loop_vec_info::~_loop_vec_info): Delete scan_map.
1891 * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
1892 different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
1894 (vect_find_stmt_data_reference): Encode in ->aux the 2nd
1895 IFN_GOMP_SIMD_LANE argument.
1896 (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
1897 encoded ->aux value.
1898 * tree-vect-stmts.c: Include attribs.h.
1899 (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
1900 (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
1902 (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
1903 (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
1905 2019-06-17 Uroš Bizjak <ubizjak@gmail.com>
1908 * config/i386/i386.md (*nabstf2_1): New insn pattern.
1909 (*nabs<mode>2_1): Ditto.
1910 (nabs sse-reg splitter): New splitter.
1911 * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
1913 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
1916 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
1919 2019-06-17 Tom de Vries <tdevries@suse.de>
1921 * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
1922 * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
1923 * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
1925 (define_insn "set_softstack_<mode>"): ... this. Use P iterator on
1927 (define_insn "omp_simt_enter_insn"): Rename to ...
1928 (define_insn "omp_simt_enter_<mode>"): ... this. Use P iterator on
1929 match_operand 0, 1 and 2, as well as the unspec_volatile result.
1930 (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
1931 gen_omp_simt_enter_si.
1932 (define_expand "omp_simt_exit"): New.
1933 (define_insn "omp_simt_exit"): Rename to ...
1934 (define_insn "omp_simt_exit_<mode>"): ... this. Use P iterator on
1937 2019-06-17 Matthew Green <mrg@eterna.com.au>
1938 Maya Rashish <coypu@sdf.org>
1940 * config.gcc (aarch64*-*-netbsd*): New target.
1941 * config/aarch64/aarch64-netbsd.h: New file.
1942 * config/aarch64/t-aarch64-netbsd: Likewise.
1944 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
1946 * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
1947 the access path from base to first VIEW_CONVERT_EXPR or
1950 2019-06-17 Jan Hubicka <hubicka@ucw.cz>
1952 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
1953 access path on BIT_FIELD_REFs.
1955 2019-06-17 Martin Liska <mliska@suse.cz>
1958 * ipa-utils.h (odr_type_p): Remove dead code.
1960 2019-06-17 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
1962 * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
1963 alternative Solaris 11.4 format.
1964 * configure: Regenerate.
1966 2019-06-17 Tom de Vries <tdevries@suse.de>
1968 * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
1969 (define_insn "call_insn_<mode>"): ... this. Use P iterator on
1971 (define_insn "call_value_insn"): Rename to ...
1972 (define_insn "call_value_insn_<mode>"): this. Use P iterator on
1974 (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
1977 2019-06-16 John David Anglin <danglin@gcc.gnu.org>
1980 * config/pa/pa.md (nonlocal_goto): Restore frame pointer last. Add
1981 frame clobbers and schedule block.
1982 (builtin_longjmp): Likewise.
1984 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1986 * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
1987 describe how to perform MSPABI compliant 64-bit shift.
1988 * config/msp430/msp430.md (ashldi3): New define_expand.
1989 (ashrdi3): New define_expand.
1990 (lshrdi3): New define_expand.
1992 2019-06-16 Jozef Lawrynowicz <jozef.l@mittosystems.com>
1994 * doc/sourcebuild.texi: Document new effective target keyword
1997 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
1999 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
2000 indirect_refs_may_alias_p): Revert accidental commits.
2002 * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
2003 at the end of structures.
2005 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
2007 * config/darwin.c (machopic_indirect_call_target): Use renamed
2008 darwin_picsymbol_stubs to decide on output.
2009 (darwin_override_options): Handle darwin_picsymbol_stubs.
2010 * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
2011 (LD64_VERSION): Revise default.
2012 * config/darwin.opt: (mpic-symbol-stubs): New option.
2013 (darwin_picsymbol_stubs): New variable.
2014 * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
2015 rename to TARGET_MACHO_PICSYM_STUBS.
2016 * config/i386/i386.c (output_pic_addr_const): Likewise.
2017 * config/i386/i386.h Likewise.
2018 * config/rs6000/darwin.h: Likewise.
2019 * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
2020 darwin_picsymbol_stubs.
2022 2019-06-16 Iain Sandoe <iain@sandoe.co.uk>
2024 * config/darwin.opt (prebind, noprebind, seglinkedit,
2025 noseglinkedit): Add RejectNegative.
2027 2019-06-16 Jan Hubicka <hubicka@ucw.cz>
2029 * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
2030 in my previous patch.
2032 2019-06-16 Tom de Vries <tdevries@suse.de>
2034 PR tree-optimization/89376
2035 * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
2037 2019-06-15 Maya Rashish <coypu@sdf.org>
2039 * doc/invoke.texi (Spec Files): Update location of the
2042 2019-06-15 Gerald Pfeifer <gerald@pfeifer.com>
2044 * doc/extend.texi (Common Function Attributes): Clarify
2045 no_sanitize. Fix grammar.
2047 2019-06-15 Jan Hubicka <hubicka@ucw.cz>
2049 * tree-ssa-alias.c (alias_stats): Add
2050 nonoverlapping_component_refs_p_may_alias,
2051 nonoverlapping_component_refs_p_no_alias,
2052 nonoverlapping_component_refs_of_decl_p_may_alias,
2053 nonoverlapping_component_refs_of_decl_p_no_alias.
2054 (dump_alias_stats): Dump them.
2055 (nonoverlapping_component_refs_of_decl_p): Add stats.
2056 (nonoverlapping_component_refs_p): Add stats; do not stop on first
2059 2019-06-15 Uroš Bizjak <ubizjak@gmail.com>
2061 * config/i386/i386.md (and<mode>3): Generate zero-extends for
2062 TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
2064 (*anddi3_doubleword): Split before reload. Merge with
2065 anddi->zext pre-reload splitter.
2066 (*andndi3_doubleword): Split before reload.
2067 (*<code>di3_doubleword): Ditto.
2068 (*one_cmpldi2_doubleword): Ditto.
2070 2019-06-15 Jakub Jelinek <jakub@redhat.com>
2073 * gimplify.c: Include omp-offload.h and context.h.
2074 (gimplify_bind_expr): Add "omp declare target" attributes
2075 to static block scope variables inside of target region or target
2078 2019-06-15 Tom de Vries <tdevries@suse.de>
2080 PR tree-optimization/90009
2081 * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
2082 Return NULL if bb contains IFN_UNIQUE.
2084 2019-06-14 Segher Boessenkool <segher@kernel.crashing.org>
2086 * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
2087 (un): New define_mode_attr.
2088 (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
2089 (isel_<un>signed_<GPR:mode>): ... this. New define_insn.
2090 (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
2092 (isel_reversed_<un>signed_<GPR:mode>): ... this. New define_insn.
2094 2019-06-14 Iain Sandoe <iain@sandoe.co.uk>
2096 * config/darwin.opt: Add RejectNegative where needed, reorder
2097 and add minimal functional descriptions.
2099 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
2101 PR rtl-optimization/90765
2102 * calls.c (update_stack_alignment_for_call): New function.
2103 (expand_call): Call update_stack_alignment_for_call when
2104 outgoing parameter is passed in the stack.
2105 (emit_library_call_value_1): Likewise.
2106 * function.c (locate_and_pad_parm): Don't update
2107 stack_alignment_needed and preferred_stack_boundary.
2109 2019-06-14 H.J. Lu <hongjiu.lu@intel.com>
2112 * config/i386/i386-features.c
2113 (dimode_scalar_chain::compute_convert_gain): Replace
2114 mmxsse_to_integer with sse_to_integer.
2115 * config/i386/i386.c (ix86_register_move_cost): Verify that
2116 moves between MMX and non-MMX units require secondary memory.
2117 Correct costs of moves between SSE and integer units.
2118 * config/i386/i386.h (processor_costs): Rename cost of moving
2119 SSE register to integer to sse_to_integer. Rename cost of
2121 2019-06-14 Matt Thomas <matt@3am-software.com>
2122 Matthew Green <mrg@eterna.com.au>
2123 Nick Hudson <skrll@netbsd.org>
2124 Maya Rashish <coypu@sdf.org>
2125 Richard Earnshaw <rearnsha@arm.com>
2127 * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
2128 * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
2129 * config/arm/netbsd-eabi.h: New file.
2130 * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
2132 (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
2133 * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
2134 (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
2135 (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
2137 2019-06-14 Richard Biener <rguenther@suse.de>
2139 * tree-loop-distribution.c (classify_partition): Return
2140 whether a reduction appeared in all partitions and do not
2141 stop builtin detection because of this.
2142 (distribute_loop): Sort a non-builtin partition last if
2143 there's a reduction in all partitions and make sure the
2144 partition prevailing as last is not a builtin.
2146 2019-06-14 Feng Xue <fxue@os.amperecomputing.com>
2149 * ipa-prop.c (add_to_agg_contents_list): New function.
2150 (clobber_by_agg_contents_list_p): Likewise.
2151 (extract_mem_content): Likewise.
2152 (get_place_in_agg_contents_list): Delete.
2153 (determine_known_aggregate_parts): Renamed from
2154 determine_locally_known_aggregate_parts. New parameter
2157 2019-06-13 Martin Sebor <msebor@redhat.com>
2159 PR tree-optimization/90662
2160 * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
2163 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
2166 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
2167 dbase is not TARGET_MEM_REF.
2169 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
2171 * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
2173 (and<mode>3): Use gen_extend_insn instead of indirect functions.
2174 Do not generate DImode extends for 32bit targets.
2175 (and->zext post-reload splitter): Use gen_extend_insn
2176 instead of indirect functions.
2177 (anddi->zext pre-reload splitter): New.
2178 (*zext<mode>_doubleword_and): Remove.
2179 (*zext<mode>_doubleword): Ditto.
2180 (*zextsi_doubleword): Dittto.
2182 2019-06-13 Uroš Bizjak <ubizjak@gmail.com>
2184 * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
2185 Use gen_sub3_insn instead of indirect function.
2186 (ix86_expand_ashl_const): Use gen_add2_insn instead of
2188 (ix86_adjust_counter): Ditto.
2190 2019-06-13 Jiufu Guo <guojiufu@linux.ibm.com>
2191 Lijia He <helijia@linux.ibm.com>
2193 PR tree-optimization/77820
2194 * tree-ssa-threadedge.c
2195 (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
2197 (thread_across_edge): Add call to
2198 edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
2200 2019-06-13 Iain Sandoe <iain@sandoe.co.uk>
2202 * config/darwin-driver.c (validate_macosx_version_min): New.
2203 (darwin_default_min_version): Cleanup and validate supplied version.
2204 (darwin_driver_init): Likewise and push cleaned version into opts.
2206 2019-06-13 Jan Hubicka <hubicka@ucw.cz>
2208 PR tree-optimization/90869
2209 * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
2210 converts in MEM_REF referencing decl rather than view converts
2211 from decl type to MEM_REF type.
2213 2019-06-13 Richard Biener <rguenther@suse.de>
2215 PR tree-optimization/90856
2216 * tree-sra.c (build_ref_for_model): Only use
2217 build_reconstructed_reference when address-spaces are the same.
2219 2019-06-13 Jakub Jelinek <jakub@redhat.com>
2221 * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
2222 wrap ei variable name in the declaration in ()s.
2223 (nvptx_single): Actually use mode_label variable. Formatting fix.
2225 2019-06-13 Richard Biener <rguenther@suse.de>
2227 * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
2228 * tree-vectorizer.c (vect_loop_vectorized_call): Export and
2229 also return the condition stmt.
2230 * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
2231 loop we can version and version that, reusing the loop version
2232 created by if-conversion instead of versioning again.
2234 2019-06-13 Aldy Hernandez <aldyh@redhat.com>
2236 * gimple-loop-versioning.cc (prune_loop_conditions): Use
2238 * tree-vrp (value_range_base::may_contain_p): Call into
2240 (value_inside_range): Make private inside value_range_base class.
2241 Take min/max from *this.
2242 (range_includes_p): Remove.
2243 * tree-vrp.h (value_range_base): Add value_inside_range.
2244 (range_includes_p): Remove.
2245 (range_includes_zero_p): Call may_contain_p.
2246 * vr-values.c (compare_range_with_value): Same.
2248 2019-06-13 Claudiu Zissulescu <claziss@synopsys.com>
2250 * doc/extend.texi (ARC Function Attributes): Update info.
2252 2019-06-13 Feng Xue <fxue@os.amperecomputing.com>
2254 PR tree-optimization/89713
2255 * doc/invoke.texi (-ffinite-loops): Document new option.
2256 * common.opt (-ffinite-loops): New option.
2257 * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
2258 IFN_GOACC_LOOP calls as necessary.
2259 * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
2261 * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
2262 IFN_GOACC_LOOP call is not used.
2263 * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
2265 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2268 * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
2269 compare_type is not with Pmode size, we will create an IV with
2270 Pmode size with truncated use (i.e. converted to the correct type).
2271 * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
2272 (vect_iv_limit_for_full_masking): New. Factored out of
2273 vect_set_loop_condition_masked.
2274 * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
2275 (vect_iv_limit_for_full_masking): Declare.
2277 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2280 * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
2281 IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
2282 (get_alias_ptr_type_for_ptr_address): Likewise.
2283 (add_iv_candidate_for_use): Add scaled index candidate if useful.
2284 * tree-ssa-address.c (preferred_mem_scale_factor): New.
2285 * config/aarch64/aarch64.c (aarch64_classify_address): Relax
2288 2019-06-13 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
2290 * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
2292 2019-06-12 Dimitar Dimitrov <dimitar@dinux.eu>
2294 * common/config/pru/pru-common.c: New file.
2295 * config.gcc: Add PRU target.
2296 * config/pru/alu-zext.md: New file.
2297 * config/pru/constraints.md: New file.
2298 * config/pru/predicates.md: New file.
2299 * config/pru/pru-opts.h: New file.
2300 * config/pru/pru-passes.c: New file.
2301 * config/pru/pru-pragma.c: New file.
2302 * config/pru/pru-protos.h: New file.
2303 * config/pru/pru.c: New file.
2304 * config/pru/pru.h: New file.
2305 * config/pru/pru.md: New file.
2306 * config/pru/pru.opt: New file.
2307 * config/pru/t-pru: New file.
2308 * doc/extend.texi: Document PRU pragmas.
2309 * doc/invoke.texi: Document PRU-specific options.
2310 * doc/md.texi: Document PRU asm constraints.
2312 2019-06-12 Martin Sebor <msebor@redhat.com>
2315 * tree-pretty-print.c (dump_mem_ref): New function. Include
2316 MEM_REF type in output when different size than operand.
2317 (dump_generic_node): Move code to dump_mem_ref and call it.
2319 2019-06-12 Martin Sebor <msebor@redhat.com>
2321 PR tree-optimization/90662
2322 * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
2325 2019-06-12 Tom de Vries <tdevries@suse.de>
2327 PR tree-optimization/90009
2328 * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
2330 2019-06-12 Martin Liska <mliska@suse.cz>
2332 * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
2334 * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
2335 * mem-stats.h (mem_alloc_description::mem_alloc_description):
2336 Do not sanitize created maps.
2338 2019-06-12 Aldy Hernandez <aldyh@redhat.com>
2340 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
2341 value_range::singleton_p.
2342 * tree-vrp.c (value_range_constant_singleton): Remove.
2343 * tree-vrp.h (value_range_constant_singleton): Remove.
2344 * vr-values.c (vr_values::singleton): Use
2345 value_range::singleton_p.
2347 2019-06-12 Jakub Jelinek <jakub@redhat.com>
2350 * cfgexpand.c (align_local_variable): Add really_expand argument,
2351 don't SET_DECL_ALIGN if it is false.
2352 (add_stack_var): Add really_expand argument, pass it through to
2353 align_local_variable.
2354 (expand_one_stack_var_1): Pass true as really_expand to
2355 align_local_variable.
2356 (expand_one_ssa_partition): Pass true as really_expand to
2358 (expand_one_var): Pass really_expand through to add_stack_var.
2360 2019-06-12 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
2362 * config/arm/iterators.md (VABAL): New int iterator.
2363 * config/arm/neon.md (<sup>sadv16qi): New define_expand.
2364 * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U
2367 2019-06-12 Martin Liska <mliska@suse.cz>
2369 * value-prof.c (stream_out_histogram_value): Only first value
2372 2019-06-12 Jakub Jelinek <jakub@redhat.com>
2375 * symtab.c (symtab_node::set_section): Allow being called on aliases
2376 as long as they aren't analyzed yet.
2378 2019-06-11 Faraz Shahbazker <fshahbazker@wavecomp.com>
2380 * config/mips/mips.c (mips_final_postscan_insn): Modify call
2381 to `mips_set_text_contents_type' to indicate whether a
2382 non-debug insn follows.
2384 2019-06-11 Michael Meissner <meissner@linux.ibm.com>
2386 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
2387 enabling -mpcrel by default.
2388 * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
2389 test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
2390 that the test against -mcpu=future is done first. Then test if
2391 -mprefixed-addr is on for -mpcrel.
2392 (rs6000_disable_incompatible_switches): Add -mcpu=future support.
2394 2019-06-11 Jakub Jelinek <jakub@redhat.com>
2397 * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
2400 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
2402 * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
2404 2019-06-11 Matthew Beliveau <mbelivea@redhat.com>
2406 PR c++/90449 - add -Winaccessible-base option.
2407 * doc/invoke.texi (Winaccessible-base): Document.
2409 2019-06-11 Marc Glisse <marc.glisse@inria.fr>
2411 PR tree-optimization/62041
2412 * fold-const.c (fold_real_zero_addition_p): Handle vectors.
2414 2019-06-11 Jason Merrill <jason@redhat.com>
2416 * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
2417 * tree.c (get_tree_code_name): Likewise.
2418 * print-tree.c (print_node): Only briefly print a node with an
2421 2019-06-11 Jakub Jelinek <jakub@redhat.com>
2424 * trans-mem.c (tm_memopt_compute_available): Add assertion
2425 that blocks is not empty. Formatting fix.
2427 2019-06-11 Martin Liska <mliska@suse.cz>
2430 * hash-table.h: Extend create_gcc, add one parameter
2431 that is passed into hash_table::hash_table.
2433 2019-06-10 Uroš Bizjak <ubizjak@gmail.com>
2435 * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
2437 * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
2438 Emit clobber also for non-sse operations.
2439 (ix86_split_fp_absneg_operator): New function.
2440 * config/i386/i386.md (SSEMODEF): New mode iterator.
2441 (ssevecmodef): New mode attribute.
2442 (<code>tf2): Use absneg code iterator.
2443 (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
2444 Add three-operand AVX alternatives.
2445 (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
2446 Use absneg code iterator and X87MODEF mode iterator.
2447 (absneg fp_reg non-sse splitter): Call absneg code iterator
2448 and X87MODEF mode iterator.
2449 (absneg general_reg non-sse splitter): Use absneg code iterator
2450 and X87MODEF mode iterator. Use ix86_split_fp_absneg_operator.
2451 (*<code><mode>2_1): Rename from *absneg<mode>2. Use absneg
2452 code iterator. Add three-operand AVX alternative.
2453 (absneg sse_reg splitter): Use absneg code iterator
2454 and SSEMODEF mode iterator. Handle AVX operands.
2455 (absneg fp_reg splitter): Use absneg code iterator
2456 and MODEF mode iterator.
2457 (absneg general_reg splitter): Merge splitters using MODEF mode
2458 iterator. Use absneg code iterator. Call
2459 ix86_split_fp_absneg_operator.
2460 (*<code><mode>2_i387): Rename from *<code><mode>2_1.
2461 Do not enable for non-sse modes before reload.
2464 (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
2465 ssevecmodef mode attribute instaed of CSGNVMODE.
2466 (copysign<mode>3_const): Ditto.
2467 (copysign<mode>3_var): Ditto.
2468 * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
2469 Use absneg code iterator. Simplify code using std::swap.
2470 * config/i386/predicates.md (absneg_operator): Remove.
2472 2019-06-10 Martin Sebor <msebor@redhat.com>
2474 * gimple-fold.c (get_range_strlen): Update comment that didn't
2475 make it into r267503 or related commits.
2477 2019-06-10 Vladislav Ivanishin <vlad@ispras.ru>
2479 * gcov-tool.c (merge_usage, rewrite_usage): Mark with
2480 ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
2482 2019-06-10 Jakub Jelinek <jakub@redhat.com>
2484 * tree.def (OMP_SCAN): New tree code.
2485 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
2486 OMP_CLAUSE_EXCLUSIVE.
2487 * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
2488 (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
2489 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
2490 OMP_CLAUSE_{IN,EX}CLUSIVE.
2491 (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
2492 * tree-nested.c (convert_nonlocal_reference_stmt,
2493 convert_local_reference_stmt, convert_gimple_call): Handle
2495 * tree-pretty-print.c (dump_omp_clause): Handle
2496 OMP_CLAUSE_{IN,EX}CLUSIVE.
2497 (dump_generic_node): Handle OMP_SCAN.
2498 * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
2499 * gimple.h (gomp_scan): New type.
2500 (is_a_helper <gomp_scan *>::test,
2501 is_a_helper <const gomp_scan *>::test): New templates.
2502 (gimple_build_omp_scan): Declare.
2503 (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
2504 gimple_omp_scan_set_clauses): New inline functions.
2505 (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
2506 * gimple.c (gimple_build_omp_scan): New function.
2507 (gimple_copy): Handle GIMPLE_OMP_SCAN.
2508 * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
2509 * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
2510 GIMPLE_OMP_TASKGROUP.
2511 (dump_gimple_omp_scan): New function.
2512 (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
2513 * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
2514 * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
2515 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
2516 (is_gimple_stmt): Handle OMP_SCAN.
2517 (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
2518 other than OMP_FOR or OMP_SIMD. Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
2519 (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
2520 mentioned in nested #pragma omp scan. Handle
2521 OMP_CLAUSE_{IN,EX}CLUSIVE.
2522 (gimplify_expr): Handle OMP_SCAN.
2523 * omp-low.c (check_omp_nesting_restrictions): For parent context,
2524 look through GIMPLE_OMP_SCAN context. Allow #pragma omp scan in
2526 (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
2529 2019-06-10 Martin Liska <mliska@suse.cz>
2531 * ipa-cp.c (ignore_edge_p): New function.
2532 (build_toporder_info): Use it.
2533 * ipa-inline.c (ignore_edge_p): New function.
2534 (inline_small_functions): Use it.
2535 * ipa-pure-const.c (ignore_edge_for_nothrow):
2536 Verify opt_for_fn for caller and callee.
2537 (ignore_edge_for_pure_const): Likewise.
2538 * ipa-reference.c (ignore_edge_p): Extend to check
2540 * ipa-utils.c (searchc): Refactor.
2541 * ipa-utils.h: Fix coding style.
2543 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
2545 * config/arc/arc.c (arc_rtx_costs): Update costs.
2547 2019-06-10 Claudiu Zissulescu <claziss@synopsys.com>
2549 * config/arc/arc-protos.h (arc_check_ior_const): Declare.
2550 (arc_split_ior): Likewise.
2551 (arc_check_mov_const): Likewise.
2552 (arc_split_mov_const): Likewise.
2553 * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
2554 (arc_rtx_costs): Replace check Crr with Cax constraint.
2555 (prepare_move_operands): Cleanup, remove unused code.
2556 (arc_split_ior): New function.
2557 (arc_check_ior_const): Likewise.
2558 (arc_split_mov_const): Likewise.
2559 (arc_check_mov_const): Likewise.
2560 * config/arc/arc.md (movsi_insn): Restructure it, and convert it
2561 in define_insn_and_split pattern.
2563 (mulsi3_v2): Add new matching variant.
2564 (andsi3_i): Cleanup pattern.
2565 (rotrsi3_cnt1): Update pattern.
2566 (rotrsi3_cnt8): New pattern.
2567 (ashlsi2_cnt8): Likewise.
2568 (ashlsi2_cnt16): Likewise.
2569 * config/arc/constraints.md (C0p): Update constraint.
2574 2019-06-10 Martin Liska <mliska@suse.cz>
2576 * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
2577 Update coding style.
2578 (sem_item_optimizer::dump_cong_classes):
2579 Print how many items are in a non-singular class. Improve
2582 2019-06-10 Martin Liska <mliska@suse.cz>
2584 * value-prof.c (dump_histogram_value): Change dump format.
2585 (gimple_mod_subtract_transform): Remove legacy comment.
2587 2019-06-10 Martin Liska <mliska@suse.cz>
2589 * value-prof.c (dump_histogram_value): Print histogram values
2592 2019-06-10 Martin Liska <mliska@suse.cz>
2594 * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
2595 (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
2596 * ipa-profile.c (ipa_profile_generate_summary):
2597 Use get_most_common_single_value.
2598 * tree-profile.c (gimple_init_gcov_profiler):
2599 Instrument with __gcov_one_value_profiler_v2
2600 and __gcov_indirect_call_profiler_v4.
2601 * value-prof.c (dump_histogram_value):
2602 Print all values for HIST_TYPE_SINGLE_VALUE.
2603 (stream_out_histogram_value): Update assert for
2605 (stream_in_histogram_value): Set number of
2606 counters for HIST_TYPE_SINGLE_VALUE.
2607 (get_most_common_single_value): New.
2608 (gimple_divmod_fixed_value_transform):
2609 Use get_most_common_single_value.
2610 (gimple_ic_transform): Likewise.
2611 (gimple_stringops_transform): Likewise.
2612 (gimple_find_values_to_profile): Set number
2613 of counters for HIST_TYPE_SINGLE_VALUE.
2614 * value-prof.h (get_most_common_single_value):
2617 2019-06-10 Martin Liska <mliska@suse.cz>
2619 * hash-map.h: Pass default value to hash_table ctor.
2620 * hash-table.h: Add default value to call of a ctor.
2622 2019-06-08 Jonathan Wakely <jwakely@redhat.com>
2624 * doc/invoke.texi (C Dialect Options): Minor grammatical change.
2625 (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
2627 2019-06-07 John David Anglin <danglin@gcc.gnu.orig>
2630 * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
2631 Call pa_output_function_label.
2632 (TARGET_ASM_FUNCTION_PROLOGUE): define.
2633 * config/pa/pa-protos.h (pa_output_function_label): Declare.
2634 * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
2636 (pa_linux_output_function_prologue): Declare.
2637 (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
2638 (pa_output_function_label): New.
2639 (pa_output_function_prologue): Revise to use pa_output_function_label.
2640 (pa_linux_output_function_prologue): New.
2641 * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
2643 2019-06-07 Aldy Hernandez <aldyh@redhat.com>
2645 * tree-vrp.h (value_range_base::intersect): New.
2646 (value_range::intersect_helper): Move from here...
2647 (value_range_base::intersect_helper): ...to here.
2648 * tree-vrp.c (value_range::intersect_helper): Rename to...
2649 (value_range_base::intersect_helper): ...this, and rewrite to
2650 return a value instead of modifying THIS in place.
2651 Also, move equivalence handling...
2652 (value_range::intersect): ...here, while calling intersect_helper.
2653 * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
2655 * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
2657 * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
2659 2019-06-07 Jakub Jelinek <jakub@redhat.com>
2661 * Makefile.in (genprogerr): Add condmd.
2662 (genprog): Remove it here.
2664 2019-06-07 Andrew Stubbs <ams@codesourcery.com>
2666 * doc/invoke.texi (AMD GCN Options): Add gfx906.
2668 2019-06-07 Richard Biener <rguenther@suse.de>
2671 * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
2672 that appear after user labels.
2674 2019-06-07 Martin Liska <mliska@suse.cz>
2676 * cselib.c (cselib_init): Disable hash table
2678 * hash-set.h: Pass new default argument to m_table.
2679 * hash-table.c: Add global variable with hash table
2681 * hash-table.h (Allocator>::hash_table): Add new argument
2683 (hashtab_chk_error): New.
2684 * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
2685 * toplev.c (process_options): Set hash_table_sanitize_eq_limit
2686 from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
2688 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
2690 * common.opt (flto-odr-type-merging): Ignore.
2691 * invoke.texi (-flto-odr-type-merging): Remove.
2692 * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
2693 (can_be_vtable_hashed_p): Remove.
2694 (hash_odr_vtable): Remove.
2695 (odr_vtable_hasher::hash): Remove.
2696 (types_same_for_odr): Remove.
2697 (types_odr_comparable): Remove.
2698 (odr_vtable_hasher::equal): Remove.
2699 (odr_vtable_hash_type, odr_vtable_hash): Remove.
2700 (add_type_duplicate): Do not synchronize vtable and name hashtables.
2701 (get_odr_type): Do not use vtable hash.
2702 (dump_odr_type): Remove commented out code.
2703 (build_type_inheritance_graph): Do not allocate vtable hash.
2704 (rebuild_type_inheritance_graph): Do not delete vtable hash.
2705 * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
2706 (odr_type_p): Likewise.
2707 * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
2710 2019-06-07 Jan Hubicka <hubicka@ucw.cz>
2712 * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
2713 immediately after same_types_for_tbaa_p returns -1 and continue
2714 looking for possible exact match; if matching types are arrays
2715 watch for partial overlaps.
2716 (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
2717 (indirect_refs_may_alias_p): Do type based disambiguation first;
2720 2019-06-07 Richard Sandiford <richard.sandiford@arm.com>
2722 * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
2724 2019-06-07 Martin Liska <mliska@suse.cz>
2726 * doc/invoke.texi: Remove param.
2727 * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
2729 * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
2730 (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
2731 * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
2732 * profile.c (instrument_values): Remove
2733 HIST_TYPE_INDIR_CALL_TOPN.
2734 * tree-profile.c (init_ic_make_global_vars):
2735 Always build __gcov_indirect_call only.
2736 (gimple_init_gcov_profiler): Remove usage
2737 of PARAM_INDIR_CALL_TOPN_PROFILE.
2738 (gimple_gen_ic_profiler): Likewise.
2739 * value-prof.c (dump_histogram_value): Likewise.
2740 (stream_in_histogram_value): Likewise.
2741 (gimple_indirect_call_to_profile): Likewise.
2742 (gimple_find_values_to_profile): Likewise.
2743 * value-prof.h (enum hist_type): Likewise.
2745 2019-06-07 Martin Liska <mliska@suse.cz>
2747 * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
2750 2019-06-07 Martin Liska <mliska@suse.cz>
2752 PR tree-optimization/78902
2753 * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
2754 (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
2755 (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
2756 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
2757 (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
2758 (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
2759 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
2760 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
2761 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
2762 (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
2763 (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
2764 (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST): Remove.
2765 (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
2767 (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
2768 (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
2769 (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
2770 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
2771 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
2772 (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
2773 (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
2774 (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
2775 * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
2776 warn_unused_result attribute.
2777 (BUILT_IN_STRDUP): Likewise.
2778 (BUILT_IN_STRNDUP): Likewise.
2779 (BUILT_IN_ALLOCA): Likewise.
2780 (BUILT_IN_CALLOC): Likewise.
2781 (BUILT_IN_MALLOC): Likewise.
2782 (BUILT_IN_REALLOC): Likewise.
2784 2019-06-06 Jim Wilson <jimw@sifive.com>
2787 * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
2788 * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
2789 * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
2791 2019-06-06 Martin Sebor <msebor@redhat.com>
2793 * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
2794 (handle_builtin_malloc): Remove trailing spaces.
2795 (handle_builtin_memset): Same.
2796 (handle_builtin_memcmp): Same.
2797 (compute_string_length): Same.
2798 (determine_min_objsize): Same.
2799 (handle_builtin_string_cmp): Same.
2800 (handle_char_store): Same. Break up excessively long line.
2802 2019-06-06 Martin Jambor <mjambor@suse.cz>
2804 * tree-sra.c (build_reconstructed_reference): Drop the alignment
2807 2019-06-06 Martin Jambor <mjambor@suse.cz>
2809 * tree-sra.c (struct access): New field grp_same_access_path.
2810 (dump_access): Dump it.
2811 (build_reconstructed_reference): New function.
2812 (build_ref_for_model): Use it if possible.
2813 (path_comparable_for_same_access): New function.
2814 (same_access_path_p): Likewise.
2815 (sort_and_splice_var_accesses): Set the new flag.
2816 (analyze_access_subtree): Likewise.
2817 (propagate_subaccesses_across_link): Propagate zero value of the new
2818 flag down the access tree.
2820 2019-06-06 Andrew Stubbs <ams@codesourcery.com>
2822 * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
2823 * config/gcn/gcn.opt (gpu_type): Add gfx906.
2824 * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
2825 (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
2828 2019-06-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2830 PR tree-optimization/90332
2831 * config/aarch64/aarch64.c (aarch64_expand_vector_init):
2832 Handle VALS containing two vectors.
2833 * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
2835 (@aarch64_combinez<mode>): ... This.
2836 (*aarch64_combinez_be<mode>): Rename to...
2837 (@aarch64_combinez_be<mode>): ... This.
2838 (vec_init<mode><Vhalf>): New define_expand.
2839 * config/aarch64/iterators.md (Vhalf): Handle V8HF.
2841 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2843 * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
2844 library functions only when not optimizing for size.
2845 (ashlsi3): Likewise.
2846 (ashrhi3): Likewise.
2847 (ashrsi3): Likewise.
2848 (lshrhi3): Likewise.
2849 (lshrsi3): Likewise.
2851 2019-06-06 Andreas Krebbel <krebbel@linux.ibm.com>
2853 PR rtl-optimization/88751
2854 * ira.c (ira): Use the number of the actually referenced registers
2855 when calculating the threshold.
2857 2019-06-06 Jakub Jelinek <jakub@redhat.com>
2859 * configure: Regenerate.
2861 2019-06-06 Jozef Lawrynowicz <jozef.l@mittosystems.com>
2863 * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
2864 register if it is in memory, so the shift can be emulated with a rotate
2866 (ashrhi3): Likewise.
2867 (lshrhi3): Likewise.
2869 2019-06-06 Martin Liska <mliska@suse.cz>
2871 PR tree-optimization/87954
2872 * match.pd: Simplify mult where both arguments are 0 or 1.
2874 2019-06-06 Richard Biener <rguenther@suse.de>
2876 * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
2877 put equivalences on UNDEFINED ranges.
2878 * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
2879 Make sure to drop defs of stmts added during simplification
2882 2019-06-06 Richard Biener <rguenther@suse.de>
2884 * tree-ssa-structalias.c: Include tree-cfg.h.
2885 (make_heapvar): Do not make heap vars artificial.
2886 (find_func_aliases_for_builtin_call): Handle stack allocation
2888 (find_func_aliases): Delay processing of simple enough returns
2890 (set_uids_in_ptset): Adjust.
2891 (find_what_var_points_to): Likewise.
2892 (solve_constraints): Do not dump points-to sets here.
2893 (compute_points_to_sets): Post-process return statements,
2894 amending the escaped solution. Dump points-to sets afterwards.
2895 (ipa_pta_execute): Dump points-to sets.
2897 2019-06-06 Martin Liska <mliska@suse.cz>
2900 * doc/install.texi: Fix HTML headers and
2901 titles for 'Installing GCC' pages.
2903 2019-06-06 Martin Liska <mliska@suse.cz>
2905 * ipa-icf-gimple.h (dump_message_1): Remove.
2906 (dump_message): Likewise.
2907 (return_false_with_message_1): Print also file.
2908 (return_false_with_msg): Likewise.
2909 (return_with_result): Likewise.
2910 (return_with_debug): Likewise.
2911 * ipa-icf.c (sem_function::equals_private): Remove call
2914 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
2916 * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
2917 (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
2918 memory operand for it.
2919 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
2921 2019-06-05 Martin Sebor <msebor@redhat.com>
2923 * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
2924 Adjust quoting and hyphenation.
2925 * convert.c (convert_to_real_1): Same.
2926 * gcc.c (driver_wrong_lang_callback): Same.
2927 (driver::handle_unrecognized_options): Same.
2928 * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
2929 * opts-common.c (cmdline_handle_error): Same.
2930 (read_cmdline_option): Same.
2931 * opts-global.c (complain_wrong_lang): Same.
2932 (print_ignored_options): Same.
2933 (handle_common_deferred_options): Same.
2934 * pretty-print.h: Same.
2935 * print-rtl.c (debug_bb_n_slim): Same.
2936 * sched-rgn.c (make_pass_sched_fusion): Same.
2937 * tree-cfg.c (verify_gimple_assign_unary): Same.
2938 (verify_gimple_label): Same.
2939 * tree-ssa-operands.c (verify_ssa_operands): Same.
2940 * varasm.c (do_assemble_alias): Same.
2941 (assemble_alias): Same.
2943 2019-06-05 Richard Henderson <rth@twiddle.net>
2945 * config/alpha/alpha.c (direct_return): Move down after
2946 struct machine_function definition; use saved frame_size;
2948 (struct machine_function): Add sa_mask, sa_size, frame_size.
2949 (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
2950 (alpha_compute_frame_layout): ... new function.
2951 (TARGET_COMPUTE_FRAME_LAYOUT): New.
2952 (alpha_initial_elimination_offset): Use saved sa_size.
2953 (alpha_vms_initial_elimination_offset): Likewise.
2954 (alpha_vms_can_eliminate): Remove alpha_sa_size call.
2955 (alpha_expand_prologue): Use saved frame data. Merge integer
2956 and fp register save loops.
2957 (alpha_expand_epilogue): Likewise.
2958 (alpha_start_function): Use saved frame data.
2959 * config/alpha/alpha-protos.h (direct_return): Update.
2960 (alpha_sa_size): Remove.
2962 2019-06-05 Eric Botcazou <ebotcazou@adacore.com>
2964 * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
2965 multiplication by a power-of-two value.
2966 (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
2967 and turn the modulo operation into a masking operation.
2969 2019-06-05 Jakub Jelinek <jakub@redhat.com>
2972 * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
2973 with VOIDmode inner operands.
2975 2019-06-05 Richard Biener <rguenther@suse.de>
2978 * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2979 turn an expression graph into a tree.
2981 2019-06-05 Jakub Jelinek <jakub@redhat.com>
2983 * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
2985 (expand_parallel_call): If region->inner->has_lastprivate_conditional,
2986 treat it like explicit monotonic schedule modifier.
2987 (expand_omp_for): Initialize has_lastprivate_conditional.
2988 If fd.lastprivate_conditional != 0, treat it like explicit monotonic
2991 * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
2992 references, lookup in in hash map MEM_REF operand instead of the
2994 (lower_omp_1): When looking for lastprivate conditional assignments,
2995 handle MEM_REFs with REFERENCE_TYPE operands.
2997 * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
2998 on privatization clauses OMP_CLAUSE_DECL is privatized by reference
2999 and references a VLA. Handle references to non-VLAs if is_simd
3000 all privatization clauses like reductions.
3001 (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
3002 If omp_is_reference, use always omp simd arrays and set
3003 DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
3004 fails, emit reference initialization.
3006 2019-06-05 Hongtao Liu <hongtao.liu@intel.com>
3009 * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
3010 _mm_mask_fpclass_sd_mask): New intrinsics.
3011 (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
3012 * config/i386/i386-builtin.def
3013 (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
3015 (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
3016 * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
3017 DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
3018 * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
3019 case QI_FTYPE_V2SF_INT): Ditto.
3020 * config/i386/sse.md
3021 (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
3022 Extended to insnstructions with mask operands.
3024 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3026 * config/rs6000/constraints.md (define_register_constraint "wp"):
3028 (define_register_constraint "wq"): Delete.
3029 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3030 (rs6000_init_hard_regno_mode_ok): Adjust.
3031 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3032 RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
3033 * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
3034 (define_mode_attr VSa): Delete.
3035 (define_mode_attr VSisa): New.
3036 (rest of file): Adjust.
3037 * doc/md.texi (Machine Constraints): Adjust.
3039 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3041 * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
3042 (define_attr "enabled"): Handle those new isa values.
3044 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3046 * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
3047 (define_mode_attr VSr5): Delete.
3048 (define_mode_attr VStype_sqrt): Delete.
3049 (define_mode_iterator VSX_SPDP): Delete.
3050 (define_mode_attr VS_spdp_res): Delete.
3051 (define_mode_attr VS_spdp_insn): Delete.
3052 (define_mode_attr VS_spdp_type): Delete.
3053 (*vsx_sqrt<mode>2): Adjust.
3054 (vsx_<VS_spdp_insn>): Delete, split to...
3055 (vsx_xscvdpsp): ... this. New. And...
3056 (vsx_xvcvspdp): ... this. New. And...
3057 (vsx_xvcvdpsp): ... this. New.
3059 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3061 * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
3063 * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
3064 (rest of file): Adjust.
3066 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3068 * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
3069 (vsx_extract_<mode>_var): Ditto.
3071 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3073 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
3076 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3078 * config/rs6000/constraints.md (define_register_constraint "ww"):
3080 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3081 (rs6000_init_hard_regno_mode_ok): Adjust.
3082 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3083 RS6000_CONSTRAINT_ww.
3084 * config/rs6000/rs6000.md: Adjust.
3085 * config/rs6000/vsx.md: Adjust.
3086 * doc/md.texi (Machine Constraints): Adjust.
3088 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3090 * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
3091 (define_mode_attr sd): New.
3092 (define_mode_attr s): New.
3093 (define_mode_attr Ftrad): Delete.
3094 (define_mode_attr Fvsx): Delete.
3095 (define_mode_attr Fs): Delete.
3096 (rest of file): Use the new mode attributes.
3097 * config.rs6000/vsx.md: Use the new mode attributes.
3099 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3101 * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
3104 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3106 * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
3107 (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
3108 used with VSX_B, VSX_D, or VSX_F, with just "wa".
3110 2019-06-04 Bill Schmidt <wschmidt@linux.ibm.com>
3113 * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
3114 C++ with strict ANSI requirements.
3116 2019-06-04 Marc Glisse <marc.glisse@inria.fr>
3118 * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
3119 computations when step is 1.
3121 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3123 * config/rs6000/constraints.md (define_register_constraint "wf"):
3125 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3126 (rs6000_init_hard_regno_mode_ok): Adjust.
3127 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3128 RS6000_CONSTRAINT_wf.
3129 * config/rs6000/rs6000.md: Adjust.
3130 * config/rs6000/vsx.md: Adjust.
3131 * doc/md.texi (Machine Constraints): Adjust.
3133 2019-06-04 Andrew Pinski <apinski@marvell.com>
3135 * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
3138 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3140 * config/rs6000/constraints.md (define_register_constraint "wd"):
3142 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3143 (rs6000_init_hard_regno_mode_ok): Adjust.
3144 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3145 RS6000_CONSTRAINT_wd.
3146 * config/rs6000/rs6000.md: Adjust.
3147 * config/rs6000/vsx.md: Adjust.
3148 * doc/md.texi (Machine Constraints): Adjust.
3150 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3152 * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
3153 (rest of file): Adjust.
3155 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3157 * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
3158 (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
3159 (vsx_splat_<mode>_reg): Adjust.
3161 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3163 * config/rs6000/constraints.md (define_register_constraint "ws"):
3165 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3166 (rs6000_init_hard_regno_mode_ok): Adjust.
3167 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3168 RS6000_CONSTRAINT_ws.
3169 * config/rs6000/rs6000.md: Adjust.
3170 * config/rs6000/vsx.md: Adjust.
3171 * doc/md.texi (Machine Constraints): Adjust.
3173 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3175 * config/rs6000/constraints.md (define_register_constraint "wv"):
3177 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3178 (rs6000_init_hard_regno_mode_ok): Adjust.
3179 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3180 RS6000_CONSTRAINT_wv.
3181 * config/rs6000/rs6000.md: Adjust.
3182 * config/rs6000/vsx.md: Adjust.
3183 * doc/md.texi (Machine Constraints): Adjust.
3185 2019-06-04 Segher Boessenkool <segher@kernel.crashing.org>
3187 * config/rs6000/constraints.md (define_register_constraint "wi"):
3189 (define_register_constraint "wt"): Delete.
3190 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3191 (rs6000_init_hard_regno_mode_ok): Adjust.
3192 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3193 RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
3194 * config/rs6000/rs6000.md: Adjust.
3195 * config/rs6000/vsx.md: Adjust.
3196 * doc/md.texi (Machine Constraints): Adjust.
3198 2019-06-04 Szabolcs Nagy <szabolcs.nagy@arm.com>
3200 * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
3202 * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
3203 default_elf_asm_output_external.
3205 2019-06-04 Martin Liska <mliska@suse.cz>
3207 * ipa-icf.c (INCLUDE_LIST): Remove.
3208 (sem_item_optimizer::execute): Remove call to init_wpa.
3209 * ipa-icf.h (init_wpa): Remove.
3211 2019-06-04 Jakub Jelinek <jakub@redhat.com>
3213 * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
3214 conditional on combined for simd.
3215 * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
3217 (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
3218 constructs, don't remove lastprivate_conditional_map, but instead set
3219 ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
3220 to parent construct temporaries.
3221 (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
3222 like !ctx->lastprivate_conditional_map.
3223 (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
3224 use up->outer context instead of up.
3225 * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
3226 gimple_omp_for_combined_p.
3227 (expand_omp_for_static_nochunk): Likewise.
3228 (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
3229 probably moved over into expand_omp_for_generic rather than being copied
3232 2019-06-04 Martin Liska <mliska@suse.cz>
3234 * value-prof.c (dump_histogram_value): Fix typo.
3235 (gimple_mod_subtract_transform): Likewise.
3237 2019-06-04 Richard Biener <rguenther@suse.de>
3240 * tree-chrec.c (chrec_contains_symbols): Add to visited.
3241 (tree_contains_chrecs): Likewise.
3242 (chrec_contains_symbols_defined_in_loop): Move here and avoid
3243 exponential behaivor from ...
3244 * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3246 (expression_expensive_p): Avoid exponential behavior and compute
3247 expanded size, rejecting any expansion.
3248 * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
3249 (idx_contains_abnormal_ssa_name_p): Likewise.
3250 (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
3251 (contains_abnormal_ssa_name_p): Simplify and use
3252 walk_tree_without_duplicates.
3254 2019-06-04 Richard Biener <rguenther@suse.de>
3256 PR tree-optimization/90738
3258 2019-06-03 Richard Biener <rguenther@suse.de>
3260 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
3261 full reference tree and record in ref->ref.
3262 (vn_reference_lookup_3): Pass in original ref to
3263 ao_ref_init_from_vn_reference.
3264 (vn_reference_lookup): Likewise.
3265 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
3266 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3267 Handle non-decl bases in the original reference.
3269 2019-06-04 Martin Liska <mliska@suse.cz>
3271 * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
3272 number of references.
3273 (sem_item_optimizer::do_congruence_step):
3274 (sem_item_optimizer::worklist_push): Dump how references
3276 (sem_item_optimizer::worklist_pop): Use heap.
3277 (sem_item_optimizer::process_cong_reduction): Likewise.
3278 * ipa-icf.h: Use fibonacci_heap insteam of std::list.
3280 2019-06-04 Martin Liska <mliska@suse.cz>
3282 * ipa-icf.h (struct sem_usage_pair_hash): New.
3283 (sem_usage_pair_hash::hash): Likewise.
3284 (sem_usage_pair_hash::equal): Likewise.
3285 (struct sem_usage_hash): Likewise.
3286 * ipa-icf.c (sem_item::sem_item): Initialize
3287 referenced_by_count.
3288 (sem_item::add_reference): Register a reference
3289 in ref_map and not in target->usages.
3290 (sem_item::setup): Remove initialization of
3292 (sem_item::~sem_item): Remove usage of dead vectors.
3293 (sem_item::dump): Remove dump of references.
3294 (sem_item_optimizer::sem_item_optimizer): Initialize
3296 (sem_item_optimizer::read_section): Remove useless
3298 (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
3299 (sem_item_optimizer::build_graph): Pass m_references
3301 (sem_item_optimizer::verify_classes): Remove usage of dead
3303 (sem_item_optimizer::traverse_congruence_split): Return true
3304 when a class is split.
3305 (sem_item_optimizer::do_congruence_step_for_index): Use
3306 hash_map for look up of (sem_item *, index). That brings
3307 significant speed up.
3308 (sem_item_optimizer::do_congruence_step): Return true
3309 when a split is done.
3310 (congruence_class::is_class_used): Use referenced_by_count.
3312 2019-06-04 Alan Modra <amodra@gmail.com>
3315 * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
3318 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
3320 * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
3321 * config/rs6000/rs6000.c (direct_move_p): Adjust.
3322 (rs6000_secondary_reload_simple_move): Adjust.
3323 (rs6000_opt_masks): Neuter the "mfpgpr" option.
3324 * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
3325 * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
3328 * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
3329 (floatunssi<mode>2_lfiwzx): Adjust.
3330 (fix_trunc<mode>si2_stfiwx): Adjust.
3331 (fixuns_trunc<mode>si2_stfiwx): Adjust.
3332 * config/rs6000/rs6000.opt (mno-mfpgpr): New.
3333 (mfpgpr): Mark as deprecated.
3334 * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
3335 (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
3336 * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
3338 2019-06-03 Segher Boessenkool <segher@kernel.crashing.org>
3340 * config/rs6000/constraints.md (define_register_constraint "wg"):
3342 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3343 RS6000_CONSTRAINT_wg.
3344 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3345 (rs6000_init_hard_regno_mode_ok): Adjust.
3346 * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
3347 Delete "wg" alternatives.
3348 * doc/md.texi (Machine Constraints): Adjust.
3350 2019-06-03 Alan Modra <amodra@gmail.com>
3352 * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
3353 (get_uncond_jump_length): Assert length less than INT_MAX and
3356 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
3359 * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
3361 (expand_builtin_nonlocal_goto): Likewise.
3363 2019-06-03 Szabolcs Nagy <szabolcs.nagy@arm.com>
3365 * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
3366 (aarch64_asm_output_external): Declare.
3367 * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
3368 (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
3369 (aarch64_asm_output_alias): New.
3370 (aarch64_asm_output_external): New.
3371 * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3372 (ASM_OUTPUT_EXTERNAL): Define.
3374 2019-06-03 Aldy Hernandez <aldyh@redhat.com>
3375 * tree-vrp.h (value_range_base::nonzero_p): New.
3376 (value_range_base::set_nonnull): Rename to...
3377 (value_range_base::set_nonzero): ...this.
3378 (value_range_base::set_null): Rename to...
3379 (value_range_base::set_zero): ...this.
3380 (value_range::set_nonnull): Remove.
3381 (value_range::set_null): Remove.
3382 * tree-vrp.c (range_is_null): Remove.
3383 (range_is_nonnull): Remove.
3384 (extract_range_from_binary_expr): Use value_range_base::*zero_p
3385 instead of range_is_*null.
3386 (extract_range_from_unary_expr): Same.
3387 (value_range_base::set_nonnull): Rename to...
3388 (value_range_base::set_nonzero): ...this.
3389 (value_range::set_nonnull): Remove.
3390 (value_range_base::set_null): Rename to...
3391 (value_range_base::set_zero): ...this.
3392 (value_range::set_null): Remove.
3393 (extract_range_from_binary_expr): Rename set_*null uses to
3395 (extract_range_from_unary_expr): Same.
3396 (union_helper): Same.
3397 * vr-values.c (get_value_range): Use set_*zero instead of
3399 (vr_values::extract_range_from_binary_expr): Same.
3400 (vr_values::extract_range_basic): Same.
3402 2019-06-03 Wilco Dijkstra <wdijkstr@arm.com>
3405 * opts.c (parse_and_check_align_values): Allow 4 alignment values.
3407 2019-06-03 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
3409 * config/aarch64/iterators.md (MAX_OPP): New code attr.
3410 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to...
3411 (aarch64_<su>abd<mode>_3): ... This.
3412 (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
3414 2019-06-03 Richard Biener <rguenther@suse.de>
3416 * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
3417 full reference tree and record in ref->ref.
3418 (vn_reference_lookup_3): Pass in original ref to
3419 ao_ref_init_from_vn_reference.
3420 (vn_reference_lookup): Likewise.
3421 * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
3422 * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3423 Handle non-decl bases in the original reference.
3425 2019-06-03 Martin Liska <mliska@suse.cz>
3427 * doc/generic.texi: Remove Java Trees.
3429 2019-06-03 Martin Liska <mliska@suse.cz>
3431 * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
3432 returns 0 when operands are equal.
3434 2019-06-03 Richard Biener <rguenther@suse.de>
3436 PR tree-optimization/90716
3437 * tree-loop-distribution.c (destroy_loop): Process blocks in
3440 2019-06-03 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
3443 * vector-builder.h (vector_builder::count_dups): New method.
3444 * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
3446 * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
3447 (vec_init<mode><Vel>): New pattern.
3448 * config/aarch64/aarch64.c (emit_insr): New function.
3449 (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
3450 (aarch64_sve_expand_vector_init_insert_elems): Likewise.
3451 (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
3452 (aarch64_sve_expand_vector_init): Define two overloaded functions.
3454 2019-06-03 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3456 PR tree-optimization/90681
3457 * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
3458 * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
3459 special case for SLP, but fail on non-groupped loads.
3461 2019-06-03 Martin Liska <mliska@suse.cz>
3463 * cfg.c (debug): Use TDF_DETAILS for debug and
3464 print edge info only once.
3466 2019-06-02 Thomas Koenig <tkoenig@gcc.gnu.org>
3469 * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
3471 2019-06-01 Martin Sebor <msebor@redhat.com>
3474 * tree-pretty-print.c (dump_generic_node): Add parentheses.
3476 2019-05-31 Jan Hubicka <jh@suse.cz>
3478 * alias.c: Include ipa-utils.h.
3479 (get_alias_set): Try to complete ODR type via ODR type hash lookup.
3480 * ipa-devirt.c (prevailing_odr_type): New.
3481 * ipa-utils.h (previaling_odr_type): Declare.
3483 2019-05-31 H.J. Lu <hongjiu.lu@intel.com>
3484 Hongtao Liu <hongtao.liu@intel.com>
3487 * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
3488 NOTE_INSN_DELETED_LABEL check.
3490 2019-05-31 Prachi Godbole <prachi.godbole@imgtec.com>
3491 Robert Suchanek <robert.suchanek@mips.com>
3493 * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
3494 and 3rd operands of the fmadd/fmsub/maddv builtin.
3496 2019-05-31 Jakub Jelinek <jakub@redhat.com>
3498 * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
3499 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
3500 on OMP_SIMD if not nested inside of worksharing loop that also has
3501 lastprivate conditional clause for the same decl.
3502 (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
3503 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
3505 (lower_rec_input_clauses): Likewise. Handle lastprivate conditional
3507 (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
3509 (lower_lastprivate_clauses): Likewise.
3510 (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
3511 calling lower_rec_input_clauses.
3512 (lower_omp_for): Likewise.
3513 (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
3514 clause on simd construct.
3515 * omp-expand.c (expand_omp_simd): Initialize cond_var if
3516 OMP_CLAUSE__CONDTEMP_ clause is present.
3518 * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
3521 2019-05-31 Xiong Hu Luo <luoxhu@linux.ibm.com>
3524 * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
3525 TEX_D32, TEX_D64 or TEX_D128.
3527 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
3529 * match.pd (~(vec?cst1:cst2)): New transformation.
3531 2019-05-31 Marc Glisse <marc.glisse@inria.fr>
3533 * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
3534 ((size_t)(A /[ex] B) CMP C): New transformation.
3536 2019-05-31 Richard Sandiford <richard.sandiford@arm.com>
3538 * doc/md.texi: Document define_insn_and_rewrite.
3539 * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
3540 * gensupport.c (queue_elem): Update comment.
3541 (replace_operands_with_dups): New function.
3542 (gen_rewrite_sequence): Likewise.
3543 (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
3544 * read-rtl.c (apply_subst_iterator): Likewise.
3545 (add_condition_to_rtx, named_rtx_p): Likewise.
3546 (rtx_reader::read_rtx_operand): Likewise.
3547 * config/aarch64/aarch64-sve.md
3548 (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
3549 (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
3550 define_insn_and_rewrite.
3551 (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
3552 Remove separate define_split.
3554 2019-05-31 Jan Hubicka <jh@suse.cz>
3556 * tree-ssa-alias.c (type_has_components_p): New function.
3557 (aliasing_component_refs_p): Use it.
3559 2019-05-31 Martin Liska <mliska@suse.cz>
3561 * gdbhooks.py: Add const_tree to TreePrinter.
3563 2019-05-31 Thomas De Schampheleire <thomas.de_schampheleire@nokia.com>
3566 * common.opt (feliminate-unused-debug-symbols): Enable by default.
3567 * doc/invoke.texi (Debugging Options): Document new default of
3568 -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
3570 2019-05-31 Jakub Jelinek <jakub@redhat.com>
3572 PR tree-optimization/90671
3573 * tree-ssa-threadupdate.c (ssa_create_duplicates): If
3574 template_block used to be empty on the first call, don't use
3575 gsi_split_seq_after and gsi_insert_seq_after, but remember whole
3576 seq with bb_seq and set it with set_bb_seq.
3578 2019-05-31 Iain Sandoe <iain@sandoe.co.uk>
3580 * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
3582 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
3583 Michael Meissner <meissner@linux.ibm.com>
3585 * config/rs6000/predicates.md (pcrel_address): New define_predicate.
3586 (prefixed_mem_operand): Likewise.
3587 (non_prefixed_mem_operand): Likewise.
3588 * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
3590 * config/rs6000/rs6000.c (print_operand_address): Handle
3591 PC-relative addresses.
3592 (mode_supports_prefixed_address_p): New function.
3593 (rs6000_prefixed_address): New function.
3594 * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
3595 (SYMBOL_REF_PCREL_P): Likewise.
3597 2019-05-30 Jakub Jelinek <jakub@redhat.com>
3599 * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
3600 (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
3601 (gimplify_omp_for): If worksharing loop with lastprivate conditional
3602 is nested inside of parallel region, add _condtemp_ clause to both.
3603 * tree-nested.c (convert_nonlocal_omp_clauses,
3604 convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
3606 * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
3608 * omp-general.c (omp_extract_for_data): Compute it.
3609 * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
3610 (lower_rec_input_clauses): Likewise.
3611 (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
3612 clause is already present, just add one further one after it.
3613 (lower_lastprivate_clauses): Handle cond_ptr with array type.
3614 (lower_send_shared_vars): Clear _condtemp_ vars.
3615 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
3616 or section or taskgroup.
3617 * omp-expand.c (determine_parallel_type): Disallow combining only if
3618 first OMP_CLAUSE__CONDTEMP_ has pointer type. Disallow combining
3619 of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
3620 (expand_omp_for_generic, expand_omp_for_static_nochunk,
3621 expand_omp_for_static_chunk, expand_omp_for): Use
3622 fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
3623 determine if a special set of API routines are needed and if condtemp
3624 needs to be initialized, while always initialize cond_var if
3625 fd->lastprivate_conditional is non-zero.
3627 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
3628 Michael Meissner <meissner@linux.ibm.com>
3630 * config/rs6000/constraints.md (eI): New constraint.
3631 * config/rs6000/predicates.md (cint34_operand): New predicate.
3632 * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
3633 (SIGNED_34BIT_OFFSET_P): Likewise.
3634 * doc/md.texi (eI): Document constraint.
3636 2019-05-30 Sylvia Taylor <sylvia.taylor@arm.com>
3638 * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
3640 2019-05-30 Bill Schmidt <wschmidt@linux.ibm.com>
3641 Michael Meissner <meissner@linux.ibm.com>
3643 * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
3644 (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
3645 (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
3646 (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
3647 (OTHER_FUTURE_MASKS): Likewise.
3648 (POWERPC_MASKS): Likewise.
3649 * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
3650 specified without -mprefixed-addr or -mcpu=future. Error if
3651 -mprefixed-addr is specified without -mcpu=future.
3652 (rs6000_opt_masks): Add entry for prefixed-addr.
3653 * rs6000.opt (mprefixed-addr): New option.
3655 2019-05-30 Sam Tebbs <sam.tebbs@arm.com>
3657 * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add
3658 cfun->is_thunk check.
3660 2019-05-30 Jakub Jelinek <jakub@redhat.com>
3662 * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
3665 2019-05-30 Martin Liska <mliska@suse.cz>
3667 * gdbinit.in: Fix 'ptc' command. Add trt
3668 that prints TREE_TYPE($).
3670 2019-05-29 Bill Schmidt <wschmidt@linux.ibm.com>
3671 Alan Modra <amodra@gmail.com>
3673 * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
3675 (rs6000_indirect_call_template_1): ...and here.
3676 (rs6000_pltseq_template): Handle plt_pcrel34. Rework tocsave,
3677 plt16_ha, plt16_lo, mtctr indirect calls. Use
3679 (rs6000_decl_ok_for_sibcall): New function.
3680 (rs6000_function_ok_for_sibcall): Refactor.
3681 (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
3682 (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
3683 when pcrel. Reorganize.
3684 (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
3685 * rs6000.h (rs6000_pltseq_enum): New enum.
3686 * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
3687 (*pltseq_tocsave): Use rs6000_pltseq_enum.
3688 (*pltseq_plt16_ha): Likewise.
3689 (*pltseq_plt16_lo): Likewise.
3690 (*pltseq_mtctr): Likewise.
3691 (*pltseq_plt_pcrel): New insn.
3692 (*call_local_aix): Handle @notoc calls.
3693 (*call_value_local_aix): Likewise.
3694 (*call_nonlocal_aix): Adjust lengths for pcrel calls.
3695 (*call_value_nonlocal_aix): Likewise.
3696 (*call_indirect_pcrel): New insn.
3697 (*call_value_indirect_pcrel): Likewise.
3700 2019-05-29 Uroš Bizjak <ubizjak@gmail.com>
3702 * config/i386/sse.md (*save_multiple<mode>): Rename from
3703 save_multiple<mode>.
3704 (*restore_multiple<mode>): Rename from restore_multiple<mode>.
3705 (*restore_multiple_and_return<mode>): Rename from
3706 restore_multiple_and_return<mode>.
3707 (*restore_multiple_leave_return<mode>): Rename from
3708 restore_multiple_leave_return<mode>.
3710 2019-05-29 Yoshinori Sato <ysato@users.sourceforge.jp>
3712 * config.gcc (rx-*-linux*): New target.
3713 * config/rx/elf.opt: New file.
3714 * config/rx/linux.h: Likewise.
3715 * config/rx/t-linux: Likewise.
3716 * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
3718 * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
3719 (ASM_APP_OFF): Likewise.
3720 * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
3723 2019-05-29 Jan Hubicka <jh@suse.cz>
3725 * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
3726 variants are pointer equivalent.
3728 2019-05-29 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3730 * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
3731 * config/aarch64/aarch64-sve2.md: New file.
3732 (<u>avg<mode>3_floor): New pattern.
3733 (<u>avg<mode>3_ceil): Likewise.
3734 (*<sur>h<addsub><mode>): Likewise.
3735 * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
3736 * config/aarch64/aarch64.md: Include aarch64-sve2.md.
3738 2019-05-29 Jakub Jelinek <jakub@redhat.com>
3741 * optc-save-gen.awk: In cl_optimization_print, use correct condition
3742 for var_opt_string printing. In cl_optimization_print_diff, print
3743 (null) instead of invoking undefined behavior if one of the
3744 var_opt_string pointers is NULL and use && instead of first || in the
3745 guarding condition. For var_target_other options, handle const char *
3746 target variables similarly to const char * optimize node variables.
3748 2019-05-29 Sam Tebbs <sam.tebbs@arm.com>
3750 * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
3751 AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
3752 * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
3753 Add autib1716 and pacib1716 initialisation.
3754 * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
3755 for autib1716 and pacib1716.
3756 * config/aarch64/aarch64-protos.h (aarch64_key_type,
3757 aarch64_post_cfi_startproc): Define.
3758 * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
3759 * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
3760 aarch64_handle_pac_ret_protection): Set default sign key to A.
3761 * config/aarch64/aarch64.c (aarch64_expand_epilogue,
3762 aarch64_expand_prologue): Add check for b-key.
3763 * config/aarch64/aarch64.c (aarch64_ra_sign_key,
3764 aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
3765 * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
3766 * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
3767 * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
3768 UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
3769 UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
3770 * config/aarch64/aarch64.md (do_return): Add check for b-key.
3771 * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
3772 pauth_hint_num_a with pauth_hint_num.
3773 * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
3774 pauth_hint_num_a with pauth_hint_num.
3775 * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
3776 * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
3777 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
3778 * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
3779 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
3780 * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
3781 UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
3782 UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
3783 * config/aarch64/iterators.md (pauth_hint_num_a): Replace
3784 UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
3785 UNSPEC_AUTIA1716 respectively.
3786 * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
3787 and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
3788 * doc/invoke.texi (-mbranch-protection): Add b-key type.
3789 * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
3790 UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
3792 2019-05-29 Jakub Jelinek <jakub@redhat.com>
3794 * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
3795 (gimplify_scan_omp_clauses): Initialize ctx->clauses.
3796 (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
3797 explicit clause on combined parallel into implicit shared clause.
3798 (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
3799 and firstprivate if the decl has one too from combined parallel to
3800 the worksharing construct.
3802 2019-05-28 Bill Schmidt <wschmidt@linux.ibm.com>
3803 Michael Meissner <meissner@linux.ibm.com>
3805 * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
3807 2019-05-28 Michael Meissner <meissner@linux.ibm.com>
3809 * rtl.h (LABEL_REF_P): New #define.
3811 2019-05-28 John David Anglin <danglin@gcc.gnu.org>
3813 * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
3815 2019-05-28 Alejandro Martinez <alejandro.martinezvicente@arm.com>
3817 * internal-fn.c: Marked mask_load_direct as vectorizable.
3818 * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
3819 * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
3820 combined even if masks different with allow_slp_p param.
3821 (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
3822 * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
3823 dissolve SLP-only vectorizable groups when SLP has been discarded.
3824 (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
3825 * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
3827 (vect_build_slp_tree_1): Fixed comment typo.
3828 (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
3829 * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
3831 * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
3833 * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
3835 2019-05-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
3837 * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
3838 Remove obsolete use_thunk reference.
3839 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
3840 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3841 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
3842 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
3843 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
3844 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3845 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3846 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
3847 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
3849 2019-05-28 Nathan Sidwell <nathan@acm.org>
3851 * tree.h (IDENTIFIER_ANON_P): New.
3852 (anon_aggrname_format, anon_aggname_p): Don't declare.
3853 (make_anon_name): Declare.
3854 * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
3855 (hash_tree): Likewise.
3856 * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
3857 * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
3858 (anon_cnt, make_anon_name): New.
3860 2019-05-28 Martin Liska <mliska@suse.cz>
3863 * opts-global.c (decode_options): Print help for all
3864 help_option_arguments.
3865 * opts.c (print_help): Add new argument.
3866 (common_handle_option): Remember all values into
3867 help_option_arguments.
3868 * opts.h (print_help): Add new argument.
3870 2019-05-28 Martin Liska <mliska@suse.cz>
3873 * ipa-icf-gimple.c (func_checker::compare_loops): New function.
3874 * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
3875 (func_checker::compare_bb): Call compare_loops.
3877 2019-05-27 Jakub Jelinek <jakub@redhat.com>
3879 * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
3880 on sections construct.
3881 * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
3883 (lower_omp_sections): Handle lastprivate conditional.
3884 (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
3885 lastprivate_conditional_map.
3886 * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
3888 * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
3889 critical, taskgroup and section regions when looking for a region
3890 with non-NULL lastprivate_conditional_map.
3892 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
3894 * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
3895 (*ix86_gen_sub3): Ditto.
3896 (*ix86_gen_sub3_carry): Ditto.
3897 (*ix86_gen_one_cmpl2): Ditto.
3898 (*ix86_gen_andsp): Ditto.
3899 (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
3900 (gen_and2_insn): New static function.
3901 (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
3902 Use gen_add3_insn instead of ix86_gen_add3.
3903 (ix86_expand_split_stack_prologue): Use gen_add2_insn
3904 instead of ix86_gen_add3.
3905 (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
3906 Use gen_sub3_insn instead of ix86_gen_sub3.
3907 * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
3908 instead of ix86_gen_add3.
3909 (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
3910 ix86_gen_add3. Use gen_sub3_insn instead of ix86_gen_sub3.
3911 (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
3912 * config/i386/i386-options.c (ix86_option_override_internal):
3913 Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
3914 ix86_gen_one_cmpl2 and ix86_gen_andsp.
3916 2019-05-27 Eric Botcazou <ebotcazou@adacore.com>
3918 * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
3919 and DW_OP_GNU_const_index opcodes.
3921 2019-05-27 Uroš Bizjak <ubizjak@gmail.com>
3923 * config/i386/i386.h (STACK_SIZE_MODE): Define.
3925 2019-05-27 Richard Biener <rguenther@suse.de>
3927 PR tree-optimization/90637
3928 * tree-ssa-sink.c (statement_sink_location): Honor the
3929 computed sink location for single-uses.
3931 2019-05-27 Richard Biener <rguenther@suse.de>
3934 * match.pd (vec_perm): Avoid clobbering op0 when not generating
3937 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
3939 * config/i386/i386.md (@sub<mode>3_carry): Rename
3940 from sub<mode>3_carry.
3941 (@leave_<mode>): New expander.
3942 (*leave): Rename from leave.
3943 (*leave_rex64): Rename from leave_rex64.
3944 (@monitorx_<mode>): Rename from monitorx_<mode>.
3945 (@clzero_<mode>): Rename from clzero_<mode>.
3946 * config/i386/sse.md (@sse3_monitor_<mode>): Rename
3947 from sse3_monitor_<mode>.
3948 * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
3949 (*ix86_gen_leave): Ditto.
3950 (*ix86_gen_monitor): Ditto.
3951 (*ix86_gen_monitorx): Ditto.
3952 (*ix86_gen_clzero): Ditto.
3953 (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
3954 * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
3955 Use gen_sub3_carry instead of ix86_gen_sub3_carry.
3956 (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
3957 Use gen_sse3_monitor instead of ix86_gen_monitor.
3958 <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
3959 instead of ix86_gen_monitorx.
3960 <case IX86_BUILTIN_CLZERO>: Use gen_clzero
3961 instead of ix86_gen_clzero.
3962 * config/i386/i386-options.c (ix86_option_override_internal):
3963 Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
3964 ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
3966 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
3968 * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
3969 Rename from tls_global_dynamic_64_<mode>.
3970 (@tls_local_dynamic_base_64_<mode>): Rename from
3971 tls_local_dynamic_base_64_<mode>.
3972 * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
3973 Remove indirect function.
3974 (*ix86_gen_tls_local_dynamic_base_64): Ditto.
3975 (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
3976 instead of ix86_gen_tls_global_dynamic_64.
3977 Use gen_tls_local_dynamic_base_64 instead of
3978 ix86_gen_tls_local_dynamic_base_64.
3979 * config/i386/i386-options.c (ix86_option_override_internal):
3980 Do not initialize ix86_gen_tls_global_dynamic_64 and
3981 ix86_gen_tls_local_dynamic_base_64.
3983 2019-05-26 Uroš Bizjak <ubizjak@gmail.com>
3985 * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
3986 Rename from pro_epilogue_adjust_stack_<mode>_add.
3987 (@pro_epilogue_adjust_stack_sub_<mode>)
3988 Rename from pro_epilogue_adjust_stack_<mode>_sub.
3989 (@allocate_stack_worker_probe_<mode>):
3990 Rename from allocate_stack_worker_probe_<mode>.
3991 (allocate_stack): Use gen_allocate_stack_worker_probe.
3992 (probe_stack): Use gen_probe_stack_1.
3993 (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
3994 (@adjust_stack_and_probe_<mode>): Rename from
3995 adjust_stack_and_probe<mode>.
3996 (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
3997 (stack_protect_set): Use gen_stack_protect_set_1.
3998 (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
3999 (stack_protect_test): Use gen_stack_protect_test_1.
4000 (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
4001 * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
4002 Remove indirect function.
4003 (*ix86_gen_adjust_stack_and_probe): Ditto.
4004 (*ix86_gen_probe_stack_range): Ditto.
4005 (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
4006 instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
4007 (ix86_adjust_stack_and_probe_stack_clash): Use
4008 gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
4009 (ix86_adjust_stack_and_probe): Ditto.
4010 (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
4011 of ix86_gen_probe_stack_range.
4012 (ix86_expand_prologue): Use gen_pro_epilogue_adjust_stack_sub
4013 instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
4014 * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
4015 Include insn-opinit.h. Use code_for_stack_protect_test_1 instead of
4016 CODE_FOR_stack_protect_test_{si,di}.
4017 * config/i386/i386-options.c (ix86_option_override_internal):
4018 Do not initialize ix86_gen_allocate_stack_worker,
4019 ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
4021 2019-05-26 Gerald Pfeifer <gerald@pfeifer.com>
4023 * doc/invoke.texi (Link Options): Many editorial changes around
4026 2019-05-26 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4028 * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
4029 pre-Solaris 11 referene and most Studio compiler details.
4031 2019-05-24 John David Anglin <danglin@gcc.gnu.org>
4034 * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
4035 DImode to SImode in floating-point registers on 64-bit target.
4036 * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
4037 register_operand in xmpyu patterns.
4039 2019-05-24 Jakub Jelinek <jakub@redhat.com>
4041 * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
4042 * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
4043 OMP_CLAUSE__REDUCTEMP_.
4044 * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
4045 OMP_CLAUSE__CONDTEMP_.
4046 (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
4047 * tree-pretty-print.c (dump_omp_clause): Likewise.
4048 * tree-nested.c (convert_nonlocal_omp_clauses,
4049 convert_local_omp_clauses): Likewise.
4050 * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
4051 instead of decimal. Add GOVD_LASTPRIVATE_CONDITIONAL.
4052 (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
4054 (gimplify_omp_for): Warn and disable conditional modifier from
4055 lastprivate on loop iterators.
4056 * omp-general.h (struct omp_for_data): Add lastprivate_conditional
4058 * omp-general.c (omp_extract_for_data): Initialize it.
4059 * omp-low.c (struct omp_context): Add lastprivate_conditional_map
4061 (delete_omp_context): Delete it.
4062 (lower_lastprivate_conditional_clauses): New function.
4063 (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
4064 handle lastprivate conditional clauses.
4065 (lower_reduction_clauses): Add CLIST argument, emit it into
4066 the critical section if any.
4067 (lower_omp_sections): Adjust lower_lastprivate_clauses and
4068 lower_reduction_clauses callers.
4069 (lower_omp_for_lastprivate): Add CLIST argument, pass it through
4070 to lower_lastprivate_clauses.
4071 (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
4072 lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
4073 clist into a critical section if not emitted there already by
4074 lower_reduction_clauses.
4075 (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
4077 (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
4078 conditional variables.
4079 * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
4081 (expand_omp_for_generic, expand_omp_for_static_nochunk,
4082 expand_omp_for_static_chunk): Handle lastprivate conditional.
4083 (expand_omp_for): Handle fd.lastprivate_conditional like
4086 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
4088 * config/gcn/gcn-run.c (main): Set a non-zero return value if the
4089 kernel does not exit cleanly.
4090 * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
4092 2019-05-24 Jason Merrill <jason@redhat.com>
4095 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
4097 2019-05-24 Richard Biener <rguenther@suse.de>
4100 * tree-loop-distribution.c (struct partition): Add location
4102 (partition_alloc): Initialize all fields.
4103 (generate_memset_builtin): Use the location recorded in the
4104 partition for the generated call.
4105 (generate_memcpy_builtin): Likewise.
4106 (classify_partition): Record the location of a single store
4107 as location for the partition.
4109 2019-05-24 Andrew Stubbs <ams@codesourcery.com>
4111 * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
4114 2019-05-24 Matthew Malcomson <matthew.malcomson@arm.com>
4117 * common/config/aarch64/aarch64-common.c
4118 (aarch64_rewrite_selected_cpu): Change local temporary variable
4119 type from unsigned long to uint64_t.
4120 * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
4121 aarch64_get_extension_string_for_isa_flags): Change declaration to
4122 match new definition by replacing unsigned long with uint64_t.
4124 2019-05-24 Jakub Jelinek <jakub@redhat.com>
4127 * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
4128 gen_attr_type just once instead of 4-7 times. Formatting fixes.
4129 Handle stack_protect_test_<mode> codegen similarly to corresponding
4132 2019-05-23 Iain Sandoe <iain@sandoe.co.uk>
4134 * config/i386/darwin.h: Reject -mfentry*.
4135 * doc/sourcebuild.texi: Document mfentry target support.
4137 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
4139 * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
4140 Rename to rs6000_global_entry_point_prologue_needed_p. Return
4141 false for PC-relative functions.
4142 (rs6000_output_function_prologue): Change called function name to
4143 rs6000_global_entry_point_prologue_needed_p. Emit ".localentry
4144 name,1" for PC-relative functions.
4145 (rs6000_elf_declare_function_name): Change called function name to
4146 rs6000_global_entry_point_prologue_needed_p.
4148 2019-05-23 Uroš Bizjak <ubizjak@gmail.com>
4151 * config/i386/i386.c (gen_rtx_cost):
4152 Use ix86_tune_cost instead of ix86_cost.
4154 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
4155 Michael Meissner <meissner@linux.ibm.com>
4156 Segher Boessenkool <segher@kernel.crashing.org>
4158 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
4160 (POWERPC_MASKS): Add OPTION_MASK_PCREL.
4161 * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
4162 (rs6000_fndecl_pcrel_p): Likewise.
4163 * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
4164 error if -mpcrel is requested without -mcpu=future.
4165 (rs6000_opt_masks): Add entry for pcrel.
4166 (rs6000_fndecl_pcrel_p): New function.
4167 (rs6000_pcrel_p): Likewise.
4168 * config/rs6000/rs6000.opt (mpcrel): New option.
4169 * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
4171 2019-05-23 Jan Hubicka <jh@suse.cz>
4172 Martin Liska <mliska@suse.cz>
4174 PR tree-optimization/90576
4175 * tree-ssa-alias.c (compare_sizes): Remove dead calls to
4177 (aliasing_component_refs_p): Fix three way size compare conditional;
4178 give up earlier in case we can not decide on equivalence.
4180 2019-05-23 Bill Schmidt <wschmidt@linux.ibm.com>
4181 Michael Meissner <meissner@linux.ibm.com>
4182 Segher Boessenkool <segher@kernel.crashing.org>
4184 * config.gcc: Add future cpu.
4185 * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
4186 * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
4188 (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
4189 (RS6000_CPU): New instantiation for future cpu.
4190 * config/rs6000/rs6000-opts.h (enum processor_type): Add
4192 * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
4193 PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
4194 * config/rs6000/rs6000-tables.opt: Regenerate.
4195 * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
4196 PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
4197 (rs6000_machine_from_flags): Handle future cpu.
4198 (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
4199 PROCESSOR_POWER9 for now.
4200 (rs6000_adjust_cost): Likewise.
4201 (rs6000_issue_rate): Likewise.
4202 (rs6000_register_move_cost): Likewise.
4203 (rs6000_opt_masks): Add entry for future.
4204 * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
4205 (MASK_FUTURE): New #define.
4206 * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
4207 * config/rs6000/rs6000.opt (mfuture): New target option.
4208 * doc/invoke.texi (mcpu): Add future cpu.
4210 2019-05-23 Martin Liska <mliska@suse.cz>
4213 * tree-ssa-uninit.c (value_sat_pred_p): The result of &
4214 operation points to a temporary (pointed via tree_to_wide_ref)
4215 that is out of scope after the &.
4217 2019-05-23 Jonathan Wakely <jwakely@redhat.com>
4220 * doc/extend.texi (Function Names): Add missing word.
4222 2019-05-23 Richard Biener <rguenther@suse.de>
4224 PR tree-optimization/88440
4225 * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
4227 * tree-loop-distribution.c (generate_memset_builtin): Fold the
4229 (generate_memcpy_builtin): Likewise.
4230 (distribute_loop): Pass in whether to only distribute patterns.
4231 (prepare_perfect_loop_nest): Also allow size optimization.
4232 (pass_loop_distribution::execute): When optimizing a loop
4233 nest for size allow pattern replacement.
4235 2019-05-23 Jakub Jelinek <jakub@redhat.com>
4238 * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
4241 2019-05-23 Martin Liska <mliska@suse.cz>
4244 * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
4245 expression similarly to gimplify_decl_expr.
4247 2019-05-23 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
4249 * cse.c (cse_dump_path): s/dump_file/f.
4251 2019-05-22 David Malcolm <dmalcolm@redhat.com>
4254 * diagnostic-format-json.cc: Include "selftest.h".
4255 (json_from_expanded_location): Only add "file" key for non-NULL
4257 (json_from_location_range): Don't add "start" and "finish"
4258 children if they are UNKNOWN_LOCATION.
4259 (selftest::test_unknown_location): New selftest.
4260 (selftest::test_bad_endpoints): New selftest.
4261 (selftest::diagnostic_format_json_cc_tests): New function.
4262 * json.cc (json::object::get): New function.
4263 (selftest::test_object_get): New selftest.
4264 (selftest::json_cc_tests): Call it.
4265 * json.h (json::object::get): New decl.
4266 * selftest-run-tests.c (selftest::run_tests): Call
4267 selftest::diagnostic_format_json_cc_tests.
4268 * selftest.h (selftest::diagnostic_format_json_cc_tests): New
4271 2019-05-22 Kwok Cheung Yeung <kcy@codesourcery.com>
4272 Andrew Stubbs <amd@codesourcery.com>
4274 * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
4275 * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
4276 (kernel): Rename to...
4277 (main_kernel): ... this.
4278 (load_image): Load _init_array and _fini_array kernels.
4279 (run): Add argument for kernel to run.
4280 (main): Run init_array_kernel before main_kernel, and
4281 fini_array_kernel after.
4282 * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
4283 amdgpu_hsa_kernel attribute on functions.
4284 (gcn_disable_constructors): Delete.
4285 (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
4286 * config/gcn/crt0.c (size_t): Define.
4287 (_init_array, _fini_array): New.
4288 (__preinit_array_start, __preinit_array_end,
4289 __init_array_start, __init_array_end,
4290 __fini_array_start, __fini_array_end): Declare weak references.
4292 2019-05-22 Andrew Stubbs <ams@codesourcery.com>
4294 * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
4296 2019-05-22 Jason Merrill <jason@redhat.com>
4298 * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
4300 2019-05-22 H.J. Lu <hongjiu.lu@intel.com>
4303 * config/i386/i386-options.c (ix86_init_machine_status): Set
4304 stack_frame_required to true.
4305 * config/i386/i386.c (ix86_get_frame_size): New function.
4306 (ix86_frame_pointer_required): Replace get_frame_size with
4307 ix86_get_frame_size.
4308 (ix86_compute_frame_layout): Likewise.
4309 (ix86_find_max_used_stack_alignment): Changed to void. Set
4310 stack_frame_required.
4311 (ix86_finalize_stack_frame_flags): Always call
4312 ix86_find_max_used_stack_alignment. Replace get_frame_size with
4313 ix86_get_frame_size.
4314 * config/i386/i386.h (machine_function): Add stack_frame_required.
4316 2019-05-22 Uroš Bizjak <ubizjak@gmail.com>
4318 * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
4320 2019-05-22 Matthew Malcomson <matthew.malcomson@arm.com>
4322 * common/config/aarch64/aarch64-common.c
4323 (struct aarch64_option_extension, struct processor_name_to_arch,
4324 struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
4325 aarch64_contains_opt,
4326 aarch64_get_extension_string_for_isa_flags): Change type of
4327 variables storing flags to uint64_t.
4328 * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
4329 sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
4330 * config/aarch64/aarch64.c (struct processor,
4331 aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
4332 aarch64_validate_march, aarch64_override_options,
4333 aarch64_option_print, aarch64_handle_attr_isa_flags,
4334 aarch64_declare_function_name, aarch64_start_file): Make flag
4336 * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
4337 AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
4338 AARCH64_FL_SVE2_BITPERM): New macro feature flags.
4339 * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
4340 * config/aarch64/driver-aarch64.c
4341 (struct aarch64_arch_extension, struct aarch64_core_data,
4342 struct aarch64_arch_driver_info, host_detect_local_cpu): Make
4343 flag variables uint64_t.
4344 * doc/invoke.texi: Add documentation for new arguments.
4346 2019-05-22 Richard Biener <rguenther@suse.de>
4348 * alias.c (ao_ref_from_mem): Move stack-slot sharing
4350 * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
4352 2019-05-22 Martin Liska <mliska@suse.cz>
4355 * doc/extend.texi: Document the change.
4357 2019-05-22 Richard Biener <rguenther@suse.de>
4359 PR tree-optimization/90450
4360 * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
4361 (mem_ref_hasher::equal): Check it.
4362 (mem_ref_alloc): Initialize it.
4363 (gather_mem_refs_stmt): Set it.
4365 2019-05-22 Richard Biener <rguenther@suse.de>
4367 * gimple-fold.c (arith_code_with_undefined_signed_overflow):
4369 (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
4372 2019-05-22 Alan Modra <amodra@gmail.com>
4374 * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
4375 (ASM_CPU_SPEC): Conditionally add -many.
4376 * config/rs6000/rs6000.c (rs6000_machine): New static var.
4377 (rs6000_machine_from_flags, emit_asm_machine): New functions..
4378 (rs6000_file_start): ..extracted from here, and modified to
4380 (rs6000_output_function_prologue): Emit .machine as necessary.
4381 * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
4383 * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
4384 added by check_vect_support_and_set_flags.
4385 * testsuite/gcc.dg/vect/pr48765.c: Likewise.
4386 * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
4388 2019-05-22 Hans-Peter Nilsson <hp@axis.com>
4391 * ira-lives.c (process_bb_node_lives): Consider defs
4392 for a call insn to be die before the call, not after.
4394 * function.c (assign_parm_setup_block): Raise alignment of
4395 stacked parameter only for STRICT_ALIGNMENT targets.
4397 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
4399 * config/rs6000/constraints.md (define_register_constraint "wz"):
4401 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4402 RS6000_CONSTRAINT_wz.
4403 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4404 (rs6000_init_hard_regno_mode_ok): Adjust.
4405 * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
4406 * doc/md.texi (Machine Constraints): Adjust.
4408 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
4410 * config/rs6000/constraints.md (define_register_constraint "wl"):
4412 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4413 RS6000_CONSTRAINT_wl.
4414 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4415 (rs6000_init_hard_regno_mode_ok): Adjust.
4416 * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
4417 * doc/md.texi (Machine Constraints): Adjust.
4419 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
4421 * config/rs6000/constraints.md (define_register_constraint "wm"):
4423 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4424 RS6000_CONSTRAINT_wm.
4425 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4426 (rs6000_init_hard_regno_mode_ok): Adjust.
4427 * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
4428 * doc/md.texi (Machine Constraints): Adjust.
4430 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
4432 * config/rs6000/constraints.md (define_register_constraint "wk"):
4434 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4435 RS6000_CONSTRAINT_wk.
4436 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4437 (rs6000_init_hard_regno_mode_ok): Adjust.
4438 * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
4439 * doc/md.texi (Machine Constraints): Adjust.
4441 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
4443 * config/rs6000/constraints.md (define_register_constraint "wj"):
4445 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4446 RS6000_CONSTRAINT_wj.
4447 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4448 (rs6000_init_hard_regno_mode_ok): Adjust.
4449 * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
4451 * config/rs6000/vsx.md: Ditto.
4452 * doc/md.texi (Machine Constraints): Adjust.
4454 2019-05-21 Segher Boessenkool <segher@kernel.crashing.org>
4456 * config/rs6000/constraints.md (define_register_constraint "wh"):
4458 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4459 RS6000_CONSTRAINT_wh.
4460 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4461 (rs6000_init_hard_regno_mode_ok): Adjust.
4462 * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
4463 * doc/md.texi (Machine Constraints): Adjust.
4465 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
4468 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
4469 Avoid calling gen_lowpart with CONST operand.
4471 2019-05-21 Alexandre Oliva <aoliva@redhat.com>
4473 * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
4474 field template_last_to_copy.
4475 (ssa_create_duplicates): Set it, and use it. Attempt to
4476 preserve more debug stmts.
4478 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
4480 * config/i386/sse.md (VF1_AVX2): New mode iterator.
4481 (signbit<mode>2): New expander
4483 2019-05-21 James Clarke <jrtc27@jrtc27.com>
4486 * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
4487 instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
4489 2019-05-21 Uroš Bizjak <ubizjak@gmail.com>
4491 * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
4492 %ebx and %ecx bafore calling cpuid with leaf 1 or
4493 non-constant leaf argument.
4495 2019-05-21 Alan Modra <amodra@gmail.com>
4498 * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
4499 power9 direct move cost.
4500 * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
4501 Correct comments and rename functions to suit parameters.
4503 2019-05-21 Richard Biener <rguenther@suse.de>
4506 * fold-const.c (fold_read_from_vector): New function.
4507 * fold-const.h (fold_read_from_vector): Declare.
4508 * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
4509 single-element insert permutations. Canonicalize selector
4510 further and fix issue with last commit.
4512 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
4514 * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
4515 parameter with default value false to declaration.
4516 (split_edges_for_insertion): New inline function. Wrapper for
4517 split_critical_edges with for_edge_insertion_p = true.
4518 * tree-cfg.c (split_critical_edges): Don't split non-critical
4519 edges if for_edge_insertion_p is false. Fix whitespace.
4520 * tree-ssa-pre.c (pass_pre::execute): Call
4521 split_edges_for_insertion instead of split_critical_edges.
4522 * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
4523 * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
4524 (pass_data_sink_code): Update function name in the comment.
4526 2019-05-21 Vladislav Ivanishin <vlad@ispras.ru>
4528 * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
4529 around is_value_included_in that knows how to handle BIT_AND_EXPR.
4530 (is_pred_expr_subset_of): Use the new function. Handle more cases where
4531 code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
4534 2019-05-21 Martin Liska <mliska@suse.cz>
4536 * config/rs6000/driver-rs6000.c (elf_platform): Do not use
4538 * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
4539 (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
4541 * config/rs6000/rs6000.c (rs6000_option_override_internal):
4543 (rs6000_function_arg): Likewise.
4544 (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
4545 (rs6000_expand_ternop_builtin): Use interval syntax.
4546 (get_element_number): Likewise.
4547 (altivec_expand_builtin): Likewise.
4548 (rs6000_get_function_versions_dispatcher): Quote target_clones.
4552 2019-05-20 Jakub Jelinek <jakub@redhat.com>
4556 * function.h (struct function): Add calls_eh_return member.
4557 * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
4558 gimplifying __builtin_eh_return call.
4559 * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
4561 (expand_call_inline): Or in src_cfun->calls_eh_return into
4562 dst_cfun->calls_eh_return.
4563 * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
4564 cfun->calls_eh_return.
4565 * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
4566 * lto-streamer-out.c (output_struct_function_base): Write
4569 2019-05-20 Marc Glisse <marc.glisse@inria.fr>
4571 PR rtl-optimization/43147
4572 * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
4573 IX86_BUILTIN_SHUFPD.
4575 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
4577 * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
4578 (refs_may_alias_p_1): ... here; update stats.
4579 (refs_may_alias_p): Do not update stats here.
4581 2019-05-20 Richard Biener <rguenther@suse.de>
4583 * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
4584 doesn't produce pointers.
4585 {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
4586 the first operand points to.
4588 2019-05-20 Jan Hubicka <hubicka@ucw.cz>
4590 * tree-ssa-alias.c (compare_sizes): New function.
4591 (sompare_type_sizes): New function
4592 (aliasing_component_refs_p): Use it.
4593 (indirect_ref_may_alias_decl_p): Likewise.
4595 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4597 * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
4599 2019-05-20 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
4601 * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
4602 (LIBLSAN_EARLY_SPEC): Likewise.
4603 * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
4605 2019-05-20 Martin Liska <mliska@suse.cz>
4607 * config/i386/i386.c (ix86_libc_has_fast_function):
4608 Add ATTRIBUTE_UNUSED for the argument.
4610 2019-05-20 Richard Biener <rguenther@suse.de>
4612 * gimple-match-head.c: Include vec-perm-indices.h.
4613 * generic-match-head.c: Likewise.
4614 * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
4616 * fold-const.c (fold_vec_perm): Export.
4617 (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
4618 (match.pd): ...here.
4620 2019-05-20 Jakub Jelinek <jakub@redhat.com>
4622 * cfgloop.h (struct loop): Add simdlen member.
4623 * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
4624 * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
4625 * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
4626 as new argument to autovectorize_vector_sizes target hook. If
4627 loop->simdlen, pick up vector size where the vectorization factor
4628 is equal to loop->simd, and if there is none, fall back to the first
4630 (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
4632 * omp-low.c (omp_clause_aligned_alignment): Likewise.
4633 * omp-general.c (omp_max_vf): Likewise.
4634 * optabs-query.c (can_vec_mask_load_store_p): Likewise.
4635 * tree-vect-slp.c (vect_slp_bb): Likewise.
4636 * target.def (autovectorize_vector_sizes): Add ALL argument and
4638 * doc/tm.texi: Adjust documentation.
4639 * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
4640 * targhooks.h (default_autovectorize_vector_sizes): Likewise.
4641 * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
4643 * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
4644 * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
4645 * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
4646 * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise. If
4647 true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
4648 preferred vector size is not 512-bit or 256-bit, just put those
4649 unpreferred ones last.
4651 2019-05-20 Martin Liska <mliska@suse.cz>
4653 * targhooks.c (default_libc_has_fast_function): New function.
4654 * targhooks.h (default_libc_has_fast_function): Likewise.
4656 2019-05-20 Martin Liska <mliska@suse.cz>
4659 * builtins.c (expand_builtin_memory_copy_args): When having a
4660 target with fast mempcpy implementation do now use memcpy.
4661 * config/i386/i386.c (ix86_libc_has_fast_function): New.
4662 (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
4663 * doc/tm.texi: Likewise.
4664 * doc/tm.texi.in: Likewise.
4666 * expr.c (emit_block_move_hints): Add 2 new arguments.
4667 * expr.h (emit_block_move_hints): Bail out when libcall
4668 to memcpy would be used.
4670 2019-05-20 Martin Liska <mliska@suse.cz>
4672 * profile-count.c: Add vertical spacing in order
4673 to separate functions.
4674 * profile-count.h: Likewise.
4676 2019-05-20 Martin Liska <mliska@suse.cz>
4678 * profile-count.h: Do not use full qualified
4680 * profile-count.c (profile_count::to_frequency): Likewise.
4682 2019-05-20 Martin Liska <mliska@suse.cz>
4684 * profile-count.h (enum profile_quality): Use capital letters
4685 for enum value names. Use the adjusted names.
4686 * profile-count.c: Use the adjusted names.
4688 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4690 * config/rs6000/constraints.md (define_register_constraint "wH"):
4692 (define_register_constraint "wI"): Delete.
4693 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4694 RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
4695 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4696 (rs6000_init_hard_regno_mode_ok): Adjust.
4697 * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
4698 resp. "d", or with "wa" as appropriate, all with "p8v".
4699 * config/rs6000/vsx.md: Ditto.
4700 * doc/md.texi (Machine Constraints): Adjust.
4702 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4704 * config/rs6000/constraints.md (define_register_constraint "wy"):
4706 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4707 RS6000_CONSTRAINT_wy.
4708 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4709 (rs6000_init_hard_regno_mode_ok): Adjust.
4710 * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
4711 Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
4712 (define_mode_attr Fisa): New.
4713 * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
4714 * doc/md.texi (Machine Constraints): Adjust.
4716 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4718 * config/rs6000/constraints.md (define_register_constraint "wu"):
4720 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4721 RS6000_CONSTRAINT_wu.
4722 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4723 (rs6000_init_hard_regno_mode_ok): Adjust.
4724 * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
4726 (define_mode_attr Fa): Delete.
4727 * config/rs6000/vsx.md: Ditto.
4728 * doc/md.texi (Machine Constraints): Adjust.
4730 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4732 * config/rs6000/constraints.md (define_register_constraint "wJ"):
4734 (define_register_constraint "wK"): Delete.
4735 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4736 RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
4737 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4738 (rs6000_init_hard_regno_mode_ok): Adjust.
4739 * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
4740 Replace "wK" constraint by "wH" with "p9v".
4741 * config/rs6000/vsx.md: Ditto.
4742 * doc/md.texi (Machine Constraints): Adjust.
4744 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4746 * config/rs6000/constraints.md (define_register_constraint "wb"):
4748 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4749 RS6000_CONSTRAINT_wb.
4750 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4751 (rs6000_init_hard_regno_mode_ok): Adjust.
4752 * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
4753 * config/rs6000/vsx.md: Ditto.
4754 * doc/md.texi (Machine Constraints): Adjust.
4756 2019-05-19 Segher Boessenkool <segher@kernel.crashing.org>
4758 * config/rs6000/constraints.md (define_register_constraint "wo"):
4760 * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4761 RS6000_CONSTRAINT_wo.
4762 * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4763 (rs6000_init_hard_regno_mode_ok): Adjust.
4764 * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
4765 * config/rs6000/altivec.md: Ditto.
4766 * doc/md.texi (Machine Constraints): Adjust.
4768 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
4770 * config/darwin-c.c (darwin_register_objc_includes): Do not
4771 prepend the sysroot when building gnu-runtime header search
4774 2019-05-18 Iain Sandoe <iain@sandoe.co.uk>
4776 * config/darwin.c (darwin_file_end): Use switch_to_section ()
4777 instead of direct output of the asm.
4779 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
4781 * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
4782 argument to be type bool (was int before).
4783 (rs6000_emit_epilogue): Simplify some code. Declare some variables
4784 at first use. Use type bool for some variables. Fix a theoretical
4785 eh_return bug for svr4.
4787 2019-05-17 Segher Boessenkool <segher@kernel.crashing.org>
4789 * config/rs6000/rs6000.md (isa): New attribute.
4790 (enabled): New attribute.
4792 2019-05-17 Max Filippov <jcmvbkbc@gmail.com>
4794 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
4795 assemble_start_function and assemble_end_function.
4797 2019-05-17 Thomas Schwinge <thomas@codesourcery.com>
4800 * omp-general.c (oacc_verify_routine_clauses): Change formal
4801 parameters. Add checking if already marked with an OpenACC
4802 'routine' directive. Adjust all users.
4805 * omp-general.c (oacc_build_routine_dims): Move some of its
4807 (oacc_verify_routine_clauses): ... this new function.
4808 * omp-general.h (oacc_verify_routine_clauses): New prototype.
4810 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
4812 * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
4813 formating of picbase labels to match other ports.
4815 2019-05-17 Iain Sandoe <iain@sandoe.co.uk>
4817 * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
4818 in the generated code.
4820 2019-05-16 Martin Sebor <msebor@redhat.com>
4822 * builtins.c (expand_builtin_atomic_always_lock_free): Quote
4823 identifiers, keywords, operators, and types in diagnostics. Correct
4824 quoting, spelling, and sentence capitalization issues.
4825 (expand_builtin_atomic_is_lock_free): Same.
4826 (fold_builtin_next_arg): Same.
4827 * cfgexpand.c (expand_one_var): Same.
4828 (tree_conflicts_with_clobbers_p): Same.
4829 (expand_asm_stmt): Same.
4830 (verify_loop_structure): Same.
4831 * cgraphunit.c (process_function_and_variable_attributes): Same.
4832 * collect-utils.c (collect_execute): Same.
4833 * collect2.c (maybe_run_lto_and_relink): Same.
4834 (is_lto_object_file): Same.
4835 (scan_prog_file): Same.
4836 * convert.c (convert_to_real_1): Same.
4837 * dwarf2out.c (dwarf2out_begin_prologue): Same.
4838 * except.c (verify_eh_tree): Same.
4839 * gcc.c (execute): Same.
4840 (eval_spec_function): Same.
4841 (run_attempt): Same.
4842 (driver::set_up_specs): Same.
4843 (compare_debug_auxbase_opt_spec_function): Same.
4844 * gcov-tool.c (unlink_gcda_file): Same.
4847 * gcse.c (gcse_or_cprop_is_too_expensive): Same.
4848 * gimplify.c (gimplify_asm_expr): Same.
4849 (gimplify_adjust_omp_clauses): Same.
4850 * hsa-gen.c (gen_hsa_addr_insns): Same.
4851 (gen_hsa_insns_for_load): Same.
4852 (gen_hsa_cmp_insn_from_gimple): Same.
4853 (gen_hsa_insns_for_operation_assignment): Same.
4854 (gen_get_level): Same.
4855 (gen_hsa_alloca): Same.
4856 (omp_simple_builtin::generate): Same.
4857 (gen_hsa_atomic_for_builtin): Same.
4858 (gen_hsa_insns_for_call): Same.
4859 * input.c (dump_location_info): Same.
4860 * ipa-devirt.c (compare_virtual_tables): Same.
4861 * ira.c (ira_setup_eliminable_regset): Same.
4862 * lra-assigns.c (lra_assign): Same.
4863 * lra-constraints.c (lra_constraints): Same.
4864 * lto-streamer-in.c (lto_input_mode_table): Same.
4865 * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
4866 (merge_and_complain): Same.
4867 (compile_offload_image): Same.
4868 (compile_images_for_offload_targets): Same.
4869 (debug_objcopy): Same.
4872 * opts.c (print_specific_help): Same.
4873 (parse_no_sanitize_attribute): Same.
4875 (handle_param): Same.
4876 * plugin.c (add_new_plugin): Same.
4877 (parse_plugin_arg_opt): Same.
4878 (try_init_one_plugin): Same.
4879 * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
4880 operators, and types in diagnostics. Correct quoting and spelling
4882 * read-rtl-function.c (parse_edge_flag_token): Same.
4883 (function_reader::parse_enum_value): Same.
4884 * reg-stack.c (check_asm_stack_operands): Same.
4885 * regcprop.c (validate_value_data): Same.
4886 * sched-rgn.c (make_pass_sched_fusion): Same.
4887 * stmt.c (check_unique_operand_names): Same.
4888 * targhooks.c (default_target_option_pragma_parse): Same.
4889 * tlink.c (recompile_files): Same.
4890 * toplev.c (process_options): Same.
4892 * trans-mem.c (diagnose_tm_1): Same.
4893 (ipa_tm_scan_irr_block): Same.
4894 (ipa_tm_diagnose_transaction): Same.
4895 * tree-cfg.c (verify_address): Same. Use get_tree_code_name to
4896 format a tree code name in a diagnostic.
4897 (verify_types_in_gimple_min_lval): Same.
4898 (verify_types_in_gimple_reference): Same.
4899 (verify_gimple_call): Same.
4900 (verify_gimple_assign_unary): Same.
4901 (verify_gimple_assign_binary): Same.
4902 (verify_gimple_assign_ternary): Same.
4903 (verify_gimple_assign_single): Same.
4904 (verify_gimple_switch): Same.
4905 (verify_gimple_label): Same.
4906 (verify_gimple_phi): Same.
4907 (verify_gimple_in_seq): Same.
4908 (verify_eh_throw_stmt_node): Same.
4909 (collect_subblocks): Same.
4910 (gimple_verify_flow_info): Same.
4911 (do_warn_unused_result): Same.
4912 * tree-inline.c (expand_call_inline): Same.
4913 * tree-into-ssa.c (update_ssa): Same.
4914 * tree.c (tree_int_cst_elt_check_failed): Same.
4915 (tree_vec_elt_check_failed): Same.
4916 (omp_clause_operand_check_failed): Same.
4917 (verify_type_variant): Same.
4918 (verify_type): Same.
4919 * value-prof.c (verify_histograms): Same.
4920 * varasm.c (assemble_start_function): Same.
4922 2019-05-16 Martin Sebor <msebor@redhat.com>
4924 * config/i386/i386-expand.c (get_element_number): Quote keywords
4925 and other internal names in diagnostics. Adjust other diagnostic
4926 formatting issues noted by -Wformat-diag.
4927 * config/i386/i386-features.c
4928 (ix86_mangle_function_version_assembler_name): Same.
4929 * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
4930 * config/i386/i386.c (ix86_function_type_abi): Same.
4931 (ix86_function_ms_hook_prologue): Same.
4932 (classify_argument): Same.
4933 (ix86_expand_prologue): Same.
4934 (ix86_md_asm_adjust): Same.
4935 (ix86_memmodel_check): Same.
4937 2019-05-17 Dragan Mladjenovic <dmladjenovic@wavecomp.com>
4939 * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
4940 TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
4943 2019-05-17 H.J. Lu <hongjiu.lu@intel.com>
4946 * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
4947 intrinsics without SSE/SSE2/SSSE3.
4948 * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
4950 (*mmx_uavgv8qi3): Likewise.
4952 2019-05-17 Richard Biener <rguenther@suse.de>
4954 * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
4955 VEC_PERM_EXPR as __VEC_PERM with -gimple.
4957 2019-05-17 Andreas Krebbel <krebbel@linux.ibm.com>
4959 * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
4960 vec_sldw insn pattern.
4962 2019-05-17 Richard Biener <rguenther@suse.de>
4964 * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
4966 2019-05-17 Martin Liska <mliska@suse.cz>
4969 * toplev.c (output_stack_usage): With LTO and sanitizer it
4970 happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
4971 has no file location.
4973 2019-05-16 Jakub Jelinek <jakub@redhat.com>
4976 * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
4977 sz0 is equal to sz1, instead return false in that case.
4979 * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
4980 has non-constant expression, force sctx.lane and use two
4981 argument IFN_GOMP_SIMD_LANE instead of single argument.
4982 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
4983 two argument IFN_GOMP_SIMD_LANE without lhs.
4984 * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
4986 (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
4988 (LOOP_REQUIRES_VERSIONING): Or in
4989 LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
4990 * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
4992 (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
4993 * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
4994 from simd if clause if needed.
4996 2019-05-16 Richard Biener <rguenther@suse.de>
4998 * tree-affine.c (expr_to_aff_combination): New function split
5000 (tree_to_aff_combination): ... here.
5001 (aff_combination_expand): Avoid building a GENERIC tree.
5003 2019-05-16 Max Filippov <jcmvbkbc@gmail.com>
5005 * cgraphunit.c (cgraph_node::expand_thunk): Remove
5006 assemble_start_function and assemble_end_function calls.
5007 * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
5008 assemble_start_function and assemble_end_function.
5009 * config/arc/arc.c (arc_output_mi_thunk): Likewise.
5010 * config/arm/arm.c (arm_output_mi_thunk): Likewise.
5011 * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
5012 * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
5013 * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
5014 * config/csky/csky.c (csky_output_mi_thunk): Likewise.
5015 * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
5016 * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
5017 * config/i386/i386.c (x86_output_mi_thunk): Likewise.
5018 * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
5019 * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
5020 * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
5022 * config/mips/mips.c (mips_output_mi_thunk): Likewise.
5023 * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
5024 * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
5025 * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
5026 * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
5027 * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
5028 * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
5029 * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
5030 * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
5031 * config/s390/s390.c (s390_output_mi_thunk): Likewise.
5032 * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5033 * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
5034 * config/spu/spu.c (spu_output_mi_thunk): Likewise.
5035 * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
5037 * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
5038 * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
5039 * config/vax/vax.c (vax_output_mi_thunk): Likewise.
5041 2019-05-16 Jan Hubicka <hubicka@ucw.cz>
5043 * tree-ssa-alias.c (alias_stats): Add
5044 aliasing_component_refs_p_may_alias and
5045 aliasing_component_refs_p_no_alias.
5046 (dump_alias_stats): Print aliasing_component_refs_p stats.
5047 (aliasing_component_refs_p): Update stats.
5049 2019-05-16 Martin Liska <mliska@suse.cz>
5052 * multiple_target.c (expand_target_clones): Do not allow
5053 target_clones being used with a symbol that is an alias.
5055 2019-05-16 Vladislav Ivanishin <vlad@ispras.ru>
5057 PR tree-optimization/90394
5058 * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
5059 positives rather than ICE for cases where (code2 == NE_EXPR
5060 && code1 == BIT_AND_EXPR).
5062 2019-05-16 Jakub Jelinek <jakub@redhat.com>
5065 * tree-core.h (struct tree_decl_common): Document
5066 decl_nonshareable_flag for PARM_DECLs.
5067 * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
5068 * calls.c (expand_call): Don't try tail call if caller
5069 has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
5070 passed on the stack and callee needs to pass any arguments on the
5072 * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
5073 else if instead of series of mutually exclusive ifs. Handle
5074 DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
5075 * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
5077 * lto-streamer.h (LTO_major_version): Bump to 9.
5079 2019-05-16 Jun Ma <JunMa@linux.alibaba.com>
5081 PR tree-optimization/90106
5082 * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
5083 new parameter as new internal function call, also move it to new
5085 (use_internal_fn): Pass internal function call to
5086 shrink_wrap_one_built_in_call_with_conds.
5088 2019-05-15 Jakub Jelinek <jakub@redhat.com>
5090 * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
5092 * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
5093 safelen_int and set loop->dont_vectorize.
5095 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5098 * config/i386/i386-builtin.def: Enable MMX intrinsics with
5100 * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
5102 * config/i386/i386-expand.c (ix86_expand_builtin): Allow
5103 SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
5104 * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
5107 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5110 * config/i386/mmx.md (*vec_dupv2sf): Changed to
5111 define_insn_and_split to support SSE emulation.
5112 (*vec_extractv2sf_0): Likewise.
5113 (*vec_extractv2sf_1): Likewise.
5114 (*vec_extractv2si_0): Likewise.
5115 (*vec_extractv2si_1): Likewise.
5116 (*vec_extractv2si_zext_mem): Likewise.
5117 (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
5118 (vec_extractv2sf_1 splitter): Likewise.
5119 (vec_extractv2sfsf): Likewise.
5120 (vec_setv2si): Likewise.
5121 (vec_extractv2si_1 splitter): Likewise.
5122 (vec_extractv2sisi): Likewise.
5123 (vec_setv4hi): Likewise.
5124 (vec_extractv4hihi): Likewise.
5125 (vec_setv8qi): Likewise.
5126 (vec_extractv8qiqi): Likewise.
5127 (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
5128 TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
5129 (vec_extractv2sisi): Likewise.
5130 (vec_extractv4hihi): Likewise.
5131 (vec_extractv8qiqi): Likewise.
5132 (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE. Pass
5133 TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
5134 (vec_initv2sisi): Likewise.
5135 (vec_initv4hihi): Likewise.
5136 (vec_initv8qiqi): Likewise.
5137 (vec_setv2si): Also allow TARGET_MMX_WITH_SSE. Pass
5138 TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
5139 (vec_setv4hi): Likewise.
5140 (vec_setv8qi): Likewise.
5142 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5145 * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
5146 TARGET_MMX_WITH_SSE.
5147 (MMXMODE:*mov<mode>_internal): Likewise.
5148 (MMXMODE:movmisalign<mode>): Likewise.
5150 2019-05-15 Uroš Bizjak <ubizjak@gmail.com>
5153 * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
5154 * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
5155 (sse2_cvtpd2pi): Ditto.
5156 (sse2_cvttpd2pi): Ditto.
5157 (*vec_concatv2sf_sse4_1): Ditto.
5158 (*vec_concatv2sf_sse): Ditto.
5159 (*vec_concatv2si_sse4_1): Ditto.
5160 (*vec_concatv2si): Ditto.
5161 (*vec_concatv4si_0): Ditto.
5162 (*vec_concatv2di_0): Ditto.
5164 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5167 * config/i386/sse.md (abs<mode>2): Add SSE emulation.
5169 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5172 * config/i386/sse.md (ssse3_palignrdi): Changed to
5173 define_insn_and_split to support SSE emulation.
5175 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5178 * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
5180 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5183 * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
5184 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
5187 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5190 * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
5191 or TARGET_MMX_WITH_SSE.
5192 (*ssse3_pmulhrswv4hi3): Add SSE emulation.
5194 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5197 * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
5199 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5202 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
5203 Changed to define_insn_and_split to support SSE emulation.
5205 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5208 * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
5209 Changed to define_insn_and_split to support SSE emulation.
5211 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5214 * config/i386/mmx.md (mmx_<emms>): Renamed to ...
5215 (*mmx_<emms>): This.
5216 (mmx_<emms>): New expander.
5218 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5221 * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
5223 (*sse2_umulv1siv1di3): Add SSE2 emulation.
5225 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5228 * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
5230 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5233 * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
5235 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5238 * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
5239 TARGET_MMX_WITH_SSE.
5240 (*mmx_uavgv4hi3): Add SSE emulation.
5242 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5245 * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
5246 and TARGET_MMX_WITH_SSE.
5247 (*mmx_uavgv8qi3): Add SSE emulation.
5249 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5252 * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
5253 maskmovdqu for __MMX_WITH_SSE__.
5255 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5258 * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
5259 TARGET_MMX and TARGET_MMX_WITH_SSE.
5260 (*mmx_umulv4hi3_highpart): Add SSE emulation.
5262 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5265 * config/i386/mmx.md (mmx_pmovmskb): Changed to
5266 define_insn_and_split to support SSE emulation.
5268 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5271 * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
5272 and TARGET_MMX_WITH_SSE.
5273 (mmx_<code>v8qi3): Likewise.
5274 (smaxmin:<code>v4hi3): New.
5275 (umaxmin:<code>v8qi3): Likewise.
5276 (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
5277 (umaxmin:*mmx_<code>v8qi3): Likewise.
5279 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5282 * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
5283 TARGET_MMX_WITH_SSE.
5284 (*mmx_pinsrw): Add SSE emulation.
5286 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5289 * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
5291 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5294 * config/i386/sse.md (sse_cvtpi2ps): Changed to
5295 define_insn_and_split. Also allow TARGET_MMX_WITH_SSE. Add
5298 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5301 * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
5302 (sse_cvttps2pi): Likewise.
5304 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5307 * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
5308 TARGET_MMX_WITH_SSE.
5309 (mmx_pshufw_1): Add SSE emulation.
5310 (*vec_dupv4hi): Changed to define_insn_and_split and also allow
5311 TARGET_MMX_WITH_SSE to support SSE emulation.
5313 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5316 * config/i386/constraints.md (Yw): New constraint.
5317 * config/i386/mmx.md (*vec_dupv2si): Changed to
5318 define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
5319 support SSE emulation.
5321 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5324 * config/i386/mmx.md (mmx_eq<mode>3): Also allow
5325 TARGET_MMX_WITH_SSE.
5326 (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE. Add SSE
5328 (mmx_gt<mode>3): Likewise.
5330 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5333 * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
5334 TARGET_MMX_WITH_SSE. Add SSE support.
5336 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5339 * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
5340 TARGET_MMX_WITH_SSE.
5341 (any_logic:<code><mode>3): New.
5342 (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
5345 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5348 * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
5349 TARGET_MMX_WITH_SSE. Add SSE emulation.
5350 (mmx_<shift_insn><mode>3): Likewise.
5352 (<shift_insn><mode>3): Likewise.
5354 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5357 * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
5358 (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE. Add SSE support.
5360 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5363 * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
5364 TARGET_MMX_WITH_SSE.
5365 (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
5368 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5371 * config/i386/mmx.md (mmx_mulv4hi3): Also allow
5372 TARGET_MMX_WITH_SSE.
5374 (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE. Add SSE
5377 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5380 * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
5381 (plusminus:mmx_<plusminus_insn><mode>3): Check
5382 TARGET_MMX_WITH_SSE.
5383 (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
5384 (<plusminus_insn><mode>3): New.
5385 (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
5386 (*mmx_<plusminus_insn><mode>3): Likewise.
5388 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5391 * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
5392 * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
5394 * config/i386/mmx.m (mmx_punpckhbw): Changed to
5395 define_insn_and_split to support SSE emulation.
5396 (mmx_punpcklbw): Likewise.
5397 (mmx_punpckhwd): Likewise.
5398 (mmx_punpcklwd): Likewise.
5399 (mmx_punpckhdq): Likewise.
5400 (mmx_punpckldq): Likewise.
5402 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5403 Uros Bizjak <ubizjak@gmail.com>
5406 * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
5408 (ix86_split_mmx_pack): Likewise.
5409 * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
5411 (ix86_split_mmx_pack): Likewise.
5412 * config/i386/i386.md (mmx_isa): New.
5413 (enabled): Also check mmx_isa.
5414 * config/i386/mmx.md (any_s_truncate): New code iterator.
5415 (s_trunsuffix): New code attr.
5416 (mmx_packsswb): Removed.
5417 (mmx_packssdw): Likewise.
5418 (mmx_packuswb): Likewise.
5419 (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
5420 MMX packsswb/packuswb with SSE2.
5421 (mmx_packssdw): Likewise.
5422 * config/i386/predicates.md (register_mmxmem_operand): New.
5424 2019-05-15 H.J. Lu <hongjiu.lu@intel.com>
5427 * config/i386/i386-c.c (ix86_target_macros_internal): Define
5428 __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
5429 * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
5430 TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
5431 (ix86_vector_mode_supported_p): Likewise.
5432 * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
5434 2019-05-15 Martin Liska <mliska@suse.cz>
5437 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
5440 2019-05-15 Richard Biener <rguenther@suse.de>
5442 * tree-into-ssa.c (pass_build_ssa::execute): Run
5443 update_address_taken before going into SSA.
5445 2019-05-15 Richard Biener <rguenther@suse.de>
5447 * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
5448 as __BIT_FIELD_REF with type with -gimple.
5450 2019-05-15 Vladislav Ivanishin <vlad@ispras.ru>
5452 * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
5453 semantically equivalent branches (left over after prior refactorings).
5455 2019-05-15 Richard Biener <rguenther@suse.de>
5457 PR tree-optimization/88828
5458 * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
5461 2019-05-14 Richard Biener <rguenther@suse.de>
5463 * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
5464 as __VIEW_CONVERT with -gimple.
5466 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
5469 * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
5472 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
5474 * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
5475 define_split to become a define_insn_and_split.
5477 2019-05-14 Segher Boessenkool <segher@kernel.crashing.org>
5479 * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
5481 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
5482 * config/rs6000/rs6000.md (epilogue_type): New define_enum.
5483 (sibcall_epilogue): Adjust.
5486 2019-05-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
5488 * config.gcc: Move *-*-solaris2.10* from obsolete configurations
5489 to unsupported ones.
5490 Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
5491 * config.host: Likewise.
5492 * config/i386/sol2.h (ASM_COMMENT_START): Remove.
5493 * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
5494 __svr4__]: Remove "brand" fallback.
5495 [!KSTAT_DATA_STRING]: Remove.
5496 * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
5498 (comdat_group): Likewise.
5499 (set_have_as_tls): Likewise.
5500 (gcc_cv_target_dl_iterate_phdr): Likewise.
5501 (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
5502 (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
5503 * configure: Regenerate.
5504 * doc/install.texi: Simplify Solaris target triplets.
5505 (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
5506 (Specific, *-*-solaris2*): Document Solaris 10 removal.
5507 Remove Solaris 10 references.
5508 Remove obsolete Solaris bug reference.
5509 (Specific, sparc-sun-solaris2.10): Remove.
5511 2019-05-14 Uroš Bizjak <ubizjak@gmail.com>
5513 * config/i386/i386.md (any_div): New code iterator.
5514 (paired_mod): New code attribute.
5515 (sgnprefix): Handle DIV and UDIV RTXes.
5517 (<u>divmod<mode>4): Macroize expander from divmod<mode>4
5518 and udivmod<mode>4 patterns using any_div code iterator.
5519 (divmod splitters): Macroize splitters using any_div code iterator.
5520 (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
5521 (*udivmodsi4_pow2_zext_2): Ditto.
5522 (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
5523 and *udivmod<mode>4_noext patterns using any_div code iterator.
5524 (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
5525 *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
5526 patterns using any_div code iterator.
5527 (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
5528 *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
5529 patterns using any_div code iterator.
5530 (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
5531 udivmodhiqi3 patterns using any_extend code iterator.
5533 2019-05-14 Richard Biener <rguenther@suse.de>
5534 H.J. Lu <hongjiu.lu@intel.com>
5536 PR tree-optimization/88828
5537 * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
5538 permuting in a single non-constant element not extracted
5541 2019-05-14 Przemyslaw Wirkus <przemyslaw.wirkus@arm.com>
5543 * internal-fn.def (SIGNBIT): New.
5544 * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
5546 (signbitv4sf2): Likewise.
5548 2019-05-14 Chenghua Xu <paul.hua.gm@gmail.com>
5551 * config/mips/mips.c (mips_split_move): Skip forward SRC into
5552 next insn when the SRC reg is dead.
5554 2019-05-14 Bin Cheng <bin.cheng@linux.alibaba.com>
5556 * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
5557 (alloc_cand_and_find_basis): Ditto.
5558 (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
5559 (create_mul_imm_cand, create_add_ssa_cand): Ditto.
5560 (create_add_imm_cand, slsr_process_cast): Ditto.
5561 (slsr_process_copy, replace_mult_candidate): Ditto.
5562 (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
5563 (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
5564 (pass_strength_reduction::execute): Init the first NULL element.
5566 2019-05-13 Nathan Sidwell <nathan@acm.org>
5568 * gcc.c (execute): Simplify cond-expr into if. Reformat comment.
5569 (run_attempt): Reformat line break.
5571 2019-05-13 David Edelsohn <dje.gcc@gmail.com>
5574 * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
5575 data registers in sibcall epilogues.
5576 Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
5578 2019-05-13 Uroš Bizjak <ubizjak@gmail.com>
5581 * configure.ac (--enable-frame-pointer):
5582 Disable by default for cygwin and mingw.
5583 * configure: Regenerate.
5585 2019-05-13 Nathan Sidwell <nathan@acm.org>
5587 * dwarf2out.c (breakout_comdat_types): Move comment to correct
5589 (const_ok_for_output_1): Balance parens around #if/#else/#endif
5590 (gen_member_die): Move abstract origin check earlier. Only VARs
5591 can be static_inline_p. Simplify splicing control flow.
5593 2019-05-13 Richard Biener <rguenther@suse.de>
5595 * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
5597 (vect_build_slp_tree_1): Likewise.
5599 2019-05-13 Richard Biener <rguenther@suse.de>
5601 PR tree-optimization/90402
5602 * tree-if-conv.c (tree_if_conversion): Value number only
5603 the loop body by making the latch an exit of the region
5605 * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
5607 (do_rpo_vn): Deal with multiple edges into the entry block
5608 that are not backedges inside the region by skipping PHIs
5611 2019-05-13 Richard Biener <rguenther@suse.de>
5613 PR tree-optimization/90316
5614 * tree-ssa-pre.c (insert_aux): Fold into ...
5615 (insert): ... this function. Use a RPO walk to reduce the
5616 number of required iterations.
5618 2019-05-13 Martin Liska <mliska@suse.cz>
5620 PR tree-optimization/90416
5621 * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
5622 string instead of passing the second part as va_arg argument.
5624 2019-05-13 Martin Liska <mliska@suse.cz>
5626 PR gcov-profile/90380
5627 * gcov.c (handle_cycle): Do not support zero cycle count,
5628 it should not be possible.
5629 (path_contains_zero_cycle_arc): New function.
5630 (circuit): Ignore zero cycle arc counts.
5632 2019-05-13 Martin Liska <mliska@suse.cz>
5634 PR gcov-profile/90380
5635 * gcov.c (enum loop_type): Remove the enum and
5637 (handle_cycle): Assert that we should not reach
5639 (circuit): Use loop_found instead of a tri-state loop_type.
5640 (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
5643 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
5646 * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
5647 (ix86_output_indirect_branch_via_reg): Use output mechanism
5648 accounting for __USER_LABEL_PREFIX__.
5649 (ix86_output_indirect_branch_via_push): Likewise.
5650 (ix86_output_function_return): Likewise.
5651 (ix86_output_indirect_function_return): Likewise.
5653 2019-05-12 Richard Sandiford <richard.sandiford@arm.com>
5655 * doc/md.texi: Document use of code attributes in rtx patterns.
5656 * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
5657 * read-rtl.c (find_code): Split out search loops into...
5658 (maybe_find_code): ...this new function.
5659 (check_code_iterator): Make the error message more informative.
5660 (check_code_attribute): New function.
5661 (rtx_reader::rtx_alloc_for_name): Likewise.
5662 (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
5663 * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
5664 * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
5665 <max_opp> directly as an rtx code instead of via a match_operator.
5666 * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
5667 (<su>abd<mode>_3): Update accordingly.
5669 2019-05-12 Iain Sandoe <iain@sandoe.co.uk>
5671 * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
5672 is given, print the state of the EH "save world" computation for
5675 2019-05-11 Jakub Jelinek <jakub@redhat.com>
5678 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
5679 EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
5681 2019-05-11 Uroš Bizjak <ubizjak@gmail.com>
5683 * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
5684 Use pinsrd for TARGET_SSE4_1.
5685 * config/i386/sse.md (movdi_to_sse): Ditto.
5687 2019-05-10 Richard Biener <rguenther@suse.de>
5689 * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
5690 (do_rpo_vn): Initialize next_value_id.
5692 2019-05-10 Martin Liska <mliska@suse.cz>
5694 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
5697 2019-05-10 Jakub Jelinek <jakub@redhat.com>
5699 PR tree-optimization/90385
5700 * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
5701 arguments of the exit phis.
5704 * tree-inline.h (struct copy_body_data): Add do_not_fold member.
5705 * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
5707 (copy_tree_body_r): Likewise.
5708 (copy_fn): Set id.do_not_fold to true.
5710 2019-05-10 Martin Liska <mliska@suse.cz>
5712 * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
5713 Reapply changes from r269790.
5715 2019-05-10 Martin Liska <mliska@suse.cz>
5718 * doc/invoke.texi: New params.
5719 * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
5720 (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
5721 * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
5723 * tree-switch-conversion.h (struct jump_table_cluster):
5726 2019-05-09 Segher Boessenkool <segher@kernel.crashing.org>
5728 * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
5730 2019-05-09 Bill Schmidt <wschmidt@linux.ibm.com>
5732 * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
5734 2019-05-09 Alexander Monakov <amonakov@ispras.ru>
5736 PR rtl-optimization/88879
5737 * sel-sched.c (sel_target_adjust_priority): Remove assert.
5739 2019-05-09 Richard Earnshaw <rearnsha@arm.com>
5742 * config/arm/arm.c (callee_saved_reg_p): Move before
5743 thumb_find_work_register.
5744 (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
5745 thumb_find_work_register. Only call df_get_live_out once.
5746 (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
5747 (thumb_find_work_register): Use
5748 thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
5749 algorithms to locate a spare call clobbered reg.
5751 2019-05-09 Martin Liska <mliska@suse.cz>
5753 * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
5754 and MAX_EXPR in GIMPLE FE format.
5756 2019-05-09 Martin Liska <mliska@suse.cz>
5758 * tree-cfg.c (dump_function_to_file): Dump entry BB count.
5759 * gimple-pretty-print.c (dump_gimple_bb_header):
5761 (pp_cfg_jump): Dump edge probability.
5762 * profile-count.c (profile_quality_as_string): Simplify
5763 with a static array.
5764 (parse_profile_quality): New function.
5765 (profile_count::dump): Simplify with a static array.
5766 (profile_count::from_gcov_type): Add new argument.
5767 * profile-count.h (parse_profile_quality): Likewise.
5768 * predict.h (set_hot_bb_threshold): New.
5769 * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
5771 * predict.c (get_hot_bb_threshold): Set from the new param.
5772 (set_hot_bb_threshold): New.
5774 2019-05-09 Richard Biener <rguenther@suse.de>
5776 PR tree-optimization/90395
5777 * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
5778 rewrite vector stores that throw internally.
5780 2019-05-09 Thomas Schwinge <thomas@codesourcery.com>
5782 * cif-code.def (CHKP): Remove.
5785 * configure.ac (--enable-frame-pointer): Disable by default for
5787 * configure: Regenerate.
5789 2019-05-09 Alan Modra <amodra@gmail.com>
5792 * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
5793 (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
5794 * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
5795 cost for general <-> vsx when direct moves are available.
5796 Cost union classes at minimal cost for any reg in the class.
5797 Correct calculation for moves between vsx, float, and altivec.
5798 Don't return a low cost for moves between special regs. Don't
5799 use hard coded register numbers.
5800 (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
5801 (rs6000_ira_change_pseudo_allocno_class): New function.
5802 * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
5803 (movdi_internal32, movdi_internal64): Remove '*' from vsx register
5805 (movsi_internal1): Don't disparage vector alternatives.
5806 (mov<mode>_internal): Likewise, excepting alternative that
5808 * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
5809 we <- b alternative.
5811 2019-05-08 Jakub Jelinek <jakub@redhat.com>
5814 PR tree-optimization/89060
5815 * tree-ssa-live.h (live_vars_map): New typedef.
5816 (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
5817 * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
5818 (struct compute_live_vars_data): New type.
5819 (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
5820 live_vars_at_stmt, destroy_live_vars): New functions.
5821 * tree-tailcall.c: Include tree-ssa-live.h.
5822 (live_vars, live_vars_vec): New global variables.
5823 (find_tail_calls): Perform variable life analysis before punting.
5824 (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
5825 * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
5827 * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
5828 Perform variable life analysis to select variables that really need
5830 (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
5831 instead set id->eh_landing_pad_dest and assert it is the same.
5832 (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
5834 2019-05-08 Mihail Ionescu <mihail.ionescu@arm.com>
5835 Richard Earnshaw <rearnsha@arm.com>
5838 * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
5840 (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
5841 (thumb1_compute_save_core_reg_mask): Don't force a spare work
5842 register if both the epilogue and prologue can use call-clobbered
5844 (thumb1_unexpanded_epilogue): Use
5845 thumb1_epilogue_unused_call_clobbered_lo_regs. Reverse the logic for
5846 picking temporaries for restoring high regs to match that of the
5847 prologue where possible.
5848 (thumb1_expand_prologue): Add any usable call-clobbered low registers to
5849 the list of work registers. Detect if the return address is still live
5850 at the end of the prologue and avoid using it for a work register if so.
5851 If the return address is not live, add LR to the list of pushable regs
5852 after the first pass.
5854 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
5856 PR tree-optimization/90078
5857 * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
5858 (INFTY): Increase the value for infinite cost.
5859 (struct comp_cost): Promote type of members to int64_t.
5860 (infinite_cost): Don't set complexity in initialization.
5861 (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
5862 overflows to infinite_cost.
5863 (adjust_setup_cost): Promote type of parameter and cost computation
5865 (struct ainc_cost_data, struct iv_ca): Promote type of member to
5867 (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
5868 cost computation to int64_t.
5869 (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
5870 int64_t's format specifier in dump.
5872 2019-05-08 Bin Cheng <bin.cheng@linux.alibaba.com>
5874 PR tree-optimization/90240
5875 * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
5876 with respect to scaling factor pre-computed for each basic block.
5877 (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
5878 (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
5879 (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
5880 (tree_ssa_iv_optimize_loop): Call determine_scaling_factor. Extend
5881 live range for array of loop's basic blocks. Cleanup aux field of
5882 loop's basic blocks.
5884 2019-05-08 Jakub Jelinek <jakub@redhat.com>
5886 PR tree-optimization/90356
5887 * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
5889 2019-05-07 Wei Xiao <wei3.xiao@intel.com>
5891 * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
5892 OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
5893 (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
5894 (ix86_handle_option): Handle -mavx512bf16.
5895 * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
5897 * config/i386/avx512bf16vlintrin.h: New.
5898 * config/i386/avx512bf16intrin.h: New.
5899 * config/i386/cpuid.h (bit_AVX512BF16): New.
5900 * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
5901 * config/i386/i386-builtin-types.def: Add new types.
5902 * config/i386/i386-builtin.def: Add new builtins.
5903 * config/i386/i386-c.c (ix86_target_macros_internal): Define
5905 * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
5906 (ix86_option_override_internal): Handle BF16.
5907 (ix86_valid_target_attribute_inner_p): Ditto.
5908 * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
5909 * config/i386/i386-builtin.c (enum processor_features): Add
5911 (static const _isa_names_table isa_names_table): Ditto.
5912 * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
5913 (PTA_AVX512BF16): Ditto.
5914 * config/i386/i386.opt: Add -mavx512bf16.
5915 * config/i386/immintrin.h: Include avx512bf16intrin.h
5916 and avx512bf16vlintrin.h.
5917 * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
5918 avx512f_cvtneps2bf16_<mode><mask_name>,
5919 avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
5920 * config/i386/subst.md (mask_half): Add new subst.
5921 * doc/invoke.texi: Document -mavx512bf16.
5923 2019-05-07 Segher Boessenkool <segher@kernel.crashing.org>
5925 * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
5927 * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
5928 (rs6000_debug_legitimize_reload_address): Delete.
5929 (rs6000_legitimize_reload_address_ptr): Delete.
5930 (rs6000_option_override_internal): Adjust.
5931 (mem_operand_gpr): Adjust comment.
5932 (legitimate_lo_sum_address_p): Ditto.
5933 (rs6000_legitimize_reload_address): Delete.
5934 (rs6000_debug_legitimize_reload_address): Delete.
5935 * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
5937 2019-05-07 Kelvin Nilsen <kelvin@gcc.gnu.org>
5940 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5941 In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
5942 to compute vector element selector for both constant and variable
5945 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
5947 * config/i386/i386.md (cvt_mnemonic): New mode attribute.
5948 (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
5949 ashrdi3_cvt using SWI48 mode iterator.
5951 2019-05-07 Alejandro Martinez <alejandro.martinezvicente@arm.com>
5953 * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
5954 (aarch64_<su>abd<mode>_3): Likewise.
5955 (*aarch64_<su>abd<mode>_3): New define_insn.
5956 (<sur>sad<vsi2qi>): New define_expand.
5957 * config/aarch64/iterators.md: Added MAX_OPP attribute.
5958 * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
5959 (build_vect_cond_expr): Likewise.
5961 2019-05-07 Uroš Bizjak <ubizjak@gmail.com>
5963 * cfgexpand.c (asm_clobber_reg_is_valid): Reject
5964 clobbers outside of accessible_reg_set.
5965 * config/i386/i386.c (ix86_conditional_register_usage):
5966 Disable register sets by clearing corresponding bits in
5967 accessible_reg_set. Do not set corresponding bits in fixed_regs,
5968 call_used_regs and don't clear corresponding reg_names array members.
5970 2019-05-07 Richard Biener <rguenther@suse.de>
5972 * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
5973 not specified still compute a comp_vectype for invariant
5976 2019-05-07 Richard Biener <rguenther@suse.de>
5978 PR tree-optimization/90316
5979 * tree-ssa-pre.c (translate_vuse_through_block): When
5980 same_valid is NULL do not bother to search for a virtual
5982 (phi_translate_1): When operands changed we cannot keep
5983 the same value-number so do not bother to ask whether
5984 that's possible from translate_vuse_through_block.
5986 2019-05-07 Martin Liska <mliska@suse.cz>
5988 * bitmap.c (bitmap_register): Come up with
5989 alloc_descriptor_max_uid and assign it for
5991 (register_overhead): Use get_descriptor as
5993 (release_overhead): New.
5994 (bitmap_elem_to_freelist): Call it.
5995 (bitmap_elt_clear_from): Likewise.
5996 (bitmap_obstack_free): Likewise.
5997 (bitmap_move): Sensitively release memory.
5998 * bitmap.h (struct GTY): Add alloc_descriptor and padding.
5999 (bitmap_initialize): Initialize alloc_descriptor to zero.
6000 * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
6002 2019-05-07 Richard Biener <rguenther@suse.de>
6004 * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
6005 we build a SLP node. Remove max_size and limiting.
6006 (vect_analyze_slp_instance): Record and dump size of the SLP graph.
6008 2019-05-07 Richard Biener <rguenther@suse.de>
6010 PR tree-optimization/90316
6011 * tree-ssa-alias.h (get_continuation_for_phi): Take walking
6013 (walk_non_aliased_vuses): Take walking limit argument.
6014 * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
6015 walking if it is reached instead of just counting.
6016 (get_continuation_for_phi): Likewise.
6017 (walk_non_aliased_vuses): Likewise, instead of leaving counter
6018 limiting to the callback.
6019 * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
6020 (vn_reference_lookup_3): Likewise.
6021 (vn_reference_lookup_pieces): Likewise.
6022 (vn_reference_lookup): Likewise.
6023 * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
6024 * tree-ssa-scopedtables.c (vuse_eq): Adjust.
6025 (avail_exprs_stack::lookup_avail_expr): Likewise.
6027 2019-05-07 Jan Hubicka <hubicka@ucw.cz>
6029 * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
6030 for comparaible types in the second direction even if first one
6031 hits incomparable type.
6033 2019-05-07 Richard Biener <rguenther@suse.de>
6036 * lto-wrapper.c (debug_objcopy): Use the original filename
6037 including archive offset for the filename used for -save-temps.
6039 2019-05-07 Li Jia He <helijia@linux.ibm.com>
6041 * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
6044 2019-05-06 H.J. Lu <hongjiu.lu@intel.com>
6045 Hongtao Liu <hongtao.liu@intel.com>
6049 * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
6050 Modified, original implementation isn't correct.
6052 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
6054 * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
6055 (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
6056 (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
6057 (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
6058 (FRAME_POINTER_REGNUM): Change numbering.
6059 * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
6060 (alt_reg_names): Adjust.
6061 (rs6000_conditional_register_usage): Don't mark hard register 64 as
6063 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
6064 (DWARF_FRAME_REGISTERS): Delete.
6065 (DWARF2_FRAME_REG_OUT): Fix whitespace.
6066 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
6068 (REG_ALLOC_ORDER): Adjust.
6069 (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
6070 (REG_CLASS_CONTENTS): Adjust.
6071 (RETURN_ADDR_RTX): Change comment.
6072 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
6074 (REGISTER_NAMES): Adjust.
6075 (ADDITIONAL_REGISTER_NAMES): Adjust.
6076 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
6078 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
6080 * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
6082 * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
6083 (DWARF_FRAME_REGISTERS): Adjust.
6084 (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
6086 (REG_ALLOC_ORDER): Adjust.
6087 (enum reg_class): Delete SPR_REGS.
6088 (REG_CLASS_NAMES): Delete SPR_REGS.
6089 (REG_CLASS_CONTENTS): Delete SPR_REGS. Adjust for deleted TM regs.
6090 (REGISTER_NAMES): Adjust.
6091 (ADDITIONAL_REGISTER_NAMES): Adjust.
6092 * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
6093 * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
6094 * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
6095 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
6096 (htm_spr_regno): Delete.
6097 (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
6099 (rs6000_dbx_register_number): Adjust.
6101 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
6103 * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
6105 2019-05-06 Segher Boessenkool <segher@kernel.crashing.org>
6107 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
6108 FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
6110 2019-05-06 Jakub Jelinek <jakub@redhat.com>
6112 PR tree-optimization/88709
6113 PR tree-optimization/90271
6114 * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
6115 * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
6116 non-clobber CONSTRUCTORs with no elts. Remove useless tmp_int
6118 (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
6119 of the store merging group is larger than
6120 PARAM_STORE_MERGING_MAX_SIZE parameter.
6121 (split_group): Add bzero_first argument. If set, always emit first
6122 the first store which must be = {} of the whole area and then for the
6123 rest of the stores consider all zero bytes as paddings.
6124 (imm_store_chain_info::output_merged_store): Check if first store
6125 is = {} of the whole area and if yes, determine which setting of
6126 bzero_first for split_group gives smaller number of stores. Adjust
6127 split_group callers.
6128 (lhs_valid_for_store_merging_p): Allow decls.
6129 (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
6131 (pass_store_merging::process_store): Likewise.
6133 2019-05-06 Kelvin Nilsen <kelvin@gcc.gnu.org>
6136 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6137 handling of V1TImode.
6139 2019-05-06 Uroš Bizjak <ubizjak@gmail.com>
6142 * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
6143 and enable_frame_pointer ...
6144 * configure.ac: ... here. Update help strings for
6145 --enable-frame-pointer.
6146 * configure: Regenerate.
6147 * config/i386/i386-options.c (ix86_option_override_internal): Remove
6148 USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
6149 * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
6150 (USE_X86_64_FRAME_POINTER): Ditto.
6152 2019-05-06 Martin Liska <mliska@suse.cz>
6154 * config.gcc: Append to target_gtfiles and fix indentation.
6156 2019-05-06 Richard Biener <rguenther@suse.de>
6158 PR tree-optimization/90358
6159 * tree-vect-stmts.c (get_group_load_store_type): Properly
6160 detect unused upper half of load.
6161 (vectorizable_load): Likewise.
6163 2019-05-06 Richard Biener <rguenther@suse.de>
6165 PR tree-optimization/88828
6166 * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
6167 (simplify_vector_constructor): ...here. Handle constants in
6170 2019-05-06 Richard Biener <rguenther@suse.de>
6172 PR tree-optimization/90328
6173 * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
6174 * tree-data-ref.c (dr_may_alias_p): Check whether the clique
6175 is valid in the loop nest before using it.
6176 (initialize_data_dependence_relation): Adjust.
6177 * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
6178 loop as loop-nest to dr_may_alias_p.
6180 2019-05-06 Richard Biener <rguenther@suse.de>
6182 * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
6184 2019-05-06 Richard Biener <rguenther@suse.de>
6186 PR tree-optimization/90316
6187 * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
6188 compute target on demand.
6189 (get_continuation_for_phi): Remove code walking stmts to
6190 get to a target virtual operand which could end up being
6193 2019-05-06 Martin Liska <mliska@suse.cz>
6196 * config/i386/i386-options.c (ix86_option_override_internal): Error only
6197 when -mabi is selected to a non-default version.
6199 2019-05-06 Hrishikesh Kulkarni <hrishikeshparag@gmail.com>
6200 Martin Liska <mliska@suse.cz>
6202 * Makefile.in: Add lto-dump.texi.
6203 * cgraph.h: Add new functions get_visibility_string and
6204 get_symtab_type_string.
6205 * doc/gcc.texi: Include lto-dump section.
6206 * doc/lto-dump.texi: New file.
6207 * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
6208 (parse_dump_option): Factor out this function.
6209 * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
6210 (parse_dump_option): Export the function.
6211 * symtab.c (symtab_node::get_visibility_string): New function.
6212 (symtab_node::get_symtab_type_string): Likewise.
6214 2019-05-06 Martin Liska <mliska@suse.cz>
6216 * config/i386/i386-builtins.c: New file.
6217 * config/i386/i386-builtins.h: New file.
6218 * config/i386/i386-expand.c: New file.
6219 * config/i386/i386-expand.h: New file.
6220 * config/i386/i386-features.c: New file.
6221 * config/i386/i386-features.h: New file.
6222 * config/i386/i386-options.c: New file.
6223 * config/i386/i386-options.h: New file.
6224 * config.gcc: Add new files into extra_objs and
6226 * config/i386/i386.c: Split content of the file
6227 into newly introduced files.
6228 * config/i386/i386.h: Declare common variables
6230 * config/i386/t-i386: Define dependencies for new files.
6232 2019-05-03 Richard Earnshaw <rearnsha@arm.com>
6235 * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
6236 Restrict 'all' variant to 32-bit configurations.
6237 (unaligned_loadhiu): Likewise.
6238 (unaligned_storehi): Likewise.
6239 (unaligned_storesi): Likewise.
6240 (unaligned_loadhis): Disable when compiling for thumb1.
6242 2019-05-03 Marc Glisse <marc.glisse@inria.fr>
6244 PR tree-optimization/90269
6245 * tree-loop-distribution.c (find_seed_stmts_for_distribution):
6248 2019-05-03 Martin Liska <mliska@suse.cz>
6250 * hash-map.h: Add is_empty function.
6251 * hash-set.h: Likewise.
6252 * hash-table.h: Likewise.
6253 * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
6254 elements () == 0 (and similar usages).
6255 * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
6256 * gimplify.c (gimplify_bind_expr): Likewise.
6257 (gimplify_switch_expr): Likewise.
6258 * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
6259 * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
6260 * postreload-gcse.c (dump_hash_table): Likewise.
6261 (gcse_after_reload_main): Likewise.
6262 * predict.c (combine_predictions_for_bb): Likewise.
6263 * tree-parloops.c (reduction_phi): Likewise.
6264 (separate_decls_in_region): Likewise.
6265 (transform_to_exit_first_loop): Likewise.
6266 (gen_parallel_loop): Likewise.
6267 (gather_scalar_reductions): Likewise.
6268 (try_create_reduction_list): Likewise.
6269 * var-tracking.c (dump_vars): Likewise.
6270 (emit_notes_for_changes): Likewise.
6271 (vt_emit_notes): Likewise.
6273 2019-05-03 Richard Biener <rguenther@suse.de>
6275 PR tree-optimization/90316
6276 * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
6279 2019-05-03 Richard Biener <rguenther@suse.de>
6281 * tree-vect-stmts.c (get_group_load_store_type): Avoid
6282 peeling for gaps by loading only lower halves of vectors
6284 (vectorizable_load): Likewise.
6286 2019-05-03 Richard Biener <rguenther@suse.de>
6289 * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
6291 2019-05-03 Richard Biener <rguenther@suse.de>
6294 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
6295 Handle STRING_CST vs DECL or STRING_CST.
6297 2019-05-03 Richard Biener <rguenther@suse.de>
6299 PR tree-optimization/88963
6300 * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
6301 vector loads feeding only BIT_FIELD_REFs to component
6302 loads. Rewrite stores fed by CONSTRUCTORs to component
6305 2019-05-03 Jakub Jelinek <jakub@redhat.com>
6307 * opts.h (finish_options): Remove lang_mask argument.
6308 (print_help, help_option_argument): Declare.
6309 * opts.c (print_help): Remove forward declaration, no longer static.
6310 (finish_options): Remove lang_mask argument, don't call print_help
6312 * opts-global.c (decode_options): Adjust finish_option caller, call
6315 PR tree-optimization/90303
6316 * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
6317 TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
6319 2019-05-03 Richard Biener <rguenther@suse.de>
6321 PR tree-optimization/89698
6322 * gimple-fold.c (canonicalize_constructor_val): Early out
6323 for constants, handle unfolded INTEGER_CSTs as they appear in
6324 C++ virtual table ctors.
6326 2019-05-03 Richard Biener <rguenther@suse.de>
6328 * passes.c (execute_function_todo): Remove dead code.
6330 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
6332 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
6333 the internal register number, for any "real" register.
6335 2019-05-02 Segher Boessenkool <segher@kernel.crashing.org>
6337 * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
6338 correct numbers for TFHAR, TFIAR, TEXASR.
6340 2019-05-02 Richard Biener <rguenther@suse.de>
6342 PR tree-optimization/89653
6343 * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
6344 update-address-taken before the pass.
6345 * passes.def (pass_tree_loop_init): Put comment before it.
6347 2019-05-02 Richard Biener <rguenther@suse.de>
6349 PR tree-optimization/89509
6350 * tree-ssa-structalias.c (compute_dependence_clique): Look
6351 at the first subvar when determining whether it is restrict.
6353 2019-05-02 Richard Biener <rguenther@suse.de>
6355 PR tree-optimization/90273
6356 * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
6357 useless debug stmts.
6359 2019-05-02 Alejandro Martinez <alejandro.martinezvicente@arm.com>
6361 * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
6363 * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
6365 * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
6366 VEC_COND_EXPR be inserted to emulate a conditional internal function.
6367 (build_vect_cond_expr): Emit the VEC_COND_EXPR.
6368 (vectorizable_reduction): Use the functions above to vectorize in a
6369 fully masked loop codes that don't have a conditional internal
6372 2019-05-02 Martin Liska <mliska@suse.cz>
6374 * cgraphclones.c: Call valid_attribute_p with 1 for
6376 * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
6377 it's for target attribute.
6378 * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
6379 Add new boolean argument.
6380 * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
6382 (ix86_valid_target_attribute_tree): Pass target_clone_attr
6383 to ix86_valid_target_attribute_inner_p.
6384 (ix86_valid_target_attribute_p): Pass flags argument to
6385 ix86_valid_target_attribute_inner_p.
6386 (get_builtin_code_for_version): Use 0 as it's target attribute.
6388 2019-05-02 Martin Liska <mliska@suse.cz>
6390 * gcc.c (process_command): Add dummy file only
6392 * opts-global.c (decode_options): Pass lang_mask.
6393 * opts.c (print_help): New function.
6394 (finish_options): Print --help if help_option_argument
6396 (common_handle_option): Factor out content of OPT__help_
6398 * opts.h (finish_options): Add new argument.
6400 2019-05-02 Martin Liska <mliska@suse.cz>
6403 * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
6404 With -minline-all-stringops use inline expansion using 4B loop.
6405 * doc/invoke.texi: Document the change of
6406 -minline-all-stringops.
6408 2019-05-01 Jeff Law <law@redhat.com>
6410 PR tree-optimization/88797
6411 * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
6412 PHI feeds a conditional on the RHS of an assignment.
6414 2019-04-30 Andrew Waterman <andrew@sifive.com>
6415 Jim Wilson <jimw@sifive.com>
6417 * config/riscv/constraints.md (L): New.
6418 * config/riscv/predicates.md (lui_operand): New.
6419 (sfb_alu_operand): New.
6420 * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
6421 * config/riscv/riscv.c (riscv_expand_conditional_move): New.
6422 * config/riscv/riscv.h (TARGET_SFB_ALU): New.
6423 * config/riscv/risc.md (type): Add sfb_alu.
6424 (branch<mode>): Renamed from branch_order<mode>. Change predicate for
6425 operand 3 to reg_or_0_operand. In output string, change %3 to %z3.
6426 (branch_zero<mode>): Delete.
6428 (mov<GPR:mode><X:mode>cc): Likewise.
6429 * config/riscv/sifive-7.md (sifive_7_sfb_alu): New. Use in bypasses.
6431 2019-04-30 Nathan Sidwell <nathan@acm.org>
6433 * tree.h (MARK_TS_EXP): New.
6435 2019-04-30 Martin Liska <mliska@suse.cz>
6437 * opts.c (enable_warning_as_error): Provide hints
6438 for unknown options.
6440 2019-04-30 Martin Liska <mliska@suse.cz>
6443 * doc/invoke.texi: Add missing dash for gas-locview-support
6444 and gno-as-locview-support.
6446 2019-04-30 Jakub Jelinek <jakub@redhat.com>
6449 * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
6450 whitespace at the start of target attribute string.
6452 2019-04-30 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6455 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
6456 Define __ARM_FEATURE_ATOMICS.
6458 2019-04-30 Martin Liska <mliska@suse.cz>
6460 * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
6461 into built_in_function enum. Remove code for endp == 2 and
6462 use BUILT_IN_* constants.
6463 (gimple_fold_builtin): Call the function with fcode.
6465 2019-04-30 Martin Liska <mliska@suse.cz>
6467 * config/i386/i386.c (ix86_builtin_reciprocal): Cast
6468 DECL_FUNCTION_CODE into ix86_builtins enum before
6469 the switch statement.
6471 2019-04-30 Jakub Jelinek <jakub@redhat.com>
6473 PR tree-optimization/89475
6474 * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
6477 2019-04-30 Martin Liska <mliska@suse.cz>
6479 PR translation/90274
6480 * opts.c (print_filtered_help): Wrap string in _(...).
6482 2019-04-30 Bin Cheng <bin.cheng@linux.alibaba.com>
6484 PR tree-optimization/90240
6486 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
6488 PR tree-optimization/90078
6489 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
6490 checks for infinite_cost overflow.
6492 2019-04-29 Jeff Law <law@redhat.com>
6494 * passes.def: Move -Wrestrict pass after copy propagation.
6496 2019-04-29 Maya Rashish <coypu@sdf.org>
6498 * config.gcc (default_gnu_indirect_function): Default to yes
6499 for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
6500 sparc*-*-netbsd*, x86_64-*-netbsd*.
6502 2019-04-29 Vladislav Ivanishin <vlad@ispras.ru>
6504 * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
6505 where cond2 is NE_EXPR.
6506 (is_value_included_in): Update comment.
6508 2019-04-29 Richard Biener <rguenther@suse.de>
6510 PR tree-optimization/90278
6511 * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
6512 EH on comparison simplification.
6514 2019-04-29 Jason Merrill <jason@redhat.com>
6516 PR c++/82081 - tail call optimization breaks noexcept
6517 * tree-tailcall.c (find_tail_calls): Don't turn a call from a
6518 nothrow function to a might-throw function into a tail call.
6520 2019-04-29 Richard Sandiford <richard.sandiford@arm.com>
6522 * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
6523 (DDR_INNER_LOOP): Likewise.
6524 * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
6525 (initialize_data_dependence_relation): Likewise.
6526 (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
6528 2019-04-29 Jakub Jelinek <jakub@redhat.com>
6530 PR rtl-optimization/90257
6531 * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
6535 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
6539 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
6542 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
6545 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
6547 * lra-spills.c (lra_final_code_change): Remove useless move insns.
6549 2019-04-29 Richard Biener <rguenther@suse.de>
6551 * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
6554 2019-04-27 Iain Buclaw <ibuclaw@gdcproject.org>
6556 * config/netbsd-d.c: Include memmodel.h. Remove unused tree.h,
6557 varasm.h, and netbsd-protos.h.
6559 2019-04-27 Uroš Bizjak <ubizjak@gmail.com>
6562 * config/i386/i386-protos.h (ix86_data_alignment): Change
6563 the second argument type to unsigned int.
6564 * config/i386/i386.c (ix86_data_alignment): Change "align"
6565 argument type to unsigned int.
6567 2019-04-27 Martin Liska <mliska@suse.cz>
6570 * opt-suggestions.c (option_proposer::build_option_suggestions):
6571 When get_valid_option_values returns empty values, add the
6572 misspelling candidate.
6574 2019-04-26 Jim Wilson <jimw@sifive.com>
6576 * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
6578 * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
6579 Pass orig_mode to riscv_build_integer.
6580 (riscv_split_integer): Pass mode to riscv_move_integer.
6581 (riscv_legitimize_const_move): Likewise.
6582 (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
6583 promoted_mode. Replace force_reg call with code to load constant into
6584 promoted reg and then subreg it for the store.
6585 * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
6588 2018-04-26 Eugene Sharygin <eush@ispras.ru>
6590 * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
6593 2019-04-26 Richard Sandiford <richard.sandiford@arm.com>
6595 * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
6596 commentary about the encoding of precision.
6598 2019-04-25 Andreas Tobler <andreast@gcc.gnu.org>
6600 * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
6601 * config/i386/t-freebsd64: New file.
6602 * config.gcc: Add the t-freebsd64 for multilib support.
6604 2019-04-25 Uroš Bizjak <ubizjak@gmail.com>
6606 * doc/extend.texi (vector_size): Add missing comma after @xref.
6608 2019-04-25 Jakub Jelinek <jakub@redhat.com>
6610 * BASE-VER: Set to 10.0.0.
6612 2019-04-25 Richard Biener <rguenther@suse.de>
6615 * gimplify.c (gimplify_expr): Avoid turning a lvalue
6616 VIEW_CONVERT_EXPR into one operating on an rvalue.
6618 2019-04-25 H.J. Lu <hongjiu.lu@intel.com>
6621 * config/i386/i386.c (feature_priority): Moved to file scope.
6622 (processor_features): Likewise.
6623 (processor_model): Likewise.
6624 (_arch_names_table): Likewise.
6625 (arch_names_table): Likewise.
6626 (_feature_list): Removed.
6627 (feature_list): Likewise.
6628 (_isa_names_table): Moved to file scope. Add priority.
6629 (isa_names_table): Likewise.
6630 (get_builtin_code_for_version): Replace feature_list with
6631 isa_names_table. Update error message for P_ZERO priority.
6633 2019-04-25 Richard Biener <rguenther@suse.de>
6635 * tree-pass.h (make_pass_phi_only_cprop): Remove.
6636 * timevar.def (TV_TREE_PHI_CPROP): Likewise.
6638 2019-04-24 Jeff Law <law@redhat.com>
6640 PR tree-optimization/90037
6641 * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
6642 * passes.def: Replace all instance of phi-only cprop with the
6643 lattice propagator. Move propagation pass from after erroneous
6644 path isolation to before erroneous path isolation.
6645 * tree-ssa-phionlycprop.c: Remove.
6647 2019-04-24 Richard Biener <rguenther@suse.de>
6650 * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
6651 by size and BITS_PER_UNIT on poly-wide-ints.
6653 2019-04-25 Richard Biener <rguenther@suse.de>
6656 * match.pd: Add pattern to simplify view-conversion of an
6659 2019-04-24 Clement Chigot <clement.chigot@atos.net>
6661 * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
6662 OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
6663 for Go on 32 bit AIX.
6664 * config/rs6000/aix72.h: Likewise.
6666 2019-04-24 Jakub Jelinek <jakub@redhat.com>
6669 * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
6670 * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
6672 2019-04-24 Andreas Krebbel <krebbel@linux.ibm.com>
6675 * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
6676 from FPRs in reverse order. Generate REG_CFA_DEF_CFA note also
6677 for restored hard frame pointer.
6678 (s390_sched_dependencies_evaluation): Implement new target hook.
6679 (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
6681 2019-04-24 Claudiu Zissulescu <claziss@sysnopsys.com>
6683 * config/arc/arc-options.def: Fix typos and spelling mistakes.
6684 * config/arc/arc.c (arc_init): Cleanup warning message.
6685 (arc_override_options): Likewise.
6687 2019-04-24 Jakub Jelinek <jakub@redhat.com>
6690 * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
6691 a register if both if_true and if_false are MEMs.
6693 PR tree-optimization/90208
6694 * tree-cfg.c (remove_bb): Move forced labels from removed bbs
6695 after labels of new_bb, not before them.
6697 PR tree-optimization/90211
6698 * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
6699 which are not SSA_NAMEs.
6701 2018-04-23 Sudakshina Das <sudi.das@arm.com>
6703 * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
6705 (aarch64_file_end_indicate_exec_stack): Add gnu note section.
6707 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
6709 PR rtl-optimization/87979
6710 * modulo-sched.c (sms_schedule): Start ii value "mii" should
6713 2019-04-23 Roman Zhuykov <zhroma@ispras.ru>
6715 PR rtl-optimization/84032
6716 * modulo-sched.c (ps_insn_find_column): Change condition so that
6717 branch will always be the last insn in a row inside partial
6720 2019-04-23 Richard Biener <rguenther@suse.de>
6723 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
6724 dest_single_pred_p argument.
6725 (remove_forwarder_block): Adjust.
6726 (remove_forwarder_block_with_phi): Likewise.
6728 2019-04-23 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
6729 Bernd Edlinger <bernd.edlinger@hotmail.de>
6730 Jakub Jelinek <jakub@redhat.com>
6733 * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
6734 if used with general-regs-only.
6735 (arm_conditional_register_usage): Don't add non-general regs if
6737 (arm_valid_target_attribute_rec): Handle general-regs-only.
6738 * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
6740 (TARGET_HARD_FLOAT_SUB): Define.
6741 (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
6742 (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
6743 (TARGET_REALLY_IWMMXT2): Likewise.
6744 * config/arm/arm.opt: Add -mgeneral-regs-only.
6745 * doc/extend.texi: Document ARM general-regs-only target.
6746 * doc/invoke.texi: Document ARM -mgeneral-regs-only.
6748 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
6750 PR tree-optimization/90078
6751 * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
6752 checks for infinite_cost overflow.
6754 2019-04-23 Bin Cheng <bin.cheng@linux.alibaba.com>
6756 PR tree-optimization/90021
6757 * tree-chrec.c (evolution_function_is_univariate_p): New parameter
6758 and check univariate against it.
6759 * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
6760 * tree-data-ref.c (add_other_self_distances): Pass new argument.
6762 2019-04-21 H.J. Lu <hongjiu.lu@intel.com>
6766 2018-11-21 Uros Bizjak <ubizjak@gmail.com>
6769 2013-10-26 Vladimir Makarov <vmakarov@redhat.com>
6772 2013-10-25 Vladimir Makarov <vmakarov@redhat.com>
6774 * lra-spills.c (lra_final_code_change): Remove useless move insns.
6776 2019-04-21 Iain Sandoe <iain@sandoe.co.uk>
6778 * config/rs6000/rs6000.md (group_end_nop): Emit insn register
6779 names using operand format, rather than hard-wired.
6780 (speculation_barrier): Likewise.
6782 2019-04-19 Segher Boessenkool <segher@kernel.crashing.org>
6784 PR tree-optimization/88055
6785 * tree-call-cdce.c (comparison_code_if_no_nans): New function.
6786 (gen_one_condition): Use it if !HONOR_NANS.
6788 2019-04-19 Jakub Jelinek <jakub@redhat.com>
6791 * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
6792 assign_temp instead of gen_reg_rtx.
6794 2019-04-19 Christophe Lyon <christophe.lyon@linaro.org>
6796 PR translation/90118
6797 * config/aarch64/aarch64.c (aarch64_override_options_internal):
6798 Add missing space before %<.
6800 2019-04-18 Peter Bergner <bergner@linux.ibm.com>
6802 PR rtl-optimization/87871
6803 * ira-lives.c (make_object_dead): Don't add conflicts to
6804 TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
6806 2019-04-18 Martin Sebor <msebor@redhat.com>
6809 * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
6810 * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
6811 assuming type size fits in SHWI.
6813 2019-04-18 Jan Hubicka <hubicka@ucw.cz>
6816 * ipa-inline.c (flatten_function): New parameter UPDATE.
6817 (ipa_inline, early_inliner): Use it.
6819 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
6821 * fold-const.c (int_const_binop): Return early on failure.
6823 2019-04-18 Richard Sandiford <richard.sandiford@arm.com>
6826 * combine.c (force_int_to_mode): Cast the argument rather than
6827 the result of known_alignment.
6828 * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
6830 2019-04-18 Richard Biener <rguenther@suse.de>
6833 * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
6835 (remove_forwarder_block): ... here.
6836 (remove_forwarder_block_with_phi): Also move debug stmts here.
6838 2019-04-18 Jakub Jelinek <jakub@redhat.com>
6840 PR translation/79183
6841 * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
6842 inform where appropriate.
6844 2019-04-18 Richard Biener <rguenther@suse.de>
6846 * tree.c (get_qualified_type): Put found type variants at the
6847 head of the variant list.
6849 2018-04-17 Segher Boessenkool <segher@kernel.crashing.org>
6851 * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
6853 2019-04-17 Hongtao Liu <hongtao.liu@intel.com>
6856 * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
6857 _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
6858 _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
6859 _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
6860 _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
6862 2019-04-17 Peter Bergner <bergner@linux.ibm.com>
6864 * ira-conflicts.c (print_allocno_conflicts): Always print something,
6865 even for allocno's with no conflicts.
6866 (print_conflicts): Print an extra newline.
6868 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
6870 * auto-inc-dec.c (attempt_change): Set the alignment of the
6871 temporary memory to that of the original.
6873 2019-04-17 Joao Moreira <jmoreira@suse.de>
6875 * targhooks.c (default_print_patchable_function_entry): Emit
6876 __patchable_function_entries section with writable flags to allow
6877 relocation resolution.
6879 2019-04-17 Jonny Grant <jg@jguk.org>
6881 * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
6883 2019-04-17 Jakub Jelinek <jakub@redhat.com>
6886 * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
6889 2019-04-17 Claudiu Zissulescu <claziss@synopsys.com>
6891 * config/arc/arc.c (arc_init): Format diagnostic string.
6892 (arc_override_options): Likewise.
6893 (check_if_valid_regno_const): Likewise.
6894 (arc_reorg): Likewise.
6896 2019-04-17 Segher Boessenkool <segher@kernel.crashing.org>
6899 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
6901 (rs6000_emit_allocate_stack_1): Simplify condition. Adjust pattern
6903 * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
6904 (*movdi_update1): Use Pmode.
6905 (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
6906 (movdi_<mode>_update_stack): Rename to ...
6907 (movdi_update_stack): ... this. Fix comment. Change condition. Don't
6909 (*movsi_update1): Use Pmode.
6910 (*movsi_update2): Use Pmode.
6911 (movsi_update): Rename to ...
6912 (movsi_<mode>_update): ... this. Use Pmode.
6913 (movsi_update_stack): Fix condition.
6914 (*movhi_update1): Use Pmode. Fix argument to
6915 avoiding_indexed_address_p.
6916 (*movhi_update2): Ditto.
6917 (*movhi_update3): Ditto.
6918 (*movhi_update4): Ditto.
6919 (*movqi_update1): Ditto.
6920 (*movqi_update2): Ditto.
6921 (*movqi_update3): Ditto.
6922 (*movsf_update1, *movdf_update1): Merge, rename to...
6923 (*mov<mode>_update1): This. Use Pmode. Fix argument to
6924 avoiding_indexed_address_p. Add "size" attribute.
6925 (*movsf_update2, *movdf_update2): Merge, rename to...
6926 (*mov<mode>_update2): This. Ditto.
6927 (*movsf_update3): Use Pmode. Fix argument to
6928 avoiding_indexed_address_p.
6929 (*movsf_update4): Ditto.
6930 (allocate_stack): Simplify condition. Adjust pattern names.
6932 2019-04-17 Jakub Jelinek <jakub@redhat.com>
6935 * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
6936 whitespace at the start of target attribute string.
6938 2019-04-16 Pat Haugen <pthaugen@us.ibm.com>
6941 * config/rs6000/power9.md: Add store forwarding bypass.
6943 2019-04-16 Alexandre Oliva <aoliva@redhat.com>
6946 * valtrack.c (dead_debug_insert_temp): Reset debug references
6947 to the return value of a call being removed.
6949 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
6951 * config/arc/arc-protos.h (arc_register_move_cost): Remove.
6952 * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
6953 implement target hook.
6954 (arc_memory_move_cost): New function.
6955 (TARGET_REGISTER_MOVE_COST): Define.
6956 (TARGET_MEMORY_MOVE_COST): Likewise.
6957 * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
6958 (MEMORY_MOVE_COST): Likewise.
6960 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
6962 * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
6963 (sibcall_value_insn): Likewise.
6964 * config/arc/constraints.md (Rs5): Remove.
6966 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
6968 * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
6969 for last two fake registers.
6970 (arc_conditional_register_usage): Make sure fake frame and arg
6971 pointer regs are in general regs class.
6972 (FRAME_POINTER_MASK): Remove.
6973 (RETURN_ADDR_MASK): Remove.
6974 (arc_must_save_register): Use hard frame regnum.
6975 (frame_restore_reg): Use hard_frame_pointer_rtx.
6976 (arc_save_callee_saves): Likewise.
6977 (arc_restore_callee_saves): Likewise.
6978 (arc_save_callee_enter): Likewise.
6979 (arc_restore_callee_leave): Likewise.
6980 (arc_save_callee_milli): Likewise.
6981 (arc_eh_return_address_location): Likewise.
6982 (arc_check_multi): Use hard frame regnum.
6983 (arc_can_eliminate): Likewise.
6984 * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
6985 for register allocator.
6986 (REG_CLASS_CONTENTS): Update GENERAL_REGS.
6987 (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
6988 (FRAME_POINTER_REGNUM): Change it to a fake register.
6989 (HARD_FRAME_POINTER_REGNUM): Defined.
6990 (ARG_POINTER_REGNUM): Change it to a new fake register.
6991 (ELIMINABLE_REGS): Update.
6992 (REGISTER_NAMES): Update names.
6993 * config/arc/arc.md (LP_START): Remove.
6995 (shift_si3_loop): Update pattern.
6997 2019-04-16 Claudiu Zissulescu <claziss@synopsys.com>
6999 * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
7000 to avoid delay slot scheduling.
7001 (arc_must_save_register): Don't save SP.
7002 * config/arc/arc.md (stack_tie): Remove.
7003 (UNSPEC_ARC_STKTIE): Likewise.
7005 2019-04-16 Kito Cheng <kito.cheng@gmail.com>
7006 Shiva Chen <shiva0217@gmail.com>
7008 * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
7009 code gen with large shift amount.
7011 2019-04-16 Chung-Ju Wu <jasonwucj@gmail.com>
7013 * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
7016 2019-04-16 Jakub Jelinek <jakub@redhat.com>
7019 * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
7020 print -m64/-mx32/-m32 if it is true.
7021 (ix86_debug_options, ix86_function_specific_print): Pass true as
7022 ADD_ABI_P to ix86_target_string.
7023 (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
7024 ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
7025 or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
7027 PR rtl-optimization/90082
7028 * dce.c (can_delete_call): New function.
7029 (deletable_insn_p, mark_insn): Use it.
7031 PR tree-optimization/90090
7032 * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
7034 (is_division_by_square): Likewise. Formatting fix.
7036 2019-04-16 Richard Biener <rguenther@suse.de>
7038 PR tree-optimization/56049
7039 * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
7040 equality check if alias-set zero will prevail.
7042 2019-04-15 Jeff Law <law@redhat.com>
7044 * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
7045 size and alignment as unsigned.
7047 2019-04-15 Richard Biener <rguenther@suse.de>
7050 * tree-loop-distribution.c (destroy_loop): Preserve correct
7053 2019-04-15 Richard Biener <rguenther@suse.de>
7055 PR tree-optimization/90071
7056 * tree-ssa-reassoc.c (init_range_entry): Do not pick up
7057 abnormal operands from def stmts.
7059 2019-04-15 Segher Boessenkool <segher@kernel.crashing.org>
7061 PR rtl-optimization/89794
7062 * combine.c (count_auto_inc): New function.
7063 (try_combine): Count how many auto_inc expressions there were in the
7064 original instructions. Ensure we have the same number in the new
7065 instructions. Remove the code that tried to ensure auto_inc side
7066 effects on i1 and i0 are not lost.
7068 2019-04-15 Richard Biener <rguenther@suse.de>
7071 * tree.h (auto_var_p): Declare.
7072 * tree.c (auto_var_p): New function, split out from ...
7073 (auto_var_in_fn_p): ... here.
7074 * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
7076 (new_var_info): Initialize it.
7077 (set_uids_in_ptset): Also set the shadow variable uid if required.
7078 (ipa_pta_execute): Postprocess points-to solutions assigning
7079 shadow variable uids for locals that may reach their containing
7080 function recursively.
7081 * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
7082 assert but instead check whether the points-to solution is
7085 2019-04-15 Martin Jambor <mjambor@suse.cz>
7088 * cgraph.c (clone_of_p): Loop over clone chain for each step in
7091 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
7093 * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
7095 2019-04-15 Monk Chiang <sh.chiang04@gmail.com>
7096 Kito Cheng <kito.cheng@gmail.com>
7097 Shiva Chen <shiva0217@gmail.com>
7099 * config/nds32/nds32-md-auxiliary.c
7100 (nds32_legitimize_pic_address): Use new PIC pattern.
7101 (nds32_legitimize_tls_address): Use new TLS pattern.
7102 (nds32_output_symrel): New.
7103 * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
7104 (nds32_alloc_relax_group_id): Ditto.
7105 * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
7106 (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
7108 (nds32_group_tls_insn): Ditto.
7109 (nds32_group_float_insns): Ditto.
7110 * config/nds32/nds32.md (tls_le): New.
7113 2019-04-15 Chung-Ju Wu <jasonwucj@gmail.com>
7115 * configure: Add nds32 target for dwarf2 debug_line checking.
7116 * configure.ac: Regenerated.
7118 2019-04-14 Jan Hubicka <hubicka@ucw.cz>
7121 * ipa-devirt.c (skip_in_fields_list_p): New.
7122 (odr_types_equivalent_p): Use it.
7124 2019-04-13 Jakub Jelinek <jakub@redhat.com>
7127 * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
7128 instead of strncmp when checking for thumb and arm. Formatting fixes.
7130 2019-04-12 Iain Buclaw <ibuclaw@gdcproject.org>
7132 * doc/install.texi: Document --with-target-system-zlib.
7134 2019-04-12 Martin Sebor <msebor@redhat.com>
7140 * targhooks.c (default_vector_alignment): Avoid assuming
7141 argument fits in SHWI.
7142 * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
7144 * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
7146 2019-04-12 Jakub Jelinek <jakub@redhat.com>
7148 PR rtl-optimization/89965
7149 * dce.c: Include rtl-iter.h.
7150 (struct check_argument_load_data): New type.
7151 (check_argument_load): New function.
7152 (find_call_stack_args): Check for loads from stack slots still tracked
7153 in sp_bytes and punt if any is found.
7155 * config/mips/loongson-mmiintrin.h: Fix up #error message.
7157 2019-04-12 Jan Hubicka <hubicka@ucw.cz>
7159 * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
7160 * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
7162 2019-04-12 Martin Liska <mliska@suse.cz>
7165 * multiple_target.c (create_dispatcher_calls): Wrap ifunc
7167 (separate_attrs): Handle multiple 'default's.
7168 (expand_target_clones): Rework error handling code.
7170 2019-04-12 Kelvin Nilsen <kelvin@gcc.gnu.org>
7173 * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
7174 mode of vector rather than mode of destination for move instruction.
7175 * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
7176 Use QI inner mode with V16QI vector mode.
7178 2019-04-12 Jakub Jelinek <jakub@redhat.com>
7181 * config/tilepro/tilepro.c (tilepro_print_operand): Use just
7182 "invalid %%t operand" in output_operand_lossage message.
7184 2019-04-12 Andreas Krebbel <krebbel@linux.ibm.com>
7186 * config/s390/predicates.md (permute_pattern_operand): New
7188 * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
7189 operand for the permute pattern.
7190 ("*vec_perm<mode>"): New insn definition.
7191 ("bswap<mode>"): Generate the permute pattern operand in the
7192 expander and perform the operand reloads for pre arch13 level
7194 ("*bswap<mode>_emu"): Rename to ...
7195 ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
7196 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
7197 Add the USE operand for the permute pattern.
7198 ("*vec_set_bswap_vec<mode>"): Likewise.
7200 2019-04-12 Jakub Jelinek <jakub@redhat.com>
7203 * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
7204 and gcc_unreachable if it fails, just call tree_to_uhwi which
7205 verifies that too. Test TREE_CHAIN instead of list_length > 1.
7206 Start warning message with a lower-case letter. Formatting fixes.
7208 PR rtl-optimization/90026
7209 * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
7210 successors, look for BARRIERs inside of the whole BB_FOOTER chain
7211 rather than just at the start of it. If e->src BB_FOOTER is not NULL
7212 in cfglayout mode, use emit_barrier_after_bb.
7214 2018-04-11 Steve Ellcey <sellcey@marvell.com>
7216 PR rtl-optimization/87763
7217 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
7220 2019-04-11 Tom de Vries <tdevries@suse.de>
7222 * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
7223 max macro using statement expression.
7225 2019-04-11 David Edelsohn <dje.gcc@gmail.com>
7227 * xcoffout.h (xcoff_private_rodata_section_name): Declare.
7228 * xcoffout.c (xcoff_private_rodata_section_name): Define.
7229 * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
7230 read_only_private_data_section using xcoff_private_rodata_section_name.
7231 (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
7233 2019-04-11 Christophe Lyon <christophe.lyon@linaro.org>
7236 * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
7238 2019-04-11 Jakub Jelinek <jakub@redhat.com>
7240 PR rtl-optimization/89965
7241 * dce.c (sp_based_mem_offset): New function.
7242 (find_call_stack_args): Use sp_based_mem_offset.
7244 2019-04-11 Jonathan Wakely <jwakely@redhat.com>
7246 * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
7248 2019-04-11 Richard Biener <rguenther@suse.de>
7250 PR tree-optimization/90020
7251 * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
7252 * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
7253 * tree-ssa-pre.c (compute_avail): Use it to not put
7254 possibly trapping references after a call that might not
7255 return into EXP_GEN.
7256 * gcse.c (compute_hash_table_work): Do not elide
7257 marking a block containing a call if the call might not
7260 2019-04-11 Richard Biener <rguenther@suse.de>
7262 PR tree-optimization/90018
7263 * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
7264 Test both SLP and interleaving variants.
7266 2019-04-11 Robin Dapp <rdapp@linux.ibm.com>
7268 * config/s390/8561.md: New file.
7269 * config/s390/driver-native.c (s390_host_detect_local_cpu):
7270 Add arch13 cpu model.
7271 * config/s390/s390-opts.h (enum processor_type): Likewise.
7272 * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
7273 (s390_get_unit_mask): Likewise.
7274 (s390_is_fpd): Likewise.
7275 (s390_is_fxd): Likewise.
7276 * config/s390/s390.h (s390_tune_attr): Likewise.
7277 * config/s390/s390.md: Include arch13 pipeline description.
7278 * config/s390/s390.opt: Add arch13.
7280 2018-04-10 Steve Ellcey <sellcey@marvell.com>
7282 PR rtl-optimization/87763
7283 * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
7285 * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
7287 * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
7289 (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
7290 (*aarch64_bfi<GPI:mode>4_noand): Ditto.
7291 (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
7292 (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
7294 2019-04-10 Jonathan Wakely <jwakely@redhat.com>
7296 * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
7297 "Although" in -fipa-icf documentation.
7299 * doc/invoke.texi (Debugging Options): Explicitly state the semantics
7300 of using multiple -g options.
7302 2019-04-10 Martin Liska <mliska@suse.cz>
7304 PR gcov-profile/89959
7305 * doc/gcov.texi: Make documentation of -x option
7308 2019-04-10 Richard Biener <rguenther@suse.de>
7310 * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
7312 (DR_GROUP_SAME_DR_STMT): Remove.
7313 * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
7314 * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
7315 replace with assert.
7316 (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
7317 (vect_record_grouped_load_vectors): Remove unreachable code.
7319 2019-04-10 Richard Earnshaw <rearnsha@arm.com>
7322 * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
7323 obsolete reference to N.
7325 2019-04-10 Jakub Jelinek <jakub@redhat.com>
7328 * expr.c (store_expr): Set properly size on the MEM passed to
7332 * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
7333 with strlen in between hostsz-3 and hostsz-1 inclusive when no
7334 translation is needed, and when translation is needed, only append
7335 ... if the string length is hostsz or more bytes long. Avoid using
7338 2019-04-09 Matthew Malcomson <matthew.malcomson@arm.com>
7341 * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
7342 * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
7344 * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
7345 differences directly.
7346 (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
7348 2019-04-09 Jakub Jelinek <jakub@redhat.com>
7350 PR translation/90011
7351 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
7353 * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
7355 * config/riscv/freebsd.h (LINK_SPEC): Likewise.
7356 * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
7357 * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
7358 trailing space from -gsplit-dwarf diagnostics.
7360 PR tree-optimization/89998
7361 * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
7362 instead of integer_type_node if possible, don't add ranges if return
7363 type is not compatible with int.
7364 * gimple-fold.c (gimple_fold_builtin_sprintf,
7365 gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
7368 2019-04-09 Martin Liska <mliska@suse.cz>
7370 * Makefile.in: Use GENERATOR_CFLAGS for all generators.
7371 * doc/install.texi: Document the new config.
7373 2019-04-09 Richard Sandiford <richard.sandiford@arm.com>
7375 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
7376 use gimple_expr_type for load and store calls. Skip over the
7377 condition argument in a conditional internal function.
7378 Protect use of TREE_INT_CST_LOW.
7380 2019-04-09 Jakub Jelinek <jakub@redhat.com>
7383 * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
7384 (riscv_merge_decl_attributes): Fix typo in diagnostics. Remove
7385 trailing period from it too.
7387 2019-04-08 wu yuan <wuyuan5@huawei.com>
7389 * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
7390 * config/aarch64/aarch64.md : Add "tsv110.md"
7391 * config/aarch64/tsv110.md: New file.
7393 2019-04-08 Richard Biener <rguenther@suse.de>
7395 PR tree-optimization/90006
7396 * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
7399 2019-04-08 Andrea Corallo <andrea.corallo@arm.com>
7402 * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
7404 (fma_root_node): Likewise.
7405 (func_fma_steering): Likewise.
7407 2019-04-08 Jakub Jelinek <jakub@redhat.com>
7409 PR rtl-optimization/89865
7410 * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
7412 PR rtl-optimization/89865
7413 * config/i386/i386.md
7414 (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
7415 numbers not to clash with the additional operands[4].
7416 (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
7417 with extra register copy in the middle.
7419 2019-04-08 Martin Liska <mliska@suse.cz>
7421 PR gcov-profile/89961
7422 * doc/gcov.texi: Document data_file.
7423 * gcov.c (generate_results): Add data_info into JSON output.
7425 2019-04-01 Bin Cheng <bin.cheng@linux.alibaba.com>
7427 PR tree-optimization/89725
7428 * tree-chrec.c (chrec_contains_symbols): New parameter. Handle outer
7429 loop's chrec as invariant symbol.
7430 * tree-chrec.h (chrec_contains_symbols): New parameter.
7431 * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
7432 (build_classic_dist_vector_1, add_other_self_distances): Bypass access
7433 function of loops not in DDR's loop_nest.
7434 * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
7436 2019-04-08 Chenghua Xu <paul.hua.gm@gmail.com>
7439 * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
7442 2019-04-07 Uroš Bizjak <ubizjak@gmail.com>
7445 * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
7446 Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
7448 2019-04-05 Joern Rennecke <joern.rennecke@embecosm.com>
7450 * sched-deps.c (sched_macro_fuse_insns): Check return value of
7451 targetm.fixed_condition_code_regs.
7453 2019-04-05 Richard Biener <rguenther@suse.de>
7457 * tree-cfgcleanup.c (remove_forwarder_block): Always move
7458 debug bind stmts but reset them if they are not valid at the
7461 2019-04-05 Martin Liska <mliska@suse.cz>
7463 PR translation/89936
7464 * collect-utils.c (collect_execute): Use %< and %>, or %qs in
7465 order to wrap keywords or arguments.
7466 * collect2.c (main): Likewise.
7467 (scan_prog_file): Likewise.
7468 (scan_libraries): Likewise.
7469 * common/config/riscv/riscv-common.c
7470 (riscv_subset_list::parsing_subset_version): Likewise.
7471 (riscv_subset_list::parse_std_ext): Likewise.
7472 * config/aarch64/aarch64.c (aarch64_override_options_internal):
7474 * config/arm/arm.c (arm_option_override): Likewise.
7475 * config/cris/cris.c (cris_print_operand): Likewise.
7476 * config/darwin-c.c (darwin_pragma_options): Likewise.
7477 (darwin_pragma_unused): Likewise.
7478 (darwin_pragma_ms_struct): Likewise.
7479 * config/ft32/ft32.c (ft32_print_operand): Likewise.
7480 * config/i386/i386.c (print_reg): Likewise.
7481 (ix86_print_operand): Likewise.
7482 * config/i386/xm-djgpp.h: Likewise.
7483 * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
7484 * config/m32c/m32c.c (m32c_option_override): Likewise.
7485 * config/msp430/msp430.c (msp430_option_override): Likewise.
7486 * config/nds32/nds32.c (nds32_option_override): Likewise.
7487 * config/nvptx/mkoffload.c (main): Likewise.
7488 * config/rx/rx.c (rx_print_operand): Likewise.
7489 (valid_psw_flag): Likewise.
7490 * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
7491 (vms_pragma_nomember_alignment): Likewise.
7492 (vms_pragma_extern_model): Likewise.
7493 * lto-wrapper.c (compile_offload_image): Likewise.
7494 * omp-offload.c (oacc_parse_default_dims): Likewise.
7495 * symtab.c (symtab_node::verify_base): Likewise.
7496 * tlink.c (recompile_files): Likewise.
7497 (start_tweaking): Likewise.
7498 * tree-profile.c (parse_profile_filter): Likewise.
7500 2019-04-05 Richard Sandiford <richard.sandiford@arm.com>
7502 PR tree-optimization/89956
7503 * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
7504 multiple negates of the same value.
7506 2019-04-04 Martin Sebor <msebor@redhat.com>
7510 * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
7511 have the same precision since the function crashes otherwise.
7512 * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
7513 has non-zero arguments.
7515 2019-04-04 Martin Sebor <msebor@redhat.com>
7518 * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
7519 out if the number of arguments is less than expected.
7521 2019-04-04 Jeff Law <law@redhat.com>
7523 PR rtl-optimization/89399
7524 * ree.c (combine_set_extension): Use single_set rather than
7525 digging into PATTERN for items on the candidate list.
7526 (combine_reaching_defs): Likewise.
7528 2019-04-04 Richard Sandiford <richard.sandiford@arm.com>
7530 PR rtl-optimization/46590
7531 * loop-invariant.c (find_defs): Move df_remove_problem and
7532 df_process_deferred_rescans to move_invariants.
7533 Move df_live_add_problem and df_live_set_all_dirty calls
7535 (move_invariants): Likewise.
7536 (move_loop_invariants): Likewise, making the df_live calls
7537 conditional on -O. Remove the problem again if we added it
7540 2019-04-03 qing zhao <qing.zhao@oracle.com>
7542 PR tree-optimization/89730
7543 * ipa-inline.c (can_inline_edge_p): Delete the checking for
7544 -flive-patching=inline-only-static.
7545 (can_inline_edge_by_limits_p): Add the checking for
7546 -flive-patching=inline-only-static and grant always_inline
7547 even when -flive-patching=inline-only-static is specified.
7549 2019-04-03 Jeff Law <law@redhat.com>
7551 PR rtl-optimization/81025
7552 * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
7554 2019-04-03 Richard Biener <rguenther@suse.de>
7556 PR tree-optimization/84101
7557 * tree-vect-stmts.c: Include explow.h for hard_function_value,
7558 regs.h for hard_regno_nregs.
7559 (cfun_returns): New helper.
7560 (vect_model_store_cost): When vectorizing a store to a decl
7561 we return and the function ABI returns in a multi-reg location
7562 account for the possible spilling that will happen.
7564 2019-04-03 Andreas Krebbel <krebbel@linux.ibm.com>
7566 * config/s390/s390.c (s390_legitimate_address_p): Reject long
7567 displacement addresses for vector mode operands.
7569 2019-04-03 Claudiu Zissulescu <claziss@synopsys.com>
7571 * config/arc/arc.c (GMASK_LEN): Define.
7572 (arc_restore_callee_saves): Restore first blink when
7575 2019-04-03 Sudakshina Das <sudi.das@arm.com>
7577 * doc/extend.texi: Add deprecated comment on sign-return-address
7578 function attribute and add mbranch-protection.
7579 * doc/invoke.texi: Add bti to the options for mbranch-protection.
7581 2019-04-03 Richard Biener <rguenther@suse.de>
7584 * lto-wrapper.c (run_gcc): Avoid implicit rules making
7585 the all target phony.
7587 2019-04-02 Uroš Bizjak <ubizjak@gmail.com>
7591 * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
7592 Return false for variable DImode shifts.
7593 (dimode_scalar_chain::compute_convert_gain): Do not handle
7594 register count operand in variable DImode shifts.
7595 (dimode_scalar_chain::make_vector_copies): Remove support to copy
7596 count argument of a variable shift instruction to a vector register.
7597 (dimode_scalar_chain::convert_reg): Remove support to convert
7598 count argument of a variable shift instruction.
7600 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
7602 PR rtl-optimization/84206
7603 * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
7604 iterating over loop headers.
7606 2019-04-02 Andrey Belevantsev <abel@ispras.ru>
7608 PR rtl-optimization/85876
7609 * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
7610 beyond the original fence.
7612 2019-04-02 Ulrich Weigand <uweigand@de.ibm.com>
7614 * config.gcc: Mark spu* targets as deprecated/obsolete.
7616 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7618 * config/s390/s390-builtin-types.def: New builtin function type
7619 definitions. Remove unused types.
7620 * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
7621 (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
7622 (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
7623 overloaded builtins.
7624 (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
7625 (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
7626 * config/s390/vecintrin.h (vec_float): New builtin macro definition.
7627 (vec_double, vec_signed, vec_unsigned): Define to use the new
7628 overloaded builtins.
7629 * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
7632 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7634 * config/s390/s390-builtin-types.def: New builtin function type
7636 * config/s390/s390-builtins.def (s390_vec_search_string_cc)
7637 (s390_vec_search_string_until_zero_cc): New overloaded builtins.
7638 (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
7639 (s390_vstrszh, s390_vstrszf): New low-level builtins.
7640 * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
7641 constant definitions.
7642 * config/s390/vecintrin.h (vec_search_string_cc)
7643 (vec_search_string_until_zero_cc): New builtin name definitions.
7644 * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
7646 ("vec_vstrs<mode>"): New insn definition.
7648 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7650 * config/s390/s390-builtin-types.def: Add new builtin function
7652 * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
7653 New overloaded builtins.
7654 (s390_vec_sldb, s390_vec_srdb): New low-level builtins. and
7656 * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
7657 (UNSPEC_VEC_SLDBYTE): ... this.
7658 (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
7659 * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
7661 * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
7662 Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
7663 ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
7665 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7667 ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
7668 New insn definition.
7669 * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
7670 * config/s390/vector.md (V_HW_HSD): ... here.
7672 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7674 * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
7675 * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
7676 ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
7677 ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
7678 New insn definitions.
7680 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7682 * config/s390/s390-builtin-types.def: Add new builtin function type.
7683 * config/s390/s390-builtins.def: Add overloaded builtin
7684 s390_vec_reve and low-level builtins for s390_vler and s390_vster.
7685 * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
7686 * config/s390/vecintrin.h (vec_reve): New builtin name definition.
7687 * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
7688 ("eltswap<mode>"): New expander.
7689 ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
7692 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7694 * config/s390/s390-builtin-types.def: Add new builtin function types.
7695 * config/s390/s390-builtins.def: Add overloaded builtin
7696 s390_vec_revb. Add low-level builtins for vlbr and vstbr
7698 * config/s390/vecintrin.h (vec_revb): New builtin name definition.
7699 * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
7700 ("bswap<mode>"): New expander.
7701 ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
7703 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7705 * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
7706 * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
7707 vector builtin version number in __VEC__.
7709 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7711 * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
7713 (SFSI): New mode attribute.
7714 ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
7715 ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
7717 ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
7718 ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
7719 ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
7720 ("floatsi<mode>2"): Add wcefb instruction.
7722 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7724 * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
7725 * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
7727 ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
7728 ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
7729 support 32 bit fp-int conversions. Rename to ...
7730 ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
7731 ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
7732 ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
7733 ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
7736 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7738 * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
7739 if-then-else constructs if we can use the select instruction.
7740 * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
7742 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7744 * config/s390/s390.md ("*popcountdi_arch13_cc")
7745 ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
7747 ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
7748 Append _z196 to make it ...
7749 ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
7750 ("popcounthi2_z196"): ... this.
7751 ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
7752 ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
7754 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7756 * config/s390/s390.c (s390_canonicalize_comparison): Convert
7757 certain compares for arch13 in order to make use of the condition
7758 code result produced by the new instructions.
7759 (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
7760 nxrk, and nxgrk instruction patterns.
7761 * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
7762 (inv_no): Add new code iterator together with some attributes.
7763 ("*andc_split_<mode>"): Disable splitter for arch13.
7764 ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
7765 ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
7766 ("*<ANDOR:bitops_name>c<GPR:mode>")
7767 ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
7768 ("*n<ANDOR:inv_bitops_name><mode>_cconly")
7769 ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
7770 ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
7772 2019-04-02 Andreas Krebbel <krebbel@linux.ibm.com>
7774 * common/config/s390/s390-common.c (processor_flags_table): New
7776 * config.gcc: Support arch13 with the --with-arch= configure flag.
7777 * config/s390/driver-native.c (s390_host_detect_local_cpu):
7778 * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
7779 * config/s390/s390.c (s390_get_sched_attrmask)
7780 (s390_get_unit_mask): Add PROCESSOR_ARCH13.
7781 * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
7782 * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
7783 (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
7784 (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
7786 * config/s390/s390.opt: Support arch13 as processor type in
7787 command line options.
7789 2019-04-02 Martin Liska <mliska@suse.cz>
7791 PR translation/89912
7792 * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
7793 Fix param description of graphite-max-arrays-per-scop.
7795 2019-04-02 Eric Botcazou <ebotcazou@adacore.com>
7797 * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
7798 (ASAN_CC1_SPEC): Use it in 64-bit mode.
7799 * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
7801 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
7803 PR rtl-optimization/85412
7804 * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
7805 sel_sched_region_1, not after.
7807 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
7809 PR rtl-optimization/86928
7810 * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
7811 compute_live if necessary.
7812 (sel_redirect_edge_and_branch): Likewise.
7814 2019-04-01 Vladimir Makarov <vmakarov@redhat.com>
7816 PR rtl-optimization/89865
7817 * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
7818 register if it is a part of small class.
7820 2019-04-01 Andrey Belevantsev <abel@ispras.ru>
7822 PR rtl-optimization/87273
7823 * sel-sched-ir.c (merge_fences): Remove assert.
7825 2019-04-01 Richard Biener <rguenther@suse.de>
7827 PR tree-optimization/46590
7828 * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
7829 (dom_walker::m_reachability): Add in place of...
7830 (dom_walker::m_skip_unreachable_blocks): ...this.
7831 * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
7832 Move complex initialization ...
7833 (dom_walker::walk): Here. Especially compute m_bb_to_rpo
7834 lazily and initialize edge flags on each invocation.
7835 (dom_walker::bb_reachable): Use m_reachability.
7837 2019-04-01 Martin Liska <mliska@suse.cz>
7840 * opt-suggestions.c (option_proposer::build_option_suggestions):
7841 Add variant without any argument in order to provide better
7844 2019-04-01 Richard Biener <rguenther@suse.de>
7847 * gimple.c: Include langhooks.h.
7848 (gimple_get_alias_set): Treat enumeral types as the underlying
7851 2019-03-29 Kugan Vivekanandarajah <kuganv@linaro.org>
7852 Eric Botcazou <ebotcazou@adacore.com>
7854 PR rtl-optimization/89862
7855 * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
7856 that operates on the full registers for WORD_REGISTER_OPERATIONS
7859 2019-03-29 Jim Wilson <jimw@sifive.com>
7861 * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
7862 Clear MASK_RVC and then set if C subset supported.
7864 2019-03-29 Jakub Jelinek <jakub@redhat.com>
7867 * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
7868 non-addressable complit into its initializer if it is volatile.
7870 2019-03-29 Roman Zhuykov <zhroma@ispras.ru>
7872 * opts-common.c (integral_argument): Set errno properly in one case.
7874 2019-03-29 Martin Liska <mliska@suse.cz>
7876 * doc/invoke.texi: Remove -Wchkp from documentation.
7878 2019-03-29 Martin Liska <mliska@suse.cz>
7880 * dbgcnt.c (print_limit_reach): New function.
7883 2019-03-29 Martin Liska <mliska@suse.cz>
7885 * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
7886 (dbg_cnt_process_opt): Parse first tokens aas
7887 dbg_cnt_process_single_pair is also using strtok.
7889 2019-03-29 Jakub Jelinek <jakub@redhat.com>
7891 PR rtl-optimization/87485
7892 * function.c (expand_function_end): Move stack_protect_epilogue
7893 before loading of return value into hard register(s).
7895 2019-03-28 Jakub Jelinek <jakub@redhat.com>
7898 * tree-inline.h (struct copy_body_data): Add
7899 dont_remap_vla_if_no_change flag.
7900 * tree-inline.c (remap_type_3, remap_type_2): New functions.
7901 (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
7902 and remap_type_2 returns false.
7903 * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
7904 Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
7905 only from where it is copied to nested contexts.
7907 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
7910 * config/i386/i386.md (RMW operation with LEA peephole):
7911 Use LEAMODE mode attribute instead of SWI mode iterator for
7914 2019-03-28 Uroš Bizjak <ubizjak@gmail.com>
7917 * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
7918 Also process XEXP (src, 0) of a shift insn.
7920 2019-03-28 David Malcolm <dmalcolm@redhat.com>
7923 * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
7924 Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
7926 2019-03-28 Jakub Jelinek <jakub@redhat.com>
7928 * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
7930 (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
7931 (pass_cprop_hardreg::execute): Use those. Don't repeat bb processing
7932 immediately after first one with df_analyze in between, but rather
7933 process all bbs, queueing ones that need second pass in a worklist,
7934 df_analyze, process queued debug insn changes and if second pass is
7935 needed, process bbs from worklist, df_analyze, process queued debug
7938 * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
7939 or CALL_P instead of INSN_P && !DEBUG_INSN_P.
7940 (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
7942 2019-03-28 Jonathan Wakely <jwakely@redhat.com>
7945 * gengtype.h (create_nested_ptr_option): Fix parameter names to match
7948 2019-03-27 Mateusz B <mateuszb@poczta.onet.pl>
7951 * config/i386/i386.c (ix86_function_value_1): Call the newly added
7952 function for 32-bit MS_ABI.
7953 (function_value_ms_32): New function.
7955 2019-03-27 Andrew Stubbs <ams@codesourcery.com>
7957 * config/gcn/gcn.md (CC_SAVE_REG): New constant.
7958 (movdi): Call gen_movdi_symbol_save_scc.
7959 (gen_movdi_symbol_save_scc): New insn and split.
7961 2019-03-27 Peter Bergner <bergner@linux.ibm.com>
7963 PR rtl-optimization/89313
7964 * function.c (matching_constraint_num): New static function.
7965 (match_asm_constraints_1): Use it. Fixup white space and comment.
7966 Don't replace inputs with non-matching constraints which conflict
7967 with early clobber outputs.
7969 2019-03-27 Jeff Law <law@redhat.com>
7972 PR rtl-optimization/87761
7973 PR rtl-optimization/89826
7974 * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
7976 (pass_cprop_hardreg::execute): Call df_analyze after adding the
7977 note problem to get REG_DEAD/REG_UNUSED notes updated.
7979 2019-03-27 Richard Biener <rguenther@suse.de>
7981 PR tree-optimization/89463
7982 * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
7983 queue edges to remove.
7984 (eliminate_unnecessary_stmts): Remove dead PHIs alongside
7985 dead stmts. Delay edge removal until PHIs are removed to
7986 make debug-stmt creation not confused by seemingly degenerate
7989 2019-03-27 Alan Modra <amodra@gmail.com>
7991 * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
7993 * config/rs6000/darwin.h: Likewise.
7994 * config/rs6000/rs6000.c: Likewise.
7996 2019-03-27 Alan Modra <amodra@gmail.com>
7998 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
7999 assign rs6000_hard_regno_mode_ok_p[m][r]. Formatting.
8001 2019-03-26 Andrew Waterman <andrew@sifive.com>
8002 Jim Wilson <jimw@sifive.com>
8004 * config/riscv/generic.md (generic_alu, generic_load, generic_store)
8005 (generic_xfer, generic_branch, generic_imul, generic_idivsi)
8006 (generic_idivdi, generic_fmul_single, generic_fmul_double)
8007 (generic_fdiv, generic_fsqrt): Add check for generic tune.
8008 (generic_alu): Add auipc to type list.
8009 * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
8010 (riscv_microarchitecture): Declare.
8011 * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
8012 * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
8014 (riscv_microarchitecture): New.
8015 (sifive_7_tune_info): New.
8016 (riscv_cpu_info_table): Add microarchitecture value for rocket and
8017 size. Add sifive-3-series, sifive-5-series, and sifive-7-series
8019 (riscv_store_data_bypass_p): New.
8020 (riscv_option_override): Set riscv_microarchitecture from
8021 cpu->microarchitecture.
8022 * config/riscv/riscv.md: Include sifive-7.md.
8025 (auipc<mode>): Change type to auipc.
8026 (restore_stack_nonlocal): New.
8027 * config/riscv/sifive-7.md: New.
8028 * doc/invoke.texi (RISC-V Options): Update mtune docs.
8030 2019-03-26 Uroš Bizjak <ubizjak@gmail.com>
8033 * config/i386/i386.c (dimode_scalar_chain::convert_reg):
8034 Also process XEXP (src, 0) of a shift insn.
8036 2019-03-26 Richard Biener <rguenther@suse.de>
8038 * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
8039 (copy_debug_stmt): Likewise.
8040 (expand_call_inline): Likewise.
8041 (copy_bb): Avoid redundant lookup & set of gimple_block.
8042 * gimple-low.c (lower_gimple_return): Likewise.
8043 (lower_builtin_setjmp): Likewise.
8045 2019-03-26 Jakub Jelinek <jakub@redhat.com>
8047 * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
8048 is constant 0, turn into static const data member initialized to false.
8049 (hash_table::hash_table): Only initialize m_gather_mem_stats #if
8050 GATHER_STATISTICS. Add ATTRIBUTE_UNUSED to gather_mem_stats param.
8052 2019-03-26 Jason Merrill <jason@redhat.com>
8053 Jakub Jelinek <jakub@redhat.com>
8055 * mem-stats.h (mem_alloc_description::unregister_descriptor): New
8057 (mem_alloc_description::release_object_overhead): Fix comment typos.
8058 * hash-table.h (hash_table::~hash_table): Call
8059 release_instance_overhead only if m_entries is non-NULL, otherwise
8060 call unregister_descriptor.
8062 2019-03-26 Bin Cheng <bin.cheng@linux.alibaba.com>
8064 PR tree-optimization/81740
8065 * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
8066 In case of outer loop vectorization, check for backward dependence
8067 at the inner loop if outer loop dependence is reversed.
8069 2019-03-26 Alan Modra <amodra@gmail.com>
8071 * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
8072 rs6000_vector_mem init. Correct wI and wJ comment.
8074 2019-03-25 Alexander Monakov <amonakov@ispras.ru>
8076 PR rtl-optimization/88347
8077 PR rtl-optimization/88423
8078 * sched-deps.c (sched_analyze_insn): Take into account that for
8079 tablejumps the barrier appears after a label and a jump_table_data.
8081 2019-03-25 Martin Sebor <msebor@redhat.com>
8084 * c-common.c (check_user_alignment): Rename local. Correct maximum
8085 alignment in diagnostic. Avoid assuming argument fits in SHWI,
8086 convert it to UHWI when it fits.
8088 2019-03-25 Johan Karlsson <johan.karlsson@enea.com>
8091 * dwarf2out.c (premark_used_variables): New function.
8092 (prune_unused_types_walk): Do not mark not premarked external
8094 (prune_unused_types): Call premark_used_variables.
8096 2019-03-25 Vladimir Makarov <vmakarov@redhat.com>
8098 PR rtl-optimization/89676
8099 * lra-constraints.c (curr_insn_transform): Do match reload for
8100 early clobbers when the match was successful only for different
8103 2019-03-25 Martin Sebor <msebor@redhat.com>
8105 * doc/extend.texi (Common Type Attributes): Document vector_size.
8106 (Common Variable Attributes): Mention size constraint. Correct
8108 (Vector Extensions): Use @dfn when defining bas type. Clarify
8109 base type and size constraints.
8111 2019-03-25 Richard Biener <rguenther@suse.de>
8113 PR tree-optimization/89789
8114 * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
8115 changes from non-undefined back to undefined.
8117 2019-03-25 Thomas Otto <thomas.otto@pdv-fs.de>
8119 * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
8120 heap string and a gc string, but since this variable is unknown to
8121 ggc the gc string might get reused and corrupted. Fixed by always
8122 using a heap string.
8124 2019-03-25 Richard Biener <rguenther@suse.de>
8126 PR tree-optimization/89779
8127 * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
8128 to remove IV defs, delay actual removal.
8129 (tree_ssa_iv_optimize_loop): Likewise. Avoid SCEV reset.
8130 (tree_ssa_iv_optimize): Remove eliminated IV defs at the
8131 very end, properly also reset loop control IV information.
8133 2019-03-25 Richard Biener <rguenther@suse.de>
8135 PR tree-optimization/89802
8136 * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
8137 move EH data to folded stmt.
8139 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
8141 * config/s390/s390-builtin-types.def: Remove few unused types and
8142 fix sort order for others.
8144 2019-03-25 Andreas Krebbel <krebbel@linux.ibm.com>
8146 * config/s390/s390-c.c (s390_fn_types_compatible): Print the
8147 expected and found types with -mdebug during builtin matching.
8149 2019-03-25 Richard Biener <rguenther@suse.de>
8152 * fold-const.c (operand_equal_p): Revert last change with
8155 2019-03-24 Segher Boessenkool <segher@kernel.crashing.org>
8157 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
8158 notes for the result of the __tls_get_addr calls.
8159 * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
8161 2019-03-24 Jeff Law <law@redhat.com>
8163 * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
8165 PR rtl-optimization/87761
8166 * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
8167 not INSN. Also check RTX_FRAME_RELATED_P. Queue insns for DF rescan
8169 (pass_cprop_hardreg::execute): Add df note problem and defer insn
8170 rescans. Reprocess blocks as needed, calling df_analyze before
8171 reprocessing. Always call df_analyze before fixing up debug bind
8174 2019-03-23 Segher Boessenkool <segher@kernel.crashing.org>
8176 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
8179 2019-03-22 Andrew Pinski <apinski@marvell.com>
8181 * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
8182 attrribute for uxtw.
8184 2019-03-26 Jeff Law <law@redhat.com>
8186 PR rtl-optimization/87761
8187 * config/mips/mips-protos.h (mips_split_move): Add new argument.
8188 (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
8189 (mips_split_move): Accept new INSN argument. Try to forward SRC
8190 into the next instruction.
8191 (mips_split_move_insn): Pass INSN through to mips_split_move.
8193 2019-03-22 Vladimir Makarov <vmakarov@redhat.com>
8195 PR rtl-optimization/89676
8196 * lra-constraints.c (curr_insn_transform): Do match reload for
8197 early clobbers even if the match was successful.
8199 2019-03-22 Jakub Jelinek <jakub@redhat.com>
8202 * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
8204 2019-03-22 Bill Schmidt <wschmidt@linux.ibm.com>
8206 * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
8208 2019-03-22 Jakub Jelinek <jakub@redhat.com>
8210 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
8211 <avx512>_fmsub_<mode>_mask3<round_name>,
8212 <avx512>_fnmadd_<mode>_mask3<round_name>,
8213 <avx512>_fnmsub_<mode>_mask3<round_name>,
8214 avx512f_vmfmadd_<mode>_mask3<round_name>,
8215 avx512f_vmfmsub_<mode>_mask3<round_name>,
8216 *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
8217 instead of register_operand and %v instead of v for match_operand 1.
8218 (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
8219 (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this. Use
8220 <round_nimm_predicate> instead of register_operand and %v instead of v
8221 for match_operand 1.
8223 * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
8224 <avx512>_fmadd_<mode>_mask3<round_name>,
8225 <avx512>_fmsub_<mode>_mask<round_name>,
8226 <avx512>_fmsub_<mode>_mask3<round_name>,
8227 <avx512>_fnmadd_<mode>_mask<round_name>,
8228 <avx512>_fnmadd_<mode>_mask3<round_name>,
8229 <avx512>_fnmsub_<mode>_mask<round_name>,
8230 <avx512>_fnmsub_<mode>_mask3<round_name>,
8231 <avx512>_fmaddsub_<mode>_mask<round_name>,
8232 <avx512>_fmaddsub_<mode>_mask3<round_name>,
8233 <avx512>_fmsubadd_<mode>_mask<round_name>,
8234 <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
8235 <round_nimm_predicate> instead of nonimmediate_operand.
8236 (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
8237 fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
8238 Use register_operand instead of <round_nimm_predicate> for the
8239 operand that needs to match output.
8240 (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
8241 *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
8242 Likewise. Formatting fixes.
8245 * config/i386/i386.c (enum ix86_builtins): Remove
8246 IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
8247 * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
8248 __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
8249 __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
8250 __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
8251 __builtin_ia32_vfmsubss3_mask3): New builtins.
8252 * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
8253 avx512f_vmfmadd_<mode>_mask3<round_name>,
8254 avx512f_vmfmadd_<mode>_maskz_1<round_name>,
8255 *avx512f_vmfmsub_<mode>_mask<round_name>,
8256 avx512f_vmfmsub_<mode>_mask3<round_name>,
8257 *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
8258 *avx512f_vmfnmadd_<mode>_mask<round_name>,
8259 *avx512f_vmfnmadd_<mode>_mask3<round_name>,
8260 *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
8261 *avx512f_vmfnmsub_<mode>_mask<round_name>,
8262 avx512f_vmfnmsub_<mode>_mask3<round_name>,
8263 *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
8264 (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
8265 * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
8266 _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
8267 _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
8268 _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
8269 _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
8270 _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
8271 _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
8272 _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
8273 _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
8274 _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
8275 _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
8276 _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
8277 _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
8278 _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
8279 _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
8280 _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
8281 _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
8282 _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
8283 _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
8284 _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
8286 2019-03-21 Martin Sebor <msebor@redhat.com>
8288 PR tree-optimization/89350
8289 * builtins.c (compute_objsize): Also ignore offsets whose upper
8291 * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
8292 (builtin_memref::builtin_memref): Initialize new member.
8293 Allow EXPR to be null.
8294 (builtin_memref::extend_offset_range): Replace local with a member.
8295 Avoid assuming pointer offsets are unsigned.
8296 (builtin_memref::set_base_and_offset): Determine base object
8297 before computing offset range.
8298 (builtin_access::builtin_access): Handle memset.
8299 (builtin_access::generic_overlap): Replace local with a member.
8300 (builtin_access::strcat_overlap): Same.
8301 (builtin_access::overlap): Same.
8302 (maybe_diag_overlap): Same.
8303 (maybe_diag_access_bounds): Same.
8304 (wrestrict_dom_walker::check_call): Handle memset.
8305 (check_bounds_or_overlap): Same.
8307 2019-03-21 Jan Hubicka <hubicka@ucw.cz>
8308 Jakub Jelinek <jakub@redhat.com>
8311 * tree.c (fld_type_variant, fld_incomplete_type_of,
8312 fld_process_array_type): Call fld->pset.add and don't call
8313 add_tree_to_fld_list if it returns true.
8314 (free_lang_data_in_type): Similarly with self-recursive call. Purge
8315 non-marked types from TYPE_NEXT_VARIANT list.
8316 (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
8318 2019-03-21 Jakub Jelinek <jakub@redhat.com>
8320 * hash-table.h (hash_table): Add Lazy template parameter defaulted
8321 to false, if true, don't alloc_entries during construction, but defer
8322 it to the first method that needs m_entries allocated.
8323 (hash_table::hash_table, hash_table::~hash_table,
8324 hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
8325 hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
8326 hash_table::clear_slot, hash_table::traverse_noresize,
8327 hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
8328 * hash-set.h (hash_set): Add Lazy template parameter defaulted to
8330 (hash_set::contains): If Lazy is true, use find_slot_with_hash with
8331 NO_INSERT instead of find_with_hash.
8332 (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
8333 hash_set::m_table): Add Lazy to template params of hash_table.
8334 (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
8335 * attribs.c (test_attribute_exclusions): Likewise.
8336 * hash-set-tests.c (test_set_of_strings): Add iterator tests for
8337 hash_set. Add tests for hash_set with Lazy = true.
8339 2019-03-21 Richard Biener <rguenther@suse.de>
8341 PR tree-optimization/89779
8342 * tree.c (tree_nop_conversion): Consolidate and fix defensive
8343 checks with respect to released SSA names now having error_mark_node
8345 * fold-const.c (operand_equal_p): Likewise.
8347 2019-03-20 Andreas Krebbel <krebbel@linux.ibm.com>
8350 * config/s390/s390.c (global_not_special_regno_p): Move to make it
8352 (s390_optimize_register_info): Use global_not_special_regno_p to
8353 check for global regs.
8355 2019-03-20 Jakub Jelinek <jakub@redhat.com>
8358 * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
8359 update this_alternative nor this_alternative_set.
8361 2019-03-19 Jim Wilson <jimw@sifive.com>
8364 * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x. New locals
8365 align, size, offset. Use them to handle a BLKmode reference. Update
8367 (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
8369 2019-03-19 Jakub Jelinek <jakub@redhat.com>
8371 PR rtl-optimization/89768
8372 * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
8374 (unroll_loop_runtime_iterations): Likewise.
8376 2019-03-19 Martin Sebor <msebor@redhat.com>
8378 PR tree-optimization/89644
8379 * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
8380 rather than endptr as an indicator of nul-termination.
8382 PR tree-optimization/89644
8383 * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
8384 arrays in determining sequence sizes in strncpy and stpncpy.
8386 2019-03-19 Martin Liska <mliska@suse.cz>
8389 * predict.c (combine_predictions_for_bb): Empty likely_edges and
8390 unlikely_edges if there's an edge that belongs to both these sets.
8392 2018-03-19 Segher Boessenkool <segher@kernel.crashing.org>
8395 * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
8396 non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
8397 go via a stack temporary.
8399 2019-03-19 Jakub Jelinek <jakub@redhat.com>
8402 * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
8403 instead of gen_rtx_SUBREG.
8404 * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
8406 2019-03-19 Richard Biener <rguenther@suse.de>
8409 * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
8411 2019-03-19 Jan Hubicka <hubicka@ucw.cz>
8415 * tree.c (free_lang_data_in_decl): Do not free context of C++
8418 2019-03-19 Jakub Jelinek <jakub@redhat.com>
8421 * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
8422 subs for the first alternative except when operands[3] is 1.
8425 * gimplify.c (gimplify_asm_expr): For output argument with
8426 TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
8429 2019-03-19 Eric Botcazou <ebotcazou@adacore.com>
8431 PR rtl-optimization/89753
8432 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
8433 explicit unrolling factor even more robust.
8435 2019-03-19 Jakub Jelinek <jakub@redhat.com>
8438 * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
8439 compensation use x2 += 1 instead of x2 -= -1 and when honoring
8440 signed zeros, do another copysign after the compensation.
8442 2019-03-18 Martin Sebor <msebor@redhat.com>
8444 PR tree-optimization/89720
8445 * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
8446 more conservatively, the same as anti-range.
8448 2019-03-18 Richard Biener <rguenther@suse.de>
8451 * tree-ssanames.c (release_ssa_name_fn): For released SSA names
8452 use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
8453 basic-blocks that are removed. Remove restoring SSA_NAME_VAR.
8454 * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
8456 2019-03-18 Andrew Stubbs <ams@codesourcery.com>
8458 * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
8459 Extend queue to 1024 entries.
8460 Add "consumed" field.
8461 (gomp_print_output): Remove print_index parameter.
8462 Add final parameter.
8463 Change limit to unsigned.
8464 Use consumed field to implement circular buffer.
8465 Detect interrupted print in final pass.
8466 Flush output at the end.
8467 (run): Update gomp_print_output usage.
8468 (main): Initialize kernargs->output_data.consumed.
8470 2019-03-18 Richard Sandiford <richard.sandiford@arm.com>
8472 * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
8473 calculation of the minimum number of scalar iterations for
8474 fully-predicated loops.
8476 2019-03-18 Martin Jambor <mjambor@suse.cz>
8478 PR tree-optimization/89546
8479 * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
8480 any propagation to its children took place.
8482 2019-03-18 Andrew Burgess <andrew.burgess@embecosm.com>
8485 * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
8486 parameter, and make use of it.
8487 (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
8489 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
8491 * config/arc/arc.opt (mcode-density-frame): Get the inital value
8492 from TARGET_CODE_DENSITY_FRAME_DEFAULT.
8493 * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
8494 * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
8495 * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
8496 match what the ops is doing.
8497 (push_multi_fp_blink): Likewise.
8498 * config/arc/arc.c (arc_override_options): Enable enter/leave when
8499 compiling for size and elf target.
8500 (arc_save_callee_enter): Adjust note to match what enter/leave
8503 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
8505 * config/arc/arc.md (tst_movb): Fix constraint.
8507 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
8509 * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
8511 2019-03-18 Claudiu Zissulescu <claziss@synopsys.com>
8513 * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
8514 * config/arc/arc.c (arc_conditional_register_usage): Remove all
8515 reg_alloc_order references.
8516 (size_alloc_order): Define.
8517 (arc_adjust_reg_alloc_order): New function.
8518 * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
8520 (ADJUST_REG_ALLOC_ORDER): Define.
8521 (HONOR_REG_ALLOC_ORDER): Likewise.
8523 2019-03-18 Richard Biener <rguenther@suse.de>
8526 * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
8527 loads and stores a bit more.
8529 2019-03-18 Richard Biener <rguenther@suse.de>
8532 * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
8533 load pessimization to stores as well.
8535 2019-03-18 Andrey Belevantsev <abel@ispras.ru>
8538 * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
8539 successor, use NULL as its av set.
8541 2019-03-15 Segher Boessenkool <segher@kernel.crashing.org>
8543 PR rtl-optimization/89721
8544 * lra-constraints (invariant_p): Return false if side_effects_p holds.
8546 2019-03-15 Kelvin Nilsen <kelvin@gcc.gnu.org>
8549 * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8550 When handling vec_extract, use modular arithmetic to allow
8551 constant selectors greater than vector length.
8552 * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
8553 V1TImode vectors to have constant selector values greater than 0.
8554 Use modular arithmetic to compute vector index.
8555 (rs6000_split_vec_extract_var): Use modular arithmetic to compute
8556 index for in-memory vectors. Correct code generation for
8557 in-register vectors.
8558 (altivec_expand_vec_ext_builtin): Use modular arithmetic to
8561 2019-03-15 Alexandre Oliva <aoliva@redhat.com>
8565 * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
8568 2019-03-15 Jakub Jelinek <jakub@redhat.com>
8571 * tree.c (inchash::add_expr): Strip any location wrappers.
8572 * fold-const.c (operand_equal_p): Move stripping of location wrapper
8573 after hash verification.
8576 * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
8577 SIGN_EXTEND and ZERO_EXTEND.
8579 2019-03-14 Jason Merrill <jason@redhat.com>
8580 Jakub Jelinek <jakub@redhat.com>
8582 * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
8583 than if is_empty (*slot).
8584 * hash-set-tests.c (test_set_of_strings): Add tests for addition of
8585 existing elt and for elt removal.
8586 * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
8587 of already removed elt.
8589 2019-03-15 H.J. Lu <hongjiu.lu@intel.com>
8592 * config/i386/i386.c (remove_partial_avx_dependency): Handle
8595 2019-03-14 Martin Liska <mliska@suse.cz>
8598 * doc/invoke.texi: Remove -fdump-class-hierarchy option.
8600 2019-03-14 Richard Biener <rguenther@suse.de>
8603 * config/i386/i386.c (make_resolver_func): Properly set
8604 DECL_CONTEXT on the RESULT_DECL.
8605 * config/rs6000/rs6000.c (make_resolver_func): Likewise.
8607 2019-03-14 Richard Biener <rguenther@suse.de>
8609 * gimple-pretty-print.c: Include cfgloop.h.
8610 (dump_gimple_phi): Adjust.
8611 (dump_gimple_bb_header): Dump loop header for GIMPLE.
8612 (pp_cfg_jump): Adjust.
8613 (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
8614 * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
8615 (lower_phi_internal_fn): Remove.
8616 (verify_gimple_call): Remove IFN_PHI special-casing.
8617 (dump_function_to_file): Dump IL state.
8618 * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
8619 done to deal with PHI nodes being present in non-SSA state.
8621 2019-03-14 Jakub Jelinek <jakub@redhat.com>
8624 * multiple_target.c (create_dispatcher_calls): Change
8625 references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
8626 In the node->iterate_referring loop, push *ref rather than ref, call
8627 ref->remove_reference () and always pass 0 to iterate_referring.
8629 PR rtl-optimization/89679
8630 * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
8631 would contain a paradoxical SUBREG.
8633 2019-03-14 Richard Biener <rguenther@suse.de>
8635 PR tree-optimization/89710
8636 * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
8639 2019-03-14 Martin Liska <mliska@suse.cz>
8641 * coverage.c (coverage_begin_function): Stream also
8643 * doc/gcov.texi: Document 2 new fields in JSON file. Improve
8644 documentation about function declaration location.
8645 * gcov-dump.c (tag_function): Print whole range
8646 of function declaration.
8647 * gcov.c (struct function_info): Add end_column field.
8648 (function_info::function_info): Initialize it.
8649 (output_json_intermediate_file): Output {start,end}_column
8651 (read_graph_file): Read end_column.
8653 2019-03-14 Richard Biener <rguenther@suse.de>
8656 * fold-const.c (operand_equal_p): For INDIRECT_REF check
8657 that the access types are similar.
8659 2019-03-14 Jakub Jelinek <jakub@redhat.com>
8661 PR tree-optimization/89703
8662 * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
8663 aren't compatible also with builtin_decl_explicit. Check pure
8664 or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
8665 and BUILT_IN_STPNCPY{,_CHK}.
8667 2019-03-14 H.J. Lu <hongjiu.lu@intel.com>
8670 * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
8671 addr32 prefix to VSIB address for X32.
8672 * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
8674 (*avx512pf_gatherpf<mode>df_mask): Likewise.
8675 (*avx512pf_scatterpf<mode>sf_mask): Likewise.
8676 (*avx512pf_scatterpf<mode>df_mask): Likewise.
8677 (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
8678 (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
8679 (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
8680 (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
8681 (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
8682 (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
8683 (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
8684 (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
8685 (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
8686 (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
8687 (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
8688 (*avx512f_scatterdi<mode>): Likewise.
8690 2019-03-13 Vladimir Makarov <vmakarov@redhat.com>
8693 * lra-constraints.c (inherit_in_ebb): Update
8694 potential_reload_hard_regs along with live_hard_regs.
8696 2019-03-13 Jakub Jelinek <jakub@redhat.com>
8699 * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
8701 (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
8703 2019-03-13 Martin Sebor <msebor@redhat.com>
8705 PR tree-optimization/89662
8706 * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
8709 2019-03-13 Richard Biener <rguenther@suse.de>
8712 * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
8713 throw FP expressions at tree-affine.
8715 2019-03-14 Richard Biener <rguenther@suse.de>
8717 * tree-pretty-print.c (dump_generic_node): For -gimple properly
8718 dump negative integer constants using _Literal (type) -num.
8720 2019-03-13 Jakub Jelinek <jakub@redhat.com>
8722 * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
8723 nonlocal_value member.
8726 * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
8727 (ipa_simd_modify_function_body): Handle PHIs.
8729 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
8731 * config/s390/s390.c (s390_option_override_internal): Use more
8732 aggressive inlining parameters.
8734 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
8736 * config/s390/3906.md: New file.
8737 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
8738 (LONGRUNNING_THRESHOLD): Remove.
8739 (MAX_SCHED_MIX_SCORE): Decrease.
8740 (MAX_SCHED_MIX_DISTANCE): Decrease.
8741 (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
8742 (struct s390_sched_state): New struct to hold scheduling state.
8743 (S390_SCHED_STATE_NORMAL): Remove.
8744 (S390_SCHED_STATE_CRACKED): Remove.
8745 (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
8746 (s390_get_sched_attrmask): Use new attribute.
8747 (s390_get_unit_mask): Use new units.
8748 (s390_is_fpd): New function.
8749 (s390_is_fxd): New function.
8750 (s390_is_longrunning): New function.
8751 (s390_sched_score): Use new functions.
8752 (s390_sched_reorder): Likewise.
8753 (s390_sched_variable_issue): Rework and use new functions.
8754 (s390_sched_init): Use new functions.
8755 * config/s390/s390.h (s390_tune_attr): Add z14.
8756 * config/s390/s390.md: Add z14.
8758 2019-03-12 Robin Dapp <rdapp@linux.ibm.com>
8760 * config/s390/2964.md: Update pipeline description.
8761 * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
8762 (LONGRUNNING_THRESHOLD): Remove.
8763 (LATENCY_FACTOR): Remove.
8764 (s390_get_unit_mask): Add unit.
8765 (s390_sched_score): Use fxd/fpd.
8766 (s390_sched_variable_issue): Use fxd/fpd.
8768 2019-03-12 Martin Liska <mliska@suse.cz>
8770 * config/i386/i386.c: Reword an error message.
8772 2019-03-12 Martin Jambor <mjambor@suse.cz>
8774 * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
8775 terminate with newline.
8777 2019-03-12 Jakub Jelinek <jakub@redhat.com>
8780 * config/s390/s390.md (tabort): Use %wd instead of
8781 HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
8782 letters and periods.
8783 * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
8784 output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
8788 * builtins.c (expand_builtin_int_roundingfn,
8789 expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
8790 gcc_unreachable if validate_arglist fails.
8792 2019-03-12 Richard Biener <rguenther@suse.de>
8794 PR tree-optimization/89664
8795 * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
8796 free the occurance tree after the early out.
8798 2019-03-11 Jakub Jelinek <jakub@redhat.com>
8802 * vr-values.c (vr_values::update_value_range): If
8803 old_vr->varying_p (), don't update it, make new_vr also VARYING
8806 2019-03-11 Martin Liska <mliska@suse.cz>
8808 * config/aarch64/aarch64.c (aarch64_override_options_internal):
8809 Fix double string quoting.
8811 2019-03-11 Martin Liska <mliska@suse.cz>
8813 * collect-utils.c (collect_wait): Wrap apostrophes
8814 in gcc internal format with %'.
8815 * collect2.c (main): Likewise.
8816 (scan_prog_file): Likewise.
8817 (scan_libraries): Likewise.
8818 * config/i386/i386.c (ix86_expand_call): Likewise.
8819 (ix86_handle_interrupt_attribute): Likewise.
8820 * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
8821 * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
8822 * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
8823 * lto-wrapper.c (find_crtoffloadtable): Likewise.
8824 * symtab.c (symtab_node::verify_base): Likewise.
8825 * tree-cfg.c (verify_gimple_label): Likewise.
8826 * tree.c (verify_type_variant): Likewise.
8828 2019-03-11 Martin Liska <mliska@suse.cz>
8830 * builtins.c (expand_builtin_thread_pointer): Wrap an option name
8831 in a string format message and fix GNU coding style.
8832 (expand_builtin_set_thread_pointer): Likewise.
8833 * common/config/aarch64/aarch64-common.c
8834 (aarch64_rewrite_selected_cpu): Likewise.
8835 * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
8836 * common/config/arc/arc-common.c (arc_handle_option): Likewise.
8837 * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
8838 * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
8839 * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
8840 * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
8841 * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
8842 * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
8843 * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
8844 * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
8846 * common/config/riscv/riscv-common.c
8847 (riscv_subset_list::parsing_subset_version): Likewise.
8848 (riscv_subset_list::parse_std_ext): Likewise.
8849 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
8850 (riscv_subset_list::parse): Likewise.
8851 * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
8852 * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
8853 (aarch64_override_options_internal): Likewise.
8854 (aarch64_validate_mcpu): Likewise.
8855 (aarch64_validate_march): Likewise.
8856 (aarch64_validate_mtune): Likewise.
8857 (aarch64_override_options): Likewise.
8858 * config/alpha/alpha.c (alpha_option_override): Likewise.
8859 * config/arc/arc.c (arc_init): Likewise.
8860 (parse_mrgf_banked_regs_option): Likewise.
8861 (arc_override_options): Likewise.
8862 (arc_expand_builtin_aligned): Likewise.
8863 * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
8864 (arm_expand_builtin): Likewise.
8865 * config/arm/arm.c (arm_option_check_internal): Likewise.
8866 (arm_configure_build_target): Likewise.
8867 (arm_option_override): Likewise.
8868 (arm_options_perform_arch_sanity_checks): Likewise.
8869 (arm_handle_cmse_nonsecure_entry): Likewise.
8870 (arm_handle_cmse_nonsecure_call): Likewise.
8871 (arm_tls_referenced_p): Likewise.
8872 (thumb1_expand_prologue): Likewise.
8873 * config/avr/avr.c (avr_option_override): Likewise.
8874 * config/bfin/bfin.c (bfin_option_override): Likewise.
8875 * config/c6x/c6x.c (c6x_option_override): Likewise.
8876 * config/cr16/cr16.c (cr16_override_options): Likewise.
8877 * config/cris/cris.c (cris_option_override): Likewise.
8878 * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
8879 * config/darwin-c.c (macosx_version_as_macro): Likewise.
8880 * config/darwin.c (darwin_override_options): Likewise.
8881 * config/frv/frv.c (frv_expand_builtin): Likewise.
8882 * config/h8300/h8300.c (h8300_option_override): Likewise.
8883 * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
8884 (ix86_option_override_internal): Likewise.
8885 (warn_once_call_ms2sysv_xlogues): Likewise.
8886 (ix86_expand_prologue): Likewise.
8887 (split_stack_prologue_scratch_regno): Likewise.
8888 (ix86_warn_parameter_passing_abi): Likewise.
8889 * config/ia64/ia64.c (fix_range): Likewise.
8890 * config/m68k/m68k.c (m68k_option_override): Likewise.
8891 * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
8892 * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
8893 (mips_set_compression_mode): Likewise.
8894 * config/mmix/mmix.c (mmix_option_override): Likewise.
8895 * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
8896 * config/msp430/msp430.c (msp430_option_override): Likewise.
8897 * config/nds32/nds32.c (nds32_option_override): Likewise.
8898 * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
8899 (nios2_option_override): Likewise.
8900 (nios2_expand_custom_builtin): Likewise.
8901 * config/nvptx/mkoffload.c (main): Likewise.
8902 * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
8903 * config/pa/pa.c (fix_range): Likewise.
8904 (pa_option_override): Likewise.
8905 * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
8906 (riscv_option_override): Likewise.
8907 * config/rl78/rl78.c (rl78_option_override): Likewise.
8908 * config/rs6000/aix61.h: Likewise.
8909 * config/rs6000/aix71.h: Likewise.
8910 * config/rs6000/aix72.h: Likewise.
8911 * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
8912 * config/rs6000/freebsd64.h: Likewise.
8913 * config/rs6000/linux64.h: Likewise.
8914 * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
8915 (rs6000_expand_zeroop_builtin): Likewise.
8916 (rs6000_expand_mtfsb_builtin): Likewise.
8917 (rs6000_expand_set_fpscr_rn_builtin): Likewise.
8918 (rs6000_expand_set_fpscr_drn_builtin): Likewise.
8919 (rs6000_invalid_builtin): Likewise.
8920 (rs6000_expand_split_stack_prologue): Likewise.
8921 * config/rs6000/rtems.h: Likewise.
8922 * config/rx/rx.c (valid_psw_flag): Likewise.
8923 (rx_expand_builtin): Likewise.
8924 * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
8925 * config/s390/s390.c (s390_expand_builtin): Likewise.
8926 (s390_function_profiler): Likewise.
8927 (s390_option_override_internal): Likewise.
8928 (s390_option_override): Likewise.
8929 * config/sh/sh.c (sh_option_override): Likewise.
8930 (sh_builtin_saveregs): Likewise.
8931 (sh_fix_range): Likewise.
8932 * config/sh/vxworks.h: Likewise.
8933 * config/sparc/sparc.c (sparc_option_override): Likewise.
8934 * config/spu/spu.c (spu_option_override): Likewise.
8935 (fix_range): Likewise.
8936 * config/visium/visium.c (visium_option_override): Likewise.
8937 (visium_handle_interrupt_attr): Likewise.
8938 * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
8939 * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
8940 (dbg_cnt_process_opt): Likewise.
8941 * dwarf2out.c (output_dwarf_version): Likewise.
8942 * except.c (expand_eh_return): Likewise.
8943 * gcc.c (defined): Likewise.
8944 (driver_handle_option): Likewise.
8945 (process_command): Likewise.
8946 (compare_files): Likewise.
8947 (driver::prepare_infiles): Likewise.
8948 (driver::do_spec_on_infiles): Likewise.
8949 (driver::maybe_run_linker): Likewise.
8950 * omp-offload.c (oacc_parse_default_dims): Likewise.
8951 * opts-global.c (handle_common_deferred_options): Likewise.
8952 * opts.c (parse_sanitizer_options): Likewise.
8953 (common_handle_option): Likewise.
8954 (enable_warning_as_error): Likewise.
8955 * passes.c (enable_disable_pass): Likewise.
8956 * plugin.c (parse_plugin_arg_opt): Likewise.
8957 (default_plugin_dir_name): Likewise.
8958 * targhooks.c (default_expand_builtin_saveregs): Likewise.
8959 (default_pch_valid_p): Likewise.
8960 * toplev.c (init_asm_output): Likewise.
8961 (process_options): Likewise.
8962 (toplev::run_self_tests): Likewise.
8963 * tree-cfg.c (verify_gimple_call): Likewise.
8964 * tree-inline.c (inline_forbidden_p_stmt): Likewise.
8965 (tree_inlinable_function_p): Likewise.
8966 * var-tracking.c (vt_find_locations): Likewise.
8968 2019-03-11 Andreas Krebbel <krebbel@linux.ibm.com>
8970 * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
8971 only on the else branch.
8973 2019-03-11 Martin Liska <mliska@suse.cz>
8975 * gcov.c (output_intermediate_json_line): Print function
8977 (output_json_intermediate_file): Add new argument.
8978 * doc/gcov.texi: Document the change.
8980 2019-03-11 Eric Botcazou <ebotcazou@adacore.com>
8982 PR rtl-optimization/89588
8983 * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
8984 explicit unrolling factor more robust.
8986 2019-03-11 Richard Biener <rguenther@suse.de>
8988 PR tree-optimization/89649
8989 * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
8990 * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
8991 on the prolog and epilog loops.
8992 (vect_loop_versioning): Return copy of loop.
8993 * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
8994 on the non-vectorized version of the loop.
8996 2019-03-10 Uroš Bizjak <ubizjak@gmail.com>
8999 * config/i386/sse.md (*vec_extractv2di_0_sse):
9000 Add (=r,x) alternative and corresponding splitter.
9002 2019-03-10 Martin Jambor <mjambor@suse.cz>
9004 PR tree-optimization/85762
9005 PR tree-optimization/87008
9006 PR tree-optimization/85459
9007 * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
9008 it points to if there is a type changing MEM_REF. Adjust all callers.
9009 (build_accesses_from_assign): Disable total scalarization if
9010 contains_vce_or_bfcref_p returns true through the new parameter, for
9013 2019-03-09 Jakub Jelinek <jakub@redhat.com>
9016 * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
9017 dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
9020 * common.opt (fdiagnostics-show-labels,
9021 fdiagnostics-show-line-numbers, fdiagnostics-format=,
9022 fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
9023 gas-locview-support, ginline-points, ginternal-reset-location-views):
9024 Terminate description text with a dot.
9025 * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
9026 * config/mcore/mcore.opt (m210, m340): Likewise.
9027 * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
9028 mnops=): Start description text with a capital letter.
9029 * config/arc/arc.opt (msize-level=): Likewise.
9030 * config/sh/sh.opt (minline-ic_invalidate): Likewise.
9031 * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
9033 * config/ft32/ft32.opt (msim): Likewise.
9034 (mft32b, mcompress): Likewise. Terminate description text with a dot.
9035 (mnodiv, mnopm): Terminate description text with a dot.
9036 * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
9038 * config/i386/i386.opt (prefer_vector_width, instrument_return):
9040 * config/rx/rx.opt (nofpu): Remove trailing spaces from description
9043 PR rtl-optimization/89634
9044 * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
9045 are modified in BB_END (e->src) instruction.
9047 2019-03-08 David Malcolm <dmalcolm@redhat.com>
9050 * config/i386/i386.c (ix86_set_current_function): Make "sorry"
9051 messages more amenable to translation, and improve wording.
9053 2019-03-08 Bill Schmidt <wschmidt@linux.ibm.com>
9055 * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
9056 ud- and du-chains between phases.
9058 2019-03-08 Richard Sandiford <richard.sandiford@arm.com>
9061 * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
9062 instead of POLY_INT_CST.
9064 2019-03-08 Andre Vieira <andre.simoesdiasvieira@arm.com>
9066 * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
9069 2019-03-08 Uroš Bizjak <ubizjak@gmail.com>
9074 * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
9075 (_mm_storeu_si64): Ditto.
9077 2019-03-08 Martin Liska <mliska@suse.cz>
9080 * config/i386/i386.c (ix86_option_override_internal): Disable
9081 jump tables when retpolines are used.
9083 2019-03-08 Jan Hubicka <hubicka@ucw.cz>
9086 * ipa-split.c (execute_split_functions): Do not split
9087 'noinline' or 'section' function.
9089 2019-03-08 Jakub Jelinek <jakub@redhat.com>
9092 * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
9093 HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
9094 HOST_WIDE_INT_PRINT_DEC. Formatting fixes.
9097 * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
9098 from diagnostics. Formatting fixes.
9101 * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
9102 warn_odr diagnostics.
9105 * lra-constraints.c (process_alt_operands): Avoid one space before
9106 " at the end of line and another after " on another line in a string
9108 * attribs.c (handle_dll_attribute): Likewise.
9109 * config/avr/avr-devices.c (avr_texinfo): Likewise.
9111 * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
9112 warning_at or inform messages in G_() if there is no ?:.
9114 PR tree-optimization/89550
9115 * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
9116 returned true. Formatting fixes.
9117 (expand_builtin_strnlen): Formatting fixes.
9118 * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
9119 if warning_at returned true.
9120 * tree-cfg.c (pass_warn_function_return::execute): Likewise.
9122 2019-03-08 Richard Biener <rguenther@suse.de>
9125 * cfgloop.h (struct loop): Add owned_clique field.
9126 * cfgloopmanip.c (copy_loop_info): Copy it.
9127 * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
9129 * tree-inline.c (copy_loops): Remap owned_clique.
9130 * lto-streamer-in.c (input_cfg): Stream owned_clique.
9131 * lto-streamer-out.c (output_cfg): Likewise.
9133 2019-03-08 Jakub Jelinek <jakub@redhat.com>
9136 * config/darwin.c: Include intl.h.
9137 (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
9138 composing the message out of two separate parts.
9140 2019-03-07 Jakub Jelinek <jakub@redhat.com>
9143 * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
9144 doesn't start with a capital letter and doesn't end with a dot.
9145 (ix86_function_arg_boundary): Make sure diagnostics doesn't start
9146 with a capital letter.
9147 (ix86_mangle_function_version_assembler_name): Likewise.
9148 (ix86_generate_version_dispatcher_body): Likewise.
9149 (fold_builtin_cpu): Likewise.
9150 (get_builtin_code_for_version): Likewise. Remove extraneous space.
9151 (ix86_handle_interrupt_attribute): Make the diagnostics easier for
9152 translators, wrap full type name in %qs.
9154 PR translation/79999
9155 * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
9156 depend clause with source (or sink) modifier.
9157 * omp-expand.c (expand_omp_ordered_sink): Likewise.
9160 * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
9161 *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
9162 (avx512f_load<mode>_mask): New define_expand.
9163 * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
9164 __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
9165 __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
9166 __builtin_ia32_movess_mask): New builtins.
9167 * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
9168 _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
9169 _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
9170 _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
9172 2019-03-07 Martin Jambor <mjambor@suse.cz>
9175 * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
9176 for extern inline functions.
9178 2019-03-07 Martin Jambor <mjambor@suse.cz>
9181 * cgraph.h (cgraph_node): New inline method former_thunk_p.
9182 * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
9183 (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
9184 have multiple callees. At the end check if declarations match as
9185 opposed to cgraph_nodes.
9187 2019-03-07 Martin Liska <mliska@suse.cz>
9189 * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
9190 which is equivalent to searching for this in clones chain.
9191 * symtab.c (symtab_node::verify_base): Similarly compare ASM
9192 names with a neighbour and special case first node in a chain.
9194 2019-01-25 Jason Merrill <jason@redhat.com>
9196 PR c++/80916 - spurious "static but not defined" warning.
9197 * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
9198 for an internal symbol with DECL_EXTERNAL.
9200 2019-04-07 Richard Biener <rguenther@suse.de>
9203 * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
9204 * tree-inline.c (copy_loops): Simplify.
9206 2019-03-07 Martin Liska <mliska@suse.cz>
9208 * dwarf2out.c (add_AT_vms_delta): Revert function removal.
9210 2019-03-07 Richard Biener <rguenther@suse.de>
9212 PR tree-optimization/89595
9213 * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
9214 stmt iterator as reference, take boolean output parameter to
9215 indicate whether the stmt was removed and thus the iterator
9217 (dom_opt_dom_walker::before_dom_children): Re-iterate over
9218 stmts created by folding.
9220 2019-03-07 Jakub Jelinek <jakub@redhat.com>
9223 * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
9226 2019-03-06 Peter Bergner <bergner@linux.ibm.com>
9228 PR rtl-optimization/88845
9229 * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
9231 * lra.c (remove_scratches_1): New function.
9232 (remove_scratches): Use it.
9233 (lra_emit_move): Likewise.
9235 2019-03-06 Claudiu Zissulescu <claziss@synopsys.com>
9237 * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
9238 unaligned_access variable.
9239 * config/arc/arc.c (arc_override_options): Set unaligned access
9240 default on for HS CPUs.
9241 * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
9243 2019-03-06 Martin Liska <mliska@suse.cz>
9245 PR gcov-profile/89577
9246 * doc/gcov.texi: Prefer to use --coverage.
9247 * doc/sourcebuild.texi: Likewise.
9249 2019-03-02 Jason Merrill <jason@redhat.com>
9251 PR c++/86485 - -Wmaybe-unused with empty class ?:
9252 * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
9254 2019-03-05 Jakub Jelinek <jakub@redhat.com>
9257 * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
9261 * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
9262 exactly one argument.
9264 2019-03-05 Jakub Jelinek <jakub@redhat.com>
9265 Richard Sandiford <richard.sandiford@arm.com>
9267 PR tree-optimization/89570
9268 * match.pd (vec_cond into cond_op simplification): Don't use
9269 get_conditional_internal_fn, use as_internal_fn (cond_op).
9271 2019-03-05 Wilco Dijkstra <wdijkstr@arm.com>
9274 * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
9275 to decide when to split off a non-zero offset from a symbol.
9276 * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
9277 in function symbols.
9279 2019-03-05 Richard Biener <rguenther@suse.de>
9281 PR tree-optimization/89594
9282 * tree-if-conv.c (pass_if_conversion::execute): Handle
9283 case where .LOOP_VECTORIZED_FUNCTION was removed.
9285 2019-03-05 Jakub Jelinek <jakub@redhat.com>
9288 * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
9289 instead alloca it only when needed with the needed size.
9291 PR tree-optimization/89570
9292 * match.pd (vec_cond into cond_op simplification): Guard with
9293 vectorized_internal_fn_supported_p test and #if GIMPLE.
9295 PR tree-optimization/89566
9296 * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
9297 Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
9298 Punt if get_user_idx_format succeeds, but idx_format argument is
9299 not provided or doesn't have pointer type, or if idx_args is above
9300 number of provided arguments.
9302 2019-03-04 Wilco Dijkstra <wdijkstr@arm.com>
9304 PR tree-optimization/89437
9305 * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
9307 2019-03-04 Richard Biener <rguenther@suse.de>
9310 * tree-scalar-evolution.c: (get_loop_exit_condition): Use
9313 2019-03-04 Bin Cheng <bin.cheng@linux.alibaba.com>
9315 PR tree-optimization/89487
9316 * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
9317 (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
9318 (distribute_loop): Don't do runtime alias check if there is non-
9319 addressable data reference.
9320 * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
9321 is a register variable.
9323 2019-03-02 Jakub Jelinek <jakub@redhat.com>
9326 * config/arm/arm.md (cmpsi2_addneg): Use
9327 trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
9328 If operands[2] is 0 or INT_MIN, force use of subs.
9329 (*compare_scc splitter): Use gen_int_mode.
9330 (*negscc): Likewise.
9331 * config/arm/thumb2.md (*thumb2_negscc): Likewise.
9333 2019-03-01 Kito Cheng <kito.cheng@gmail.com>
9334 Monk Chiang <sh.chiang04@gmail.com>
9336 * common/config/riscv/riscv-common.c: Include sstream.
9337 (riscv_subset_list::to_string): New.
9338 (riscv_arch_str): Likewise.
9339 * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
9341 * config/riscv/riscv-protos.h (riscv_arch_str): New.
9342 * config/riscv/riscv.c (INCLUDE_STRING): Defined.
9343 (riscv_emit_attribute): New.
9344 (riscv_file_start): Emit attribute if needed.
9345 (riscv_option_override): Init riscv_emit_attribute_p.
9346 * config/riscv/riscv.opt (mriscv-attribute): New option.
9347 * configure.ac (riscv*-*-*): Check binutils is supporting ELF
9349 * doc/install.texi: Document --with-riscv-attribute.
9350 * doc/invoke.texi: Document -mriscv-attribute.
9352 * common/config/riscv/riscv-common.c:
9353 Include config/riscv/riscv-protos.h.
9354 (INCLUDE_STRING): Defined.
9355 (RISCV_DONT_CARE_VERSION): Defined.
9356 (riscv_subset_t): Declare.
9357 (riscv_subset_t::riscv_subset_t): New.
9358 (riscv_subset_list): Declare.
9359 (riscv_subset_list::riscv_subset_list): New.
9360 (riscv_subset_list::~riscv_subset_list): Likewise.
9361 (riscv_subset_list::parsing_subset_version): Likewise.
9362 (riscv_subset_list::parse_std_ext): Likewise.
9363 (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
9364 (riscv_subset_list::add): Likewise.
9365 (riscv_subset_list::lookup): Likewise.
9366 (riscv_subset_list::xlen): Likewise.
9367 (riscv_subset_list::parse): Likewise.
9368 (riscv_supported_std_ext): Likewise.
9369 (current_subset_list): Likewise.
9370 (riscv_parse_arch_string): Using riscv_subset_list::parse to
9373 2019-03-01 Segher Boessenkool <segher@kernel.crashing.org>
9375 * config/rs6000/rs6000.c (rs6000_option_override_internal): If
9376 rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
9377 * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
9379 2019-03-01 Alexander Monakov <amonakov@ispras.ru>
9381 PR rtl-optimization/85899
9382 * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
9383 fallthru edges leading to the exit block.
9385 2019-03-01 Tamar Christina <tamar.christina@arm.com>
9388 * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
9389 rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
9391 2019-03-01 Richard Sandiford <richard.sandiford@arm.com>
9393 PR tree-optimization/89535
9394 * tree-vect-stmts.c (vectorizable_call): Record the vector types
9395 for each operand. Calculate the fallback choice for mask operands
9396 and pass it to vect_get_vec_def_for_operand.
9398 2019-03-01 Richard Biener <rguenther@suse.de>
9401 * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
9402 get virtual operands.
9403 (get_expr_operands): Handle CONST_DECL like other decls.
9405 2019-03-01 Jakub Jelinek <jakub@redhat.com>
9408 * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
9409 on DECL_P and EXPR_P.
9411 2019-03-01 Richard Biener <rguenther@suse.de>
9414 * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
9415 argument, defaulted to zero.
9416 * passes.c (execute_function_todo): Pass down SSA update flags
9417 to cleanup_tree_cfg.
9418 * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
9419 (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
9421 (cleanup_tree_cfg): Get and pass down SSA update flags.
9423 2019-03-01 Jakub Jelinek <jakub@redhat.com>
9426 * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
9427 early_lto_debug argument.
9429 2019-02-28 Eric Botcazou <ebotcazou@adacore.com>
9431 PR tree-optimization/89536
9432 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
9433 only whether bit #0 of the value is 0 instead of the entire value.
9435 2019-02-28 Marek Polacek <polacek@redhat.com>
9437 PR c++/87068 - missing diagnostic with fallthrough statement.
9438 * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
9439 at the end of a seq, save its location to walk_stmt_info.
9440 (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
9443 2019-02-28 Jan Hubicka <hubicka@ucw.cz>
9446 * tree.c (find_atomic_core_type): Move ahead in file.
9447 (check_base_type): Correctly compare alignments of atomic types.
9449 2019-02-28 H.J. Lu <hongjiu.lu@intel.com>
9452 * config/i386/i386.c (get_builtin_code_for_version): Identify
9453 Westmere from PCLMUL, instead of AES.
9455 2019-02-28 Jakub Jelinek <jakub@redhat.com>
9458 * config/arm/arm.md (*subsi3_carryin_compare_const): Use
9459 trunc_int_for_mode (-INTVAL (...), SImode), just instead of
9462 2019-02-28 Tamar Christina <tamar.christina@arm.com>
9465 * config/aarch64/aarch64-option-extensions.def: Document it.
9466 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
9469 2019-02-28 Jakub Jelinek <jakub@redhat.com>
9472 * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
9473 builtins if they don't have a single scalar floating point argument.
9476 2019-02-27 Bernd Edlinger <bernd.edlinger@hotmail.de>
9478 PR rtl-optimization/89490
9479 * varasm.c (get_block_for_section): Bail out for mergeable sections.
9480 (default_use_anchors_for_symbol_p, output_object_block): Assert the
9481 block section is not mergeable.
9483 2019-02-27 Jakub Jelinek <jakub@redhat.com>
9486 * config/arm/arm.md (arm_casesi_internal): New define_expand. Rename
9487 old define_insn to ...
9488 (*arm_casesi_internal): ... this. Add mode to LABEL_REFs.
9489 * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
9490 Rename old define_insn to ...
9491 (*thumb2_casesi_internal): ... this. Add mode to LABEL_REFs.
9492 (thumb2_casesi_internal_pic): New define_expand. Rename old
9494 (*thumb2_casesi_internal_pic): ... this. Add mode to LABEL_REFs.
9495 * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
9496 MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
9498 2019-02-27 Richard Biener <rguenther@suse.de>
9501 * dwarf2out.c (use_debug_types): Disable when in_lto_p.
9503 2019-02-27 Richard Biener <rguenther@suse.de>
9505 * passes.c (should_skip_pass_p): Do not skip cgraph-edge
9508 2019-02-27 Richard Biener <rguenther@suse.de>
9511 * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
9512 parameter, prefix section name with .gnu.debuglto_ if true.
9513 (dwarf2out_finish): Pass false to output_comdat_type_unit.
9514 (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
9516 2019-02-27 Richard Biener <rguenther@suse.de>
9519 * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
9520 rather than on use_debug_types, doing what output_die does.
9521 (value_format): Likewise.
9523 2019-02-27 Martin Jambor <mjambor@suse.cz>
9524 Martin Sebor <msebor@redhat.com>
9526 * doc/invoke.texi (Warning Options): Reword description of
9527 -Wno-absolute-value.
9529 2019-02-27 Jakub Jelinek <jakub@redhat.com>
9531 PR tree-optimization/89280
9532 * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
9533 builtin_setjmp_setup_bb): New functions.
9534 (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
9535 When visiting __builtin_setjmp_setup block, queue in special
9536 setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
9537 __builtin_setjmp_receiver. Remove .ABNORMAL_DISPATCHER basic blocks
9538 from visited after the loop if they don't have any visited successor
9541 2018-02-26 Steve Ellcey <sellcey@marvell.com>
9543 * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
9545 (TARGET_GET_MULTILIB_ABI_NAME): New macro.
9547 2019-02-26 Jakub Jelinek <jakub@redhat.com>
9550 * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
9551 with types other than sizetype/ssizetype.
9553 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
9555 * config/sparc/sparc-opts.h (enum processor_type): Rename to...
9556 (enum sparc_processor_type): ...this.
9557 (enum sparc_code_model_type): New enumeration type.
9558 (enum sparc_memory_model_type): Tweak comments.
9559 * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
9561 (mcmodel): Use sparc_code_model enumeration and variable.
9562 (sparc_code_model): New enumeration.
9563 (mdebug): Add Undocumented marker.
9564 * config/sparc/sparc.h (enum cmodel): Delete.
9565 (sparc_cmodel): Likewise.
9566 (TARGET_CM_MEDLOW): Adjust to above renaming.
9567 (TARGET_CM_MEDMID): Likewise.
9568 (TARGET_CM_MEDANY): Likewise.
9569 (TARGET_CM_EMBMEDANY): Likewise.
9570 * config/sparc/sparc.c (sparc_cmodel): Delete.
9571 (sparc_option_override): Remove string/value mapping support for the
9572 code model. Move code and memory model support to after the handling
9573 of target flags. Do private machine setup last.
9574 (sparc_emit_set_symbolic_const64): Use sparc_code_model.
9575 (sparc_legitimize_reload_address): Likewise.
9576 (sparc_output_mi_thunk): Likewise.
9577 * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
9579 2019-02-26 Jakub Jelinek <jakub@redhat.com>
9581 PR tree-optimization/89500
9582 * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
9583 (handle_builtin_strlen): Remove noncst_bound variable. Always
9584 optimize strnlen (x, 0) to 0. Optimize strnlen (x, cst) to
9585 cst if the first cst bytes starting at x are known to be non-zero,
9586 even if the string is not zero terminated. Don't try to modify
9587 *si for strnlen. Update strlen_to_stridx only for strlen or if
9588 we can prove strnlen returns the same value as strlen would.
9590 2019-02-26 Martin Liska <mliska@suse.cz>
9592 * alloc-pool.h (struct pool_usage): Remove extra
9594 * bitmap.h (struct bitmap_usage): Likewise.
9595 * ggc-common.c (struct ggc_usage): Likewise.
9596 * mem-stats.h (struct mem_usage): Likewise.
9597 (mem_alloc_description::dump): Print dash lines
9598 here and repeat header at the end of a table report.
9599 It's then more readable.
9600 * tree-phinodes.c (phinodes_print_statistics): Make
9601 horizontal alignment.
9602 * tree-ssanames.c (ssanames_print_statistics): Likewise.
9603 * vec.c (struct vec_usage): Remove extra print_dash_line.
9604 * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
9606 2019-02-26 Uroš Bizjak <ubizjak@gmail.com>
9608 * doc/extend.texi (__builtin_object_size):
9609 Use @pxref instead of @xref inside parenthesis.
9610 (__builtin_has_attribute): Add missing comma after @xref.
9611 (__builtin_object_size): Ditto.
9612 * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
9613 * fortran/invoke.texi (-ffpe-trap): Use @var for every item
9616 2019-02-26 Jeff Law <law@redhat.com>
9618 PR rtl-optimization/87761
9619 * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
9620 detect obviously dead insns and delete them.
9622 2019-02-26 Richard Biener <rguenther@suse.de>
9624 PR tree-optimization/89505
9625 * tree-ssa-structalias.c (compute_dependence_clique): Make sure
9626 to handle restrict pointed-to vars with multiple subvars
9629 2019-02-26 Richard Biener <rguenther@suse.de>
9631 PR tree-optimization/89489
9632 * tree-parloops.c (create_loop_fn): Copy over last_clique.
9634 2019-02-26 Eric Botcazou <ebotcazou@adacore.com>
9636 * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
9637 and move around comment.
9638 <BIT_AND_EXPR>: Likewise.
9639 <BIT_NOT_EXPR>: Add specific handling for boolean types.
9641 2019-02-26 Jakub Jelinek <jakub@redhat.com>
9644 * config/i386/i386.c (remove_partial_avx_dependency): Call
9645 df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
9646 after changing possibly many instructions to use that pseudo. Fix up
9647 insertion of v4sf_const0 setter at the start of bb.
9649 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
9652 * doc/extend.texi (Variadic Pointer Args): New section.
9654 2019-02-25 Sandra Loosemore <sandra@codesourcery.com>
9655 Martin Sebor <msebor@gmail.com>
9657 * common.opt (Wattribute-alias): Likewise.
9658 * doc/invoke.texi (Option Summary): List general form of
9659 -Wattribute-alias=. List positive form of -Wmissing-attributes.
9660 (-Wmissing-attributes): Invert entry, rewrite and correct default.
9661 Add cross-references.
9662 (-Wattribute-alias): Rewrite and correct default. Mention
9663 considered attributes (same as for -Wmissing-attributes).
9665 2019-02-25 Paul A. Clarke <pc@us.ibm.com>
9667 * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
9668 (_mm_cvtpd_ps): Likewise.
9669 (_mm_cvttpd_epi32): Likewise.
9672 * config/rs6000/xmmintrin.h (_mm_cvtss_f32): Fix type mismatch.
9673 (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
9676 * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
9678 2019-02-25 Tamar Christina <tamar.christina@arm.com>
9681 * common/config/aarch64/aarch64-common.c
9682 (struct aarch64_option_extension): Add is_synthetic.
9683 (all_extensions): Use it.
9684 (TARGET_OPTION_INIT_STRUCT): Define hook.
9685 (struct gcc_targetm_common): Moved to end.
9686 (all_extensions_by_on): New.
9687 (opt_ext_cmp, typedef opt_ext): New.
9688 (aarch64_option_init_struct): New.
9689 (aarch64_contains_opt): New.
9690 (aarch64_get_extension_string_for_isa_flags): Output smallest set.
9691 * config/aarch64/aarch64-option-extensions.def
9692 (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
9693 (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
9694 sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
9695 Set is_synthetic to false.
9696 (crypto): Set is_synthetic to true.
9697 * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
9700 2019-02-25 Tamar Christina <tamar.christina@arm.com>
9702 * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
9703 vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
9704 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
9705 vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
9706 vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
9707 vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
9708 vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
9709 vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
9711 (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
9712 vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
9713 vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
9714 vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
9715 vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
9716 vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
9717 vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
9718 vfmlsl_laneq_high_f16): ... To this.
9719 * config/arm/neon.md: Update comments.
9721 2019-02-25 Tamar Christina <tamar.christina@arm.com>
9723 * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
9724 vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
9725 vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
9726 vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
9727 vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
9728 vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
9729 vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
9730 vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
9732 (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
9733 vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
9734 vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
9735 vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
9736 vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
9737 vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
9738 vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
9739 vfmlslq_laneq_high_f16): ... To this.
9741 2019-02-25 Alexander Monakov <amonakov@ispras.ru>
9743 PR rtl-optimization/86096
9744 * df-scan.c (df_mw_compare): Do not check mw_reg fields when
9745 comparing mw_order values.
9747 2019-02-25 Jakub Jelinek <jakub@redhat.com>
9750 * config/arm/arm.md (*subsi3_carryin_const): Use
9751 arm_neg_immediate_operand predicate instead of
9752 arm_not_immediate_operand, "L" constraint instead of "K" and
9753 print it using %n2 instead of %B2.
9754 (*subsi3_carryin_const0): New define_insn.
9755 (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
9756 instead of arm_not_operand and "I" constraint instead of "K" and
9757 print it using %n3 instead of %B2. Instead of using match_dup 2 add
9758 another match_operand and in the condition check that it is negation
9760 (*subsi3_carryin_compare_const0): New define_ins.
9761 (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
9762 *subsi3_carryin_const.
9763 (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
9764 split into *subsi3_carryin_compare_const0 if the highpart is zero.
9767 * config/arm.vfp.md (*negdf2_vfp): Use
9768 gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
9769 * config/arm/neon.md (neon_copysignf<mode>): Likewise.
9771 2019-02-24 Jakub Jelinek <jakub@redhat.com>
9773 PR rtl-optimization/89445
9774 * simplify-rtx.c (simplify_ternary_operation): Don't use
9775 simplify_merge_mask on operands that may trap.
9776 * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
9777 SCALAR_FLOAT_MODE_P checks. For integral division by zero, if
9778 second operand is CONST_VECTOR, check if any element could be zero.
9779 Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
9780 their operands can trap.
9782 2019-02-23 Martin Sebor <msebor@redhat.com>
9784 * gimple-ssa-sprintf.c (target_strtol): Rename...
9785 (target_strtohwi): ...to this. Handle values up to HOST_WIDE_INT_MAX.
9786 (parse_directive): Adjust to name change. Use HOST_WIDE_INT_MAX to
9787 check for range error.
9789 2019-02-23 H.J. Lu <hongjiu.lu@intel.com>
9792 * opts-common.c (prune_options): Also prune joined switches
9793 with Negative and RejectNegative.
9794 * config/i386/i386.opt (march=): Add Negative(march=).
9795 (mtune=): Add Negative(mtune=).
9796 * doc/options.texi: Document Negative used together with Joined
9799 2019-02-22 Martin Sebor <msebor@redhat.com>
9801 * doc/extend.texi (Other Builtins): Add
9802 __builtin_is_constant_evaluated.
9804 2019-02-22 Richard Biener <rguenther@suse.de>
9806 PR tree-optimization/87609
9807 * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
9809 2019-02-22 Jeff Law <law@redhat.com>
9811 PR rtl-optimization/87761
9812 * config/mips/mips.md: Add new combiner pattern to recognize
9813 a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
9815 2019-02-22 Matthew Malcomson <matthew.malcomson@arm.com>
9818 * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
9819 destination register in peepholes generating patterns for ADDS/SUBS.
9820 (add<mode>3_compare0,
9821 *addsi3_compare0_uxtw, add<mode>3_compareC,
9822 add<mode>3_compareV_imm, add<mode>3_compareV,
9823 *adds_<optab><ALLX:mode>_<GPI:mode>,
9824 *subs_<optab><ALLX:mode>_<GPI:mode>,
9825 *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
9826 *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
9827 *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
9828 *sub<mode>3_compare0, *subsi3_compare0_uxtw,
9829 sub<mode>3_compare1): Allow stack pointer for source register.
9830 * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
9832 2019-02-22 Martin Sebor <msebor@redhat.com>
9834 PR tree-optimization/88993
9835 PR tree-optimization/88853
9836 * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
9838 (sprintf_dom_walker::call_info::is_string_func): New helper.
9839 (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
9840 for formatted string functions.
9841 (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
9843 2019-02-22 Martin Sebor <msebor@redhat.com>
9846 * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
9847 unreachable subexpressions.
9849 2019-02-22 H.J. Lu <hongjiu.lu@intel.com>
9850 Hongtao Liu <hongtao.liu@intel.com>
9851 Sunil K Pandey <sunil.k.pandey@intel.com>
9854 * config/i386/i386-passes.def: Add
9855 pass_remove_partial_avx_dependency.
9856 * config/i386/i386-protos.h
9857 (make_pass_remove_partial_avx_dependency): New.
9858 * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
9860 (pass_data_remove_partial_avx_dependency): New.
9861 (pass_remove_partial_avx_dependency): Likewise.
9862 (make_pass_remove_partial_avx_dependency): Likewise.
9863 * config/i386/i386.md (avx_partial_xmm_update): New attribute.
9864 (*extendsfdf2): Add avx_partial_xmm_update.
9865 (truncdfsf2): Likewise.
9866 (*float<SWI48:mode><MODEF:mode>2): Likewise.
9867 (SF/DF conversion splitters): Disabled for TARGET_AVX.
9869 2019-02-22 Aldy Hernandez <aldyh@redhat.com>
9872 * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
9875 2019-02-22 Thiago Macieira <thiago.macieira@intel.com>
9878 * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
9879 (PTA_SKYLAKE): Add PTA_AES.
9880 (PTA_GOLDMONT): Likewise.
9882 2019-02-22 Sudakshina Das <sudi.das@arm.com>
9884 * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
9885 instruction if enabled.
9886 (aarch64_override_options): Remove reference to return address key.
9888 2019-02-22 Richard Biener <rguenther@suse.de>
9890 PR tree-optimization/89440
9891 * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
9892 not necessary assert.
9894 2019-02-22 Thomas Schwinge <thomas@codesourcery.com>
9897 * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
9898 (oacc_replace_fn_attrib_attr): ... this new function.
9899 * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
9900 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
9902 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9904 * config/arm/arm-cpus.in (ares): Rename to...
9905 (neoverse-n1): ... This. Add ares as alias.
9906 * config/arm/arm-tables.opt: Regenerate.
9907 * config/arm/arm-tune.md: Likewise.
9908 * doc/invoke.txt (ARM Options): Document neoverse-n1.
9910 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9912 * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
9913 * config/aarch64/aarch64-tune.md: Regenerate.
9914 * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
9916 2019-02-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
9918 * config/aarch64/aarch64.c (ares_tunings): Rename to...
9919 (neoversen1_tunings): ... This.
9920 * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
9921 (neoverse-n1): New CPU.
9922 * config/aarch64/aarch64-tune.md: Regenerate.
9923 * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
9925 2019-02-22 Richard Biener <rguenther@suse.de>
9928 * cfghooks.h (dependence_hash): New typedef.
9929 (struct copy_bb_data): New type.
9930 (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
9931 (duplicate_block): Likewise.
9932 * cfghooks.c (duplicate_block): Pass down copy_bb_data.
9933 (copy_bbs): Create and pass down copy_bb_data.
9934 * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
9935 (rtl_duplicate_bb): Likewise.
9936 * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
9937 remap dependence info.
9939 2019-02-22 Richard Biener <rguenther@suse.de>
9941 PR tree-optimization/87609
9942 * tree-core.h (tree_base): Document special clique values.
9943 * tree-inline.c (remap_dependence_clique): Do not use the
9944 special clique value of one.
9945 (maybe_set_dependence_info): Use clique one.
9946 (clear_dependence_clique): New callback.
9947 (compute_dependence_clique): Clear clique one from all refs
9948 before assigning it (again).
9950 2019-02-21 Martin Sebor <msebor@redhat.com>
9952 * doc/extend.texi (__clear_cache): Correct signature.
9954 2019-02-21 Ian Lance Taylor <iant@golang.org>
9957 * varasm.c (decode_addr_const): Call lookup_constant_def rather
9958 than output_constant_def.
9959 (add_constant_to_table): New static function.
9960 (output_constant_def): Call add_constant_to_table.
9961 (tree_output_constant_def): Likewise.
9963 2019-02-21 Jakub Jelinek <jakub@redhat.com>
9966 * builtins.c (fold_builtin_arith_overflow): If first two args are
9967 INTEGER_CSTs, set intres and ovfres to constants rather than calls
9970 2019-02-21 H.J. Lu <hongjiu.lu@intel.com>
9973 * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
9974 error for -mindirect-branch/-mfunction-return with incompatible
9977 2019-02-21 Jakub Jelinek <jakub@redhat.com>
9980 * constraints.md (q): Remove.
9981 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
9984 2019-02-21 Martin Jambor <mjambor@suse.cz>
9987 * omp-general.c (omp_extract_for_data): Removed a duplicate call
9988 to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
9989 (omp_adjust_for_condition): ...here. Added necessary parameters.
9990 * omp-general.h (omp_adjust_for_condition): Updated declaration.
9991 * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
9992 proper values to new parameters of omp_adjust_for_condition.
9994 2019-02-20 Jakub Jelinek <jakub@redhat.com>
9997 * expr.c (expand_assignment): If result is a MEM, use change_address
9998 instead of simplify_gen_subreg.
10000 2019-02-20 Jakub Jelinek <jakub@redhat.com>
10001 David Malcolm <dmalcolm@redhat.com>
10003 PR middle-end/89091
10004 * fold-const.c (decode_field_reference): Return NULL_TREE if
10005 lang_hooks.types.type_for_size returns NULL. Check it before
10006 overwriting *exp_. Use return NULL_TREE instead of return 0.
10008 2019-02-20 Jakub Jelinek <jakub@redhat.com>
10010 PR middle-end/88074
10011 PR middle-end/89415
10012 * toplev.c (do_compile): Double the emin/emax exponents to workaround
10015 2019-02-20 Uroš Bizjak <ubizjak@gmail.com>
10018 * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
10019 TARGET_SSE in addition to TARGET_SSE_MATH.
10021 (ix86_excess_precision): Ditto.
10022 (ix86_float_exceptions_rounding_supported_p): Ditto.
10023 (use_rsqrt_p): Ditto.
10024 * config/i386/sse.md (rsqrt<mode>2): Ditto.
10026 2019-02-20 David Malcolm <dmalcolm@redhat.com>
10029 * diagnostic-show-locus.c (layout::calculate_line_spans): Use
10030 linenum_arith_t when determining if two adjacent line spans are
10031 close enough to merge.
10032 (diagnostic_show_locus): Use linenum_arith_t when iterating over
10033 lines within each line_span.
10035 2019-02-20 Andre Vieira <andre.simoesdiasvieira@arm.com>
10038 * lra-constraints.c(uses_hard_regs_p): Fix handling of
10039 paradoxical SUBREGS.
10041 2019-02-20 Li Jia He <helijia@linux.ibm.com>
10044 * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
10045 <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
10046 ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
10049 2019-02-19 Jonathan Wakely <jwakely@redhat.com>
10051 * config/gcn/gcn.c (print_operand): Fix typo.
10053 2019-02-19 Richard Biener <rguenther@suse.de>
10055 PR middle-end/88074
10056 * toplev.c (do_compile): Initialize mpfr's exponent range
10057 based on available float modes.
10059 2019-02-19 Eric Botcazou <ebotcazou@adacore.com>
10061 * rtlanal.c (get_initial_register_offset): Fall back to the estimate
10062 as long as the epilogue isn't completed.
10064 2019-02-18 Martin Sebor <msebor@redhat.com>
10066 * doc/cpp.texi (Conditional syntax): Add __has_attribute,
10067 __has_cpp_attribute, and __has_include.
10069 2019-02-18 Martin Sebor <msebor@redhat.com>
10071 * doc/invoke.texi (-Wreturn-type): Correct and expand.
10073 2019-02-18 Martin Sebor <msebor@redhat.com>
10075 PR middle-end/89294
10076 * tree.c (valid_constant_size_p): Avoid assuming size is a constant
10078 * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
10080 2019-02-18 Richard Biener <rguenther@suse.de>
10082 PR tree-optimization/89296
10083 * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
10084 of no-warning flag to cases that might emit the bogus warning.
10086 2019-02-18 Jakub Jelinek <jakub@redhat.com>
10089 * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
10091 * config/arm/vfp.md (*movdi_vfp): Likewise.
10092 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
10093 "q" constraint for operands[0].
10096 * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
10097 *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
10098 pattern in a temporary buffer.
10099 (*r<noxa>sbg_sidi_srl): Likewise. Always use 32 as I3 rather
10100 than 64-operands[2].
10103 * config/s390/s390.c (s390_indirect_branch_attrvalue,
10104 s390_indirect_branch_settings): Define unconditionally.
10105 (s390_set_current_function): Likewise, but guard the whole body except
10106 the s390_indirect_branch_settings call with
10107 #if S390_USE_TARGET_ATTRIBUTE.
10108 (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
10110 * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
10111 *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
10112 Use HOST_WIDE_INT_M1U instead of ~(0ULL).
10113 (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
10114 HOST_WIDE_INT_1U instead of 1ULL.
10115 (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
10116 to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
10117 (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
10118 z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
10120 (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
10123 2019-02-18 Martin Jambor <mjambor@suse.cz>
10125 PR tree-optimization/89209
10126 * tree-sra.c (create_access_replacement): New optional parameter
10127 reg_tree. Use it as a type if non-NULL and access type is not of
10129 (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
10130 to create_access_replacement.
10131 (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
10132 Check lacc is non-NULL before attempting to re-create it on the RHS.
10134 2019-02-18 Martin Liska <mliska@suse.cz>
10137 * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
10139 (symbol_table::free_edge): Recycle m_summary_id.
10140 * cgraph.h (get_summary_id): New.
10141 (symbol_table::release_symbol): Set m_summary_id to -1
10143 (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
10144 * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
10145 function_summary to fast_function_summary.
10146 * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
10147 * ipa-pure-const.c (class funct_state_summary_t):
10148 Switch from function_summary to fast_function_summary.
10149 * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
10150 (class ipa_ref_opt_summary_t): Switch from function_summary
10151 to fast_function_summary.
10152 * symbol-summary.h (class function_summary_base): New class
10153 that is created from base of former function_summary.
10154 (function_summary_base::unregister_hooks): New.
10155 (class function_summary): Inherit from function_summary_base.
10156 (class call_summary_base): New class
10157 that is created from base of former call_summary.
10158 (class call_summary): Inherit from call_summary_base.
10159 (struct is_same): New.
10160 (class fast_function_summary): New summary class.
10161 (class fast_call_summary): New summary class.
10162 * vec.h (vec_safe_grow_cleared): New function.
10164 2019-02-18 Martin Liska <mliska@suse.cz>
10166 * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
10167 (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
10168 * doc/tm.texi: Document new target hook.
10169 * doc/tm.texi.in: Likewise.
10170 * target.def: Add new target macro.
10171 * gcc.c (find_fortran_preinclude_file): Do not search multilib
10174 2019-02-17 Alan Modra <amodra@gmail.com>
10177 * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
10178 output reg on add insn.
10179 (<bd>tf_<mode> split): Likewise. Match predicates with insn.
10181 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
10184 * config/i386/sse.md (ssedoublemode): Remove V4HI.
10185 (PMULHRSW): Likewise.
10186 (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
10188 (ssse3_pmulhrswv4hi3): New expander.
10190 2019-02-16 H.J. Lu <hongjiu.lu@intel.com>
10192 * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
10193 MMX. Add isa attribute.
10195 2019-02-16 Jakub Jelinek <jakub@redhat.com>
10197 PR rtl-optimization/66152
10198 * builtins.h (c_readstr): Declare.
10199 * builtins.c (c_readstr): Remove forward declaration. Add
10200 null_terminated_p argument, if false, read all bytes from the
10201 string instead of stopping after '\0'.
10202 * expr.c (string_cst_read_str): New function.
10203 (store_expr): Use string_cst_read_str instead of
10204 builtin_strncpy_read_str. Try to store by pieces the whole
10205 exp_len first, and only if that fails, split it up into
10206 store by pieces followed by clear_storage. Formatting fix.
10208 * config/i386/i386.md (*movqi_internal): Remove static from
10209 buf variable. Use output_asm_insn (buf, operands); return "";
10210 instead of return buf;.
10211 * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
10212 *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
10213 *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
10215 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
10217 * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
10218 (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
10219 * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
10220 (CC1_SPEC): Likewise.
10221 * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
10223 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
10225 * asan.c (asan_emit_stack_protection): Use full-sized mask to align
10226 the base address on 64-bit strict-alignment platforms.
10228 2019-02-15 H.J. Lu <hongjiu.lu@intel.com>
10230 * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
10232 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
10234 * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
10236 2019-02-15 Aaron Sawdey <acsawdey@linux.ibm.com>
10238 PR rtl-optimization/88308
10239 * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
10240 on copied instruction.
10242 2019-02-15 Eric Botcazou <ebotcazou@adacore.com>
10244 * final.c (insn_current_reference_address): Replace test on JUMP_P
10245 with test on jump_to_label_p.
10246 * config/visium/visium-passes.def: New file.
10247 * config/visium/t-visium (PASSES_EXTRA): Define.
10248 * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
10249 * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
10250 (TRAMPOLINE_ALIGNMENT): Define.
10251 * config/visium/visium.c (visium_option_override): Do not register
10252 the machine-specific reorg pass here.
10253 (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
10255 (output_branch): Adjust threshold for long branch instruction.
10256 * config/visium/visium.md (cpu): Move around.
10257 (length): Adjust for the GR6.
10259 2019-02-15 Richard Biener <rguenther@suse.de>
10260 Jakub Jelinek <jakub@redhat.com>
10262 PR tree-optimization/89278
10263 * tree-loop-distribution.c: Include tree-eh.h.
10264 (generate_memset_builtin, generate_memcpy_builtin): Call
10265 rewrite_to_non_trapping_overflow on builtin->size before passing it
10266 to force_gimple_operand_gsi.
10268 2019-02-15 Jakub Jelinek <jakub@redhat.com>
10271 * optc-save-gen.awk: Handle optimize_fast like optimize_size or
10273 * opth-gen.awk: Likewise.
10275 2019-02-15 Uroš Bizjak <ubizjak@gmail.com>
10277 * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
10278 Enable MMX, SSE and SSE2 by default.
10279 * config/i386/i386.c (ix86_option_override_internal): Do not
10280 explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
10282 2019-02-14 Jakub Jelinek <jakub@redhat.com>
10284 PR rtl-optimization/89354
10285 * combine.c (make_extraction): Punt if extraction_mode is narrower
10288 2019-02-14 Maya Rashish <coypu@sdf.org>
10290 * config.gcc (*-*-netbsd*): Add netbsd-d.o.
10291 * config/netbsd-d.c: New file.
10292 * config/t-netbsd: Add netbsd-d.o
10294 2018-02-14 Steve Ellcey <sellcey@marvell.com>
10296 * config/aarch64/aarch64.c (aarch64_attribute_table): Change
10297 affects_type_identity to true for aarch64_vector_pcs.
10298 (aarch64_comp_type_attributes): New function.
10299 (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
10301 2019-02-14 Tamar Christina <tamar.christina@arm.com>
10304 * config/arm/iterators.md (ANY64): Add V4HF.
10306 2019-02-14 Martin Liska <mliska@suse.cz>
10308 PR rtl-optimization/89242
10309 * dce.c (delete_unmarked_insns): Call free_dominance_info we
10310 process a transformation.
10312 2019-02-14 Jakub Jelinek <jakub@redhat.com>
10314 PR tree-optimization/89314
10315 * fold-const.c (fold_binary_loc): Cast strlen argument to
10316 const char * before dereferencing it. Formatting fixes.
10318 PR middle-end/89284
10319 * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
10321 2019-02-13 Ian Lance Taylor <iant@golang.org>
10323 * optc-save-gen.awk: Set var_opt_hash for initial optimizations
10324 and set current index for other optimizations.
10326 2019-02-13 Uroš Bizjak <ubizjak@gmail.com>
10328 * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
10329 nonimmediate_operand as operand 2 predicate.
10330 (vec_set<VF2_512_256:mode>_0): Ditto.
10331 (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
10332 (*vec_concatv2si): Remove alternative 2.
10333 (*vec_concatv4si_0): Use vm constraint for alternative 0.
10334 (*vec_concatv4si_0): Remove preferred_for_speed attribute.
10335 (vec_concatv2di): Split alternatives 4,5,6 to ...
10336 (*vec_concatv2di_0) ... new pattern.
10338 2019-02-13 Wilco Dijkstra <wdijkstr@arm.com>
10341 * config/arm/arm.c (ldm_stm_operation_p) Set
10342 addr_reg_in_reglist correctly for first register.
10343 (load_multiple_sequence): Remove dead base check.
10344 (gen_ldm_seq): Correctly set write_back for Thumb-1.
10346 2019-02-13 Tamar Christina <tamar.christina@arm.com>
10349 * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
10350 Expose as @aarch64_pred_mov.
10351 * config/aarch64/aarch64.c (aarch64_classify_address):
10352 Use expand_insn which legitimizes operands.
10354 2019-02-13 Martin Liska <mliska@suse.cz>
10356 * builtins.h (expand_builtin_with_bounds): Remove declaration.
10357 * calls.c (struct arg_data): Remove special_slot, pointer_arg
10358 and pointer_offset fields.
10359 (initialize_argument_information): Remove usage of dead
10361 * cgraph.h (struct cgraph_thunk_info): Remove
10362 add_pointer_bounds_args.
10363 * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
10365 (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
10367 * config/i386/i386.c (ix86_function_arg_advance): Remove
10369 (struct builtin_isa): Remove leaf_p and nothrow_p fields.
10370 (def_builtin): Remove usage of dead
10372 (ix86_add_new_builtins): Likewise.
10373 * ipa-fnsummary.c (compute_fn_summary): Likewise.
10374 * ipa-icf.c (sem_function::equals_wpa): Likewise.
10375 (sem_function::init): Likewise.
10376 (sem_variable::merge): Likewise.
10377 * ipa-visibility.c (function_and_variable_visibility): Likewise.
10378 * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
10379 * lto-cgraph.c (lto_output_node): Likewise.
10380 (lto_output_varpool_node): Likewise.
10381 (input_node): Likewise.
10382 (input_varpool_node): Likewise.
10383 * lto-streamer-out.c (lto_output): Likewise.
10384 * tree-inline.c (expand_call_inline): Remove usage of
10386 * tree-inline.h (struct copy_body_data): Likewise.
10387 * varpool.c (varpool_node::dump): Likewise.
10389 2019-02-13 Jakub Jelinek <jakub@redhat.com>
10391 PR middle-end/89303
10392 * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
10393 into pt->vars_contains_escaped_heap instead of setting
10394 pt->vars_contains_escaped_heap to it.
10396 PR middle-end/89281
10397 * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
10398 INTVAL (size), compare it to GET_MODE_MASK instead of
10399 1 << GET_MODE_BITSIZE.
10402 * config/i386/predicates.md (x86_64_immediate_operand): Allow
10403 TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
10406 2019-02-13 Martin Liska <mliska@suse.cz>
10409 * cfgrtl.c (remove_barriers_from_footer): New function.
10410 (try_redirect_by_replacing_jump): Use it.
10411 (cfg_layout_redirect_edge_and_branch): Likewise.
10413 2019-02-13 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
10415 * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
10416 vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
10417 * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
10418 (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
10419 * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
10420 (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
10422 * config/rs6000/rs6000.c (builtin_function_type)
10423 <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
10424 CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
10425 CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
10426 * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
10427 vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
10429 2019-02-12 Pat Haugen <pthaugen@us.ibm.com>
10431 * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
10432 -maltivec. Delete -maltivec=be and -maltivec=le documentation.
10434 2019-02-12 H.J. Lu <hongjiu.lu@intel.com>
10437 * config/i386/i386.md (*movoi_internal_avx): Revert revision
10438 268678 and revision 268657.
10439 (*movti_internal): Likewise.
10441 2019-02-12 Ilya Leoshkevich <iii@linux.ibm.com>
10444 * config/s390/s390.c (s390_decompose_address): Update comment.
10445 (s390_check_qrst_address): Reject invalid address forms after
10448 2019-02-12 Martin Liska <mliska@suse.cz>
10451 * ipa-pure-const.c (propagate_pure_const): Revert hunk as
10452 we need default values of funct_state for a function that
10455 2019-02-12 Eric Botcazou <ebotcazou@adacore.com>
10457 * asan.c (asan_expand_mark_ifn): Take into account the alignment of
10458 the object to pick the size of stores on strict-alignment platforms.
10460 * config/sparc/sparc.md (*movsi_insn): Minor tweak.
10461 (*movdi_insn_sp32): Likewise.
10462 (*movdi_insn_sp64): Likewise.
10464 2019-02-12 Jan Hubicka <hubicka@ucw.cz>
10467 * cgraphunit.c (analyze_functions): Clear READONLY flag for external
10468 types that needs constructiong.
10469 * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
10471 2019-02-12 Richard Biener <rguenther@suse.de>
10473 PR tree-optimization/89253
10474 * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
10475 duplicate the loop.
10477 2019-02-11 David Malcolm <dmalcolm@redhat.com>
10480 * input.c (selftest::test_line_offset_overflow): New selftest.
10481 (selftest::input_c_tests): Call it.
10483 2019-02-11 Martin Sebor <msebor@redhat.com>
10485 PR tree-optimization/88771
10486 * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
10487 when -Wstringop-overflow is set.
10488 (builtin_memref::builtin_memref): Adjust excessive upper bound
10489 only when lower bound is not excessive.
10490 (maybe_diag_overlap): Detect and diagnose excessive bounds via
10491 -Wstringop-ovefflow.
10492 (maybe_diag_offset_bounds): Rename...
10493 (maybe_diag_access_bounds): ...to this.
10494 (check_bounds_or_overlap): Adjust for name change above.
10496 2019-02-11 Martin Sebor <msebor@redhat.com>
10499 * builtins.c (max_object_size): Move from here...
10500 * builtins.h (max_object_size): ...and here...
10501 * tree.c (max_object_size): ...to here...
10502 * tree.h (max_object_size): ...and here.
10504 2019-02-11 Bill Schmidt <wschmidt@linux.ibm.com>
10506 * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
10507 and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
10508 for correct semantics.
10510 2019-02-11 Alan Modra <amodra@gmail.com>
10512 * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
10513 -mlongcall and -mpltseq.
10514 (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
10515 (RS/6000 and PowerPC Options <-mpltseq>): Document.
10516 * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
10517 * config/rs6000/sysv4.opt (mpltseq): New option.
10518 * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
10519 (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
10520 support is lacking. Don't allow -mpltseq with -mbss-plt.
10521 * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
10522 -mpltseq given for ELFv1.
10523 * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
10524 Only use UNSPEC_PLTSEQ for inline PLT calls.
10525 (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments. Only
10526 use UNSPEC_PLTSEQ for inline PLT calls.
10527 (rs6000_indirect_call_template_1, rs6000_longcall_ref),
10528 (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
10529 uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
10530 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
10531 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
10532 (pltseq_mtctr_<mode>): Likewise.
10534 2019-02-11 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
10536 * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
10538 * configure: Regenerate.
10540 2019-02-11 Jakub Jelinek <jakub@redhat.com>
10543 * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
10546 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
10548 * function.c (assign_parm_setup_block): Use the stored
10549 size, not the passed size, when allocating stack-space,
10550 also for a parameter with alignment larger than
10551 MAX_SUPPORTED_STACK_ALIGNMENT.
10553 2019-02-11 Martin Liska <mliska@suse.cz>
10556 * ipa-cp.c (build_toporder_info): Remove usage of a param.
10557 * ipa-inline.c (inline_small_functions): Likewise.
10558 * ipa-pure-const.c (propagate_pure_const): Likewise.
10559 (propagate_nothrow): Likewise.
10560 * ipa-reference.c (propagate): Likewise.
10561 * ipa-utils.c (struct searchc_env): Remove unused field.
10562 (searchc): Always search across AVAIL_INTERPOSABLE.
10563 (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
10564 the only called IPA pure const can properly not propagate
10565 across interposable boundary.
10566 * ipa-utils.h (ipa_reduced_postorder): Remove param.
10568 2019-02-11 Chung-Ju Wu <jasonwucj@gmail.com>
10570 * config/nds32/nds32.md (call_internal, call_value_internal,
10571 sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
10573 2019-02-11 Hans-Peter Nilsson <hp@axis.com>
10575 * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
10578 2019-02-10 H.J. Lu <hongjiu.lu@intel.com>
10580 * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
10583 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
10585 * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
10587 2019-02-10 Jakub Jelinek <jakub@redhat.com>
10589 PR tree-optimization/89268
10590 * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
10591 if preds is non-NULL.
10593 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
10596 * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
10599 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
10601 * config/nds32/nds32.md (trap): New pattern.
10603 2019-02-10 Monk Chiang <sh.chiang04@gmail.com>
10605 * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
10608 2019-02-10 Chung-Ju Wu <jasonwucj@gmail.com>
10610 * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
10613 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
10615 * ipa-visibility.c (localize_node): Also do not localize
10616 LDPR_PREVAILING_DEF_IRONLY_EXP.
10618 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
10621 * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
10622 instead of type_with_linkage.
10624 2019-02-09 Jan Hubicka <hubicka@ucw.cz>
10627 * params.def (uninlined-function-insns, uninlined-function-time,
10628 uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
10629 bound so we don't get overflows.
10631 2019-02-09 Aaron Sawdey <acsawdey@linux.ibm.com>
10633 * config/rs6000/rs6000-string.c (expand_compare_loop,
10634 expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
10637 2019-02-09 Jakub Jelinek <jakub@redhat.com>
10639 PR middle-end/89246
10640 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10641 If !node->definition and TYPE_ARG_TYPES is non-NULL, use
10642 TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
10644 2019-02-09 Alan Modra <amodra@gmail.com>
10647 * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
10648 case. Match logic in rs6000_emit_prologue emitting pic_offset_table
10651 2019-02-08 Vladimir Makarov <vmakarov@redhat.com>
10653 PR middle-end/88560
10654 * lra-constraints.c (process_alt_operands): Don't increase reject
10655 for memory when offset memory is required.
10657 2019-02-08 Robin Dapp <rdapp@linux.ibm.com>
10659 * config/s390/vector.md: Implement vector copysign.
10661 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
10663 * expr.c (expand_constructor): Correct indentations.
10665 2019-02-08 Richard Biener <rguenther@suse.de>
10667 PR tree-optimization/89247
10668 * tree-if-conv.c: Include tree-cfgcleanup.h.
10669 (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
10670 (tree_if_conversion): Pass through predicate vector.
10671 (pass_if_conversion::execute): Do CFG cleanup and SSA update
10672 inline, see if any if-converted loops we refrece in
10673 LOOP_VECTORIZED calls vanished and fixup.
10674 * tree-if-conv.h (tree_if_conversion): Adjust prototype.
10676 2019-02-08 Ilya Leoshkevich <iii@linux.ibm.com>
10678 * config/s390/constraints.md (jdd): New constraint.
10680 2019-02-08 H.J. Lu <hongjiu.lu@intel.com>
10683 * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
10684 upper 16 vector registers without TARGET_AVX512VL.
10685 (*movti_internal): Likewise.
10687 2019-02-08 Jakub Jelinek <jakub@redhat.com>
10689 PR rtl-optimization/89234
10690 * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
10691 is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
10692 (copy_reg_eh_region_note_backward): Likewise.
10694 2019-02-08 Richard Biener <rguenther@suse.de>
10696 PR middle-end/89223
10697 * tree-data-ref.c (initialize_matrix_A): Fail if constant
10698 doesn't fit in HWI.
10699 (analyze_subscript_affine_affine): Handle failure from
10700 initialize_matrix_A.
10702 2019-02-08 Jakub Jelinek <jakub@redhat.com>
10704 * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
10707 2019-02-07 David Malcolm <dmalcolm@redhat.com>
10709 PR tree-optimization/86637
10710 PR tree-optimization/89235
10711 * tree-vect-loop.c (optimize_mask_stores): Add an
10712 auto_purge_vect_location sentinel to ensure that vect_location is
10714 * tree-vectorizer.c
10715 (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
10716 (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
10717 to ensure that vect_location is purged on exit.
10718 (pass_slp_vectorize::execute): Likewise, replacing the manual
10720 * tree-vectorizer.h (class auto_purge_vect_location): New class.
10722 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10724 * config/aarch64/iterators.md (max_opp): New code_attr.
10725 (USMAX): New code iterator.
10726 * config/aarch64/predicates.md (aarch64_smin): New predicate.
10727 (aarch64_smax): Likewise.
10728 * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
10729 (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
10732 2019-02-07 H.J. Lu <hongjiu.lu@intel.com>
10735 * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
10736 for TARGET_AVX512VL.
10737 (*movti_internal): Set mode to TI for TARGET_AVX512VL.
10739 2019-02-07 Andreas Krebbel <krebbel@linux.ibm.com>
10741 * config/s390/s390-builtin-types.def: Add new types.
10742 * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
10743 (s390_vec_xlw4): Make the memory operand into a const pointer.
10744 (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
10746 * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
10747 a new vector type with the alignment of the scalar memory operand.
10749 2019-02-07 Matthew Malcomson <matthew.malcomson@arm.com>
10750 Jakub Jelinek <jakub@redhat.com>
10753 * config/arm/arm-protos.h (valid_operands_ldrd_strd,
10754 arm_count_ldrdstrd_insns): New declarations.
10755 * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
10757 (valid_operands_ldrd_strd): New function.
10758 (arm_count_ldrdstrd_insns): New function.
10759 * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
10760 sets instead of single DImode set and define new insns to match this.
10762 2019-02-07 Tamar Christina <tamar.christina@arm.com>
10764 * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
10765 Make it a C initializer.
10767 2019-02-07 Tamar Christina <tamar.christina@arm.com>
10770 * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
10772 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10774 * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
10775 Use neon_dot<q> for type.
10776 (neon_<sup>dot_lane<vsi2qi>): Likewise.
10778 2019-02-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
10780 * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
10781 Use neon_dot<q> for type.
10782 (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
10783 (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
10785 2019-02-06 Vladimir Makarov <vmakarov@redhat.com>
10787 PR rtl-optimization/89225
10788 * lra-constaints.c (simplify_operand_subreg): Add subreg mode
10791 2019-02-06 Eric Botcazou <ebotcazou@adacore.com>
10793 * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
10794 after restoring registers saved to allocate the frame on Windows.
10796 2019-02-06 Richard Biener <rguenther@suse.de>
10798 PR tree-optimization/89182
10799 * graphite.h (cached_scalar_evolution_in_region): Declare.
10800 * graphite.c (struct seir_cache_key): New.
10801 (struct sese_scev_hash): Likewise.
10802 (seir_cache): New global.
10803 (cached_scalar_evolution_in_region): New function.
10804 (graphite_transform_loops): Allocate and release seir_cache.
10805 * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
10806 cached_scalar_evolution_in_region.
10807 * graphite-scop-detection.c (scop_detection::can_represent_loop):
10809 (scop_detection::graphite_can_represent_expr: Use
10810 cached_scalar_evolution_in_region.
10811 (scop_detection::stmt_simple_for_scop_p): Likewise.
10812 (find_params_in_bb): Likewise.
10813 (gather_bbs::before_dom_children): Likewise.
10814 * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
10815 (add_loop_constraints): Likewise.
10817 2019-02-06 Jakub Jelinek <jakub@redhat.com>
10819 PR middle-end/89210
10820 * fold-const-call.c (fold_const_vec_convert): Pass true as last
10821 operand to new_unary_operation only if both element types are integral
10822 and it isn't a widening conversion. Return NULL_TREE if
10823 new_unary_operation failed.
10825 2019-02-05 Andreas Krebbel <krebbel@linux.ibm.com>
10828 * config/s390/s390.md: Remove load and test FP splitter.
10830 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
10833 * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
10834 expand_compare_loop, expand_block_compare_gpr,
10835 expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
10836 REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
10837 #include "profile-count.h" and "predict.h" for types and functions
10838 needed to work with REG_BR_PROB notes.
10840 2019-02-05 Aaron Sawdey <acsawdey@linux.ibm.com>
10843 * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
10844 for the long branch case.
10846 2019-02-05 Jakub Jelinek <jakub@redhat.com>
10849 * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
10850 can throw, non-call exceptions are enabled and we can't delete
10851 dead exceptions or alter cfg. Set must_clean if
10852 delete_insn_and_edges returns true, don't set it blindly for calls.
10853 Assert that delete_unreachable_blocks is called only if can_alter_cfg.
10855 PR rtl-optimization/89195
10856 * combine.c (make_extraction): For MEMs, don't extract bytes outside
10857 of the original MEM.
10859 2019-02-05 Martin Liska <mliska@suse.cz>
10861 PR gcov-profile/89000
10862 * gcov.c (function_summary): Remove argument.
10863 (file_summary): New function.
10864 (print_usage): Replace tabs with spaces.
10865 (generate_results): Use new function file_summary.
10867 2019-02-05 Jakub Jelinek <jakub@redhat.com>
10870 * optabs.c (prepare_cmp_insn): Pass x and y to
10871 emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
10873 2019-02-05 Richard Biener <rguenther@suse.de>
10875 PR middle-end/89150
10876 * bitmap.h (struct bitmap_obstack): Do not mark GTY.
10877 (struct bitmap_element): Drop chain_prev so we properly recurse on
10878 the prev member, supporting tree views.
10879 (struct bitmap_head): GTY skip the obstack member.
10881 2019-02-04 Alexander Monakov <amonakov@ispras.ru>
10884 * doc/extend.texi (Vector Extensions): Add an example of using vector
10885 types together with x86 intrinsics.
10887 2019-02-04 Alan Modra <amodra@gmail.com>
10889 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
10890 str[] size to 160, and comment.
10892 2019-02-04 Alan Modra <amodra@gmail.com>
10894 * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
10895 (rs6000_pltseq_template): Guard output of TLS markers with
10896 TARGET_TLS_MARKERS.
10897 (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
10898 (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
10899 to use inline PLT sequences.
10900 * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
10901 (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
10902 (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
10904 2019-02-04 Martin Liska <mliska@suse.cz>
10907 * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
10908 out when ipa_fn_summaries does not contain entry for callee.
10910 2019-02-04 Eric Botcazou <ebotcazou@adacore.com>
10912 * config/sparc/sparc.h: Remove superfluous blank lines.
10913 * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
10914 (got_register_rtx): ...this.
10915 (sparc_got): Adjust to above renaming.
10916 (sparc_tls_got): Likewise.
10917 (sparc_delegitimize_address): Likewise.
10918 (sparc_output_mi_thunk): Likewise.
10919 (sparc_init_pic_reg): Likewise.
10920 (save_local_or_in_reg_p): Fix test on the GOT register.
10921 (USE_HIDDEN_LINKONCE): Move around.
10922 (get_pc_thunk_name): Likewise.
10923 (gen_load_pcrel_sym): Likewise.
10924 (load_got_register): Likewise.
10926 2019-02-04 Kito Cheng <kito.cheng@gmail.com>
10928 * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
10929 of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
10931 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
10933 * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
10934 into consideration.
10936 2019-02-04 Chung-Ju Wu <jasonwucj@gmail.com>
10938 * config.gcc (with_nds32_lib, glibc):
10939 Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
10940 * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
10941 (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
10943 2019-02-03 Uroš Bizjak <ubizjak@gmail.com>
10946 * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
10947 Do not prefer (v,v) alternative for non-AVX targets and (m,v)
10948 alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
10949 (*rcpsf2_sse): Ditto.
10950 (*rsqrtsf2_sse): Ditto.
10951 (sse4_1_round<mode<2): Ditto.
10953 2019-02-03 Richard Biener <rguenther@suse.de>
10956 * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
10959 2019-02-02 Jakub Jelinek <jakub@redhat.com>
10961 PR middle-end/87887
10962 * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10963 Punt with warning on aggregate return or argument types. Ignore
10964 type/mode checking for uniform arguments.
10966 2019-02-01 Segher Boessenkool <segher@kernel.crashing.org>
10968 * combine.c (try_combine): Do not print "Can't combine" messages unless
10969 printing failed combination attempts.
10971 2019-02-01 Martin Jambor <mjambor@suse.cz>
10974 * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
10975 segment and global segment variables before making them static.
10977 2019-02-01 Martin Jambor <mjambor@suse.cz>
10979 * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
10980 missed optimization dump with dump_enabled_p.
10982 2019-02-01 Richard Biener <rguenther@suse.de>
10984 PR middle-end/88597
10985 * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
10986 the instantiate cache.
10987 (instantiate_scev_binary): Elide second operand procesing
10988 if equal to the first.
10989 * tree-chrec.c (chrec_contains_symbols): Add visited set.
10990 (chrec_contains_undetermined): Likewise.
10991 (tree_contains_chrecs): Likewise.
10993 2019-02-01 Jan Hubicka <hubicka@ucw.cz>
10995 * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
10997 2019-02-01 Jakub Jelinek <jakub@redhat.com>
10999 PR tree-optimization/89143
11000 * wide-int-range.h (wide_int_range_absu): Declare.
11001 * wide-int-range.cc (wide_int_range_absu): New function.
11002 * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
11004 PR tree-optimization/88107
11005 * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
11006 instead of assertion that eh_region_outermost is non-NULL, if it
11007 is NULL, set *ALL to true and return NULL.
11008 (move_sese_region_to_fn): Adjust caller, if all is set, call
11009 duplicate_eh_regions with NULL region.
11011 2019-02-01 Richard Biener <rguenth@suse.de>
11013 PR rtl-optimization/88593
11014 * mode-switching.c (optimize_mode_switching): Free dominators before
11015 calling cleanup_cfg.
11017 2019-02-01 Bin Cheng <bin.cheng@linux.alibaba.com>
11019 PR tree-optimization/88932
11020 * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
11022 2019-01-31 Jakub Jelinek <jakub@redhat.com>
11024 PR middle-end/89137
11025 * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
11026 bogus clang warning.
11028 2019-01-31 Uroš Bizjak <ubizjak@gmail.com>
11031 * config/i386/i386.md (*extendsfdf2): Split out reg->reg
11032 alternative to avoid partial SSE register stall for TARGET_AVX.
11033 (truncdfsf2): Ditto.
11034 (sse4_1_round<mode>2): Ditto.
11036 2018-01-31 Bill Schmidt <wschmidt@linux.ibm.com>
11038 PR tree-optimization/89008
11039 * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
11040 process anything of the form X * 0.
11042 2019-01-31 Richard Biener <rguenther@suse.de>
11044 PR tree-optimization/89135
11045 * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
11046 with abnormal preds.
11048 2019-01-31 Jakub Jelinek <jakub@redhat.com>
11051 * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
11052 always_inline callees into no_sanitize_address callers.
11054 2019-01-31 Richard Biener <rguenther@suse.de>
11056 PR rtl-optimization/89115
11057 * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
11059 2019-01-30 Martin Sebor <msebor@redhat.com>
11062 * doc/extend.texi (cast to a union): Correct and expand.
11064 2019-01-30 Vladimir Makarov <vmakarov@redhat.com>
11066 PR rtl-optimization/87246
11067 * lra-constraints.c (simplify_operand_subreg): Reload memory
11068 in subreg if the address became invalid.
11070 2019-01-30 Bill Schmidt <wschmidt@linux.ibm.com>
11073 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
11074 Disable for little-endian.
11076 2019-01-30 Richard Biener <rguenther@suse.de>
11078 PR rtl-optimization/89115
11079 * opts.c (default_options_optimization): Reduce
11080 PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
11081 Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
11084 2019-01-30 Kelvin Nilsen <kelvin@gcc.gnu.org>
11086 * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
11087 Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT. Coerce result to
11088 type of vector element when vec_extract is implemented by direct
11091 2019-01-30 Thomas Schwinge <thomas@codesourcery.com>
11093 * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
11095 2019-01-30 Richard Biener <rguenther@suse.de>
11097 PR tree-optimization/89111
11098 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
11099 canonicalization to appropriately sized access types.
11101 2019-01-30 Jakub Jelinek <jakub@redhat.com>
11104 * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
11105 for arguments to functions that are TU-local and shouldn't be
11106 referenced by assembly.
11108 2019-01-30 Ulrich Drepper <drepper@redhat.com>
11110 * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
11113 2019-01-29 Martin Sebor <msebor@redhat.com>
11116 * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
11118 2019-01-29 Jakub Jelinek <jakub@redhat.com>
11122 * omp-simd-clone.c (simd_clone_clauses_extract)
11123 <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
11124 OMP_CLAUSE_ALIGNED_ALIGNMENT.
11126 2019-01-29 Vineet Gupta <vgupta@synopsys.com>
11128 * config.gcc: Force .init_array for ARC.
11130 2019-01-29 Richard Biener <rguenther@suse.de>
11133 * dwarf2out.c (collect_skeleton_dies): New helper.
11134 (copy_decls_for_unworthy_types): Call it.
11135 (build_abbrev_table): Assert we do not try to replace
11136 DW_AT_signature refs with local refs.
11138 2019-01-28 Jakub Jelinek <jakub@redhat.com>
11140 PR middle-end/89002
11141 * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
11142 for lastprivate/linear IV, push gimplify context around gimplify_assign
11143 and, if it needed any temporaries, pop it into a gimple bind around the
11146 2019-01-28 Bernd Edlinger <bernd.edlinger@hotmail.de>
11148 * common.opt (-Wattribute-alias): Remove "no-" from name.
11149 Make -Wattribute-alias command line option and
11150 #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
11152 2019-01-28 Jakub Jelinek <jakub@redhat.com>
11155 * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
11156 -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
11158 (bmi2): Add missing @opindex.
11159 * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
11160 options alphabetically. Add missing 3dnow, 3dnowa, adx, avx, avx2,
11161 avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
11162 avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
11163 avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
11164 cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
11165 fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
11166 pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
11167 sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
11168 xsavec, xsaveopt and xsaves options.
11170 2019-01-28 Richard Biener <rguenther@suse.de>
11173 * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
11176 2019-01-28 Richard Biener <rguenther@suse.de>
11178 PR tree-optimization/88739
11179 * tree-cfg.c (verify_types_in_gimple_reference): Verify
11180 BIT_FIELD_REFs only are applied to mode-precision operands
11181 when they are integral.
11182 (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
11183 * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
11184 BIT_FIELD_REFs of non-mode-precision integral operands.
11186 2019-01-27 Jakub Jelinek <jakub@redhat.com>
11189 * config/i386/sse.md
11190 (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
11191 avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
11192 first constants in pairs are multiples of 2. Formatting fixes.
11193 (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
11194 avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
11195 first constants in each quadruple are multiples of 4. Formatting fixes.
11197 2019-01-26 Martin Jambor <mjambor@suse.cz>
11200 * tree-inline.c: Include tree-cfgcleanup.h.
11201 (delete_unreachable_blocks_update_callgraph): Move...
11202 * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
11203 ...here, make externally visible, make second argument bool, adjust
11205 * tree-cfgcleanup.c: Include cgraph.h.
11206 * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
11208 * ipa-prop.c: Include tree-cfgcleanup.h.
11209 (ipcp_transform_function): Call
11210 delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
11212 2019-01-25 Vladimir Makarov <vmakarov@redhat.com>
11214 PR rtl-optimization/88846
11215 * ira.c (process_set_for_memref_referenced_p): New.
11216 (memref_referenced_p): Add new param. Use
11217 process_set_for_memref_referenced_p. Add new switch cases.
11218 (memref_used_between_p): Pass new arg to memref_referenced_p.
11220 2019-01-25 Richard Earnshaw <rearnsha@arm.com>
11223 * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
11224 argument ABI_BREAK. Set to true if the calculated alignment has
11225 changed in gcc-9. Check bit-fields for their base type alignment.
11226 (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
11227 (aarch64_function_arg_boundary): Likewise.
11228 (aarch64_gimplify_va_arg_expr): Likewise.
11230 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
11232 PR middle-end/89037
11233 * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
11234 instead of accessing TREE_INT_CST_ELT directly.
11236 2019-01-25 Christophe Lyon <christophe.lyon@linaro.org>
11238 * doc/sourcebuild.texi (Environment attributes): Add fenv and
11239 fenv_exceptions description.
11241 2019-01-25 Wilco Dijkstra <wdijkstr@arm.com>
11243 PR rtl-optimization/87763
11244 * config/aarch64/aarch64.c (aarch64_select_cc_mode):
11245 Allow SUBREG when matching CC_NZmode compare.
11247 2019-01-25 Richard Biener <rguenther@suse.de>
11249 PR tree-optimization/89049
11250 * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
11251 Look at the pattern stmt to determine if the stmt is vectorized.
11253 2019-01-25 Richard Sandiford <richard.sandiford@arm.com>
11255 * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
11256 (pred_mov<mode>): Handle all-register forms using both a new
11257 alternative and a split.
11259 2019-01-25 Richard Biener <rguenther@suse.de>
11261 PR tree-optimization/86865
11262 * graphite-scop-detection.c (scop_detection::can_represent_loop):
11263 Reject non-do-while loops.
11265 2019-01-24 Peter Bergner <bergner@linux.ibm.com>
11267 * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
11268 * config/rs6000/constraints.md (Q constraint): Use REG_P.
11269 * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
11270 * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
11271 SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
11272 * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11273 * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
11274 vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
11275 vlogical_operand, gpc_reg_operand, int_reg_operand,
11276 int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
11277 (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
11278 cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
11279 (save_world_operation, restore_world_operation, lmw_operation,
11280 stmw_operation): Use MEM_P and REG_P.
11281 (tie_operand): Use MEM_P.
11282 (vrsave_operation, crsave_operation): Use REG_P.
11283 (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
11284 (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
11285 (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
11286 (call_operand): Use HARD_REGISTER_P.
11287 (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
11289 (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
11290 * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
11291 quad_aligned_load_p, replace_swapped_aligned_store,
11292 recombine_lvx_pattern, replace_swapped_aligned_load,
11293 recombine_stvx_pattern): Use MEM_P.
11294 (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
11295 Use MEM_P and SYMBOL_REF_P.
11296 (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
11297 (insn_is_swappable_p): Use REG_P and MEM_P.
11298 (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
11299 * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
11301 * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
11302 Use CONST_DOUBLE_P.
11303 (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
11305 (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
11306 CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
11307 (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
11308 HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
11310 (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
11311 (easy_altivec_constant, rs6000_legitimate_offset_address_p,
11312 rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
11313 rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
11314 rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
11315 rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
11316 rs6000_split_logical_di): Use CONST_INT_P.
11317 (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
11318 REG_P and SYMBOL_REF_P.
11319 (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
11320 (print_operand): Use CONST_INT_P, MEM_P and REG_P.
11321 (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
11322 mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
11323 (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
11324 (small_data_operand, print_operand_address): Use CONST_INT_P and
11326 (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
11327 (rs6000_init_hard_regno_mode_ok, direct_move_p):
11328 Use HARD_REGISTER_NUM_P.
11329 (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
11330 (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
11331 SUBREG_P and SYMBOL_REF_P.
11332 (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
11333 and HARD_REGISTER_NUM_P.
11334 (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
11336 (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
11337 (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
11339 (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
11340 registers_ok_for_quad_peep, rs6000_output_function_epilogue,
11341 find_addr_reg): Use REG_P.
11342 (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
11343 (rs6000_emit_le_vsx_move): Use SUBREG_P.
11344 (offsettable_ok_by_alignment, constant_pool_expr_p,
11345 legitimate_small_data_p, rs6000_output_dwarf_dtprel,
11346 rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
11347 rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
11348 rs6000_assemble_integer, create_TOC_reference,
11349 rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
11350 rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
11351 (rs6000_split_vec_extract_var): Use reg_or_subregno.
11352 * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
11353 CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
11354 * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11355 * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11356 * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
11357 (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
11358 (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
11359 (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
11360 * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
11361 and cbranch<mode>4): Use CONST_INT_P.
11362 (multiple define_splits): Use REG_P and SUBREG_P.
11363 (define_expands call, call_value): Use MEM_P.
11364 (define_expands sibcall, sibcall_value): Use CONST_INT_P and MEM_P.
11365 (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
11366 * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
11367 *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
11368 and HARD_REGISTER_NUM_P.
11369 (multiple define_splits): Use HARD_REGISTER_NUM_P.
11371 2019-01-24 Uroš Bizjak <ubizjak@gmail.com>
11373 PR rtl-optimization/88948
11374 * rtl.h (prepare_copy_insn): New prototype.
11375 * gcse.c (prepare_copy_insn): New function, split out from
11376 process_insert_insn.
11377 (process_insert_insn): Use prepare_copy_insn.
11378 * store-motion.c (replace_store_insn): Use prepare_copy_insn
11379 instead of gen_move_insn.
11381 2019-01-24 Jakub Jelinek <jakub@redhat.com>
11384 * config/i386/i386.c (ix86_pic_register_p): Return true for
11385 UNSPEC_SET_GOT too.
11387 PR tree-optimization/88964
11388 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
11389 punt if HONOR_SNANS (chrec).
11391 PR middle-end/89015
11392 * tree-nested.c (convert_nonlocal_reference_stmt,
11393 convert_local_reference_stmt, convert_tramp_reference_stmt,
11394 convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
11395 gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
11396 or GIMPLE_OMP_TASK.
11398 PR tree-optimization/89027
11399 * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
11400 for "omp simd array" variables.
11402 2019-01-24 Richard Earnshaw <rearnsha@arm.com>
11405 * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
11406 force the alignment of m_val.
11408 2019-01-24 Richard Biener <rguenther@suse.de>
11411 * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
11412 When in "legacy" debug mode make sure to reset self-origins.
11414 2019-01-24 Martin Liska <mliska@suse.cz>
11416 PR gcov-profile/88994
11417 * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
11418 result will be always smaller or equal to the original.
11419 * gcov.c (mangle_name): Fix else branch where we should
11420 also copy to PTR and shift the pointer.
11422 2019-01-24 Xiong Hu Luo <luoxhu@linux.vnet.ibm.com>
11424 * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
11425 * vr-values.c (find_case_label_ranges): Fix a comment typo.
11427 2019-01-23 Xuepeng Guo <xuepeng.guo@intel.com>
11429 * common/config/i386/i386-common.c
11430 (OPTION_MASK_ISA_ENQCMD_SET,
11431 OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
11432 (ix86_handle_option): Handle -menqcmd.
11433 * config.gcc (enqcmdintrin.h): New header file.
11434 * config/i386/cpuid.h (bit_ENQCMD): New bit.
11435 * config/i386/driver-i386.c (host_detect_local_cpu): Handle
11437 * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
11439 * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
11440 __builtin_ia32_enqcmds): New builtins.
11441 * config/i386/i386-c.c (__ENQCMD__): New macro.
11442 * config/i386/i386-option.c (ix86_target_string): Add
11444 (ix86_valid_target_attribute_inner_p): Likewise.
11445 * config/i386/i386-expand.c
11446 (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
11447 IX86_BUILTIN_ENQCMDS.
11448 * config/i386/i386.h (TARGET_ENQCMD): New.
11449 * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
11450 (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
11451 (movdir64b_<mode>): Parameterize to enable share expansion code
11452 with ENQCMD in function ix86_expand_builtin.
11453 * config/i386/i386.opt: Add -menqcmd.
11454 * config/i386/immintrin.h: Include enqcmdintrin.h.
11455 * config/i386/enqcmdintrin.h: New intrinsic file.
11456 * doc/invoke.texi: Add -menqcmd.
11458 2019-01-23 Bin Cheng <bin.cheng@arm.com>
11459 Steve Ellcey <sellcey@marvell.com>
11462 * recog.c (address_operand): Return false on wrong mode for address.
11463 (constrain_operands): Check for mode with 'p' constraint.
11465 2019-01-23 Uroš Bizjak <ubizjak@gmail.com>
11468 * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
11469 Disparage MMX alternative.
11470 (sse2_cvtpd2pi): Ditto.
11471 (sse2_cvttpd2pi): Ditto.
11473 2019-01-23 David Malcolm <dmalcolm@redhat.com>
11476 * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
11477 use-after-free of the result of
11478 aarch64_get_extension_string_for_isa_flags.
11480 2019-01-23 Jakub Jelinek <jakub@redhat.com>
11483 * doc/extend.texi: Document break and continue behavior in
11484 statement expressions.
11486 2019-01-23 Richard Biener <rguenther@suse.de>
11488 PR tree-optimization/89008
11489 * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
11490 not leave another stray operand.
11492 2019-01-23 Jakub Jelinek <jakub@redhat.com>
11494 * BASE-VER: Bump to 9.0.1.
11496 2019-01-23 Eric Botcazou <ebotcazou@adacore.com>
11498 * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
11499 thunk that returns by reference, use the type of the return object
11500 of the thunk instead of that of the alias to build the dereference.
11502 2019-01-23 Vineet Gupta <vgupta@synopsys.com>
11504 * config/arc/atomic.md: Add operand to DMB instruction.
11506 2019-01-23 Jakub Jelinek <jakub@redhat.com>
11508 PR tree-optimization/88964
11509 * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
11510 build_zero_cst instead of build_int_cst. Return false for loop
11511 invariants which honor signed zeros.
11513 2019-01-22 Segher Boessenkool <segher@kernel.crashing.org>
11515 * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
11517 2019-01-22 Jakub Jelinek <jakub@redhat.com>
11520 * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
11521 (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
11522 is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
11524 PR middle-end/88968
11525 * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
11526 non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
11529 * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
11530 Disable for little endian.
11532 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
11535 * config/arm/arm.c (arm_needs_double_word_align): Check
11536 DECL_BIT_FIELD_TYPE.
11538 2019-01-22 Hongtao Liu <hongtao.liu@intel.com>
11539 H.J. Lu <hongjiu.lu@intel.com>
11542 * config/i386/i386-builtin.def: Add mask2 to all builtin
11543 initializations. Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
11545 * config/i386/i386.c (BDESC): Add mask2 to the definition.
11546 (BDESC_FIRST): Likewise.
11547 (define_builtin): Add an argument for mask2. Updated to handle
11548 both ix86_isa_flags and ix86_isa_flags2.
11549 (define_builtin_const): Likewise.
11550 (define_builtin_pure): Likewise.
11551 (define_builtin2): Deleted.
11552 (define_builtin_const2): Likewise.
11553 (builtin_description): Add a member, mask2.
11554 (bdesc_*): Add mask2 to builtin initializations.
11555 (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
11556 def_builtin_const and def_builtin_pure. Remove SPECIAL_ARGS2
11558 (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
11560 2019-01-22 H.J. Lu <hongjiu.lu@intel.com>
11563 * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
11566 2019-01-22 Richard Earnshaw <rearnsha@arm.com>
11569 * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
11570 alignment is dominated by a bitfield with 64-bit aligned base type.
11571 (arm_function_arg): Emit a warning if the alignment has changed since
11572 earlier GCC releases.
11573 (arm_function_arg_boundary): Likewise.
11574 (arm_setup_incoming_varargs): Likewise.
11576 2019-01-22 Richard Biener <rguenther@suse.de>
11578 PR tree-optimization/88862
11579 * graphite-scop-detection.c
11580 (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
11582 2019-01-22 Andrew Stubbs <ams@codesourcery.com>
11584 * doc/extend.tex (AMD GCN Function Attributes): New section.
11585 * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
11586 * doc/invoke.texi (AMD GCN Options): New section.
11587 * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
11589 2019-01-22 Eric Botcazou <ebotcazou@adacore.com>
11591 * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
11592 register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
11594 2019-01-22 Jakub Jelinek <jakub@redhat.com>
11596 PR tree-optimization/88044
11597 * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
11598 is false in the first iteration, but !every_iteration, return false
11599 instead of true with niter->niter zero.
11601 PR rtl-optimization/88904
11602 * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
11603 any nonequal registers before processing BB_END (b).
11606 * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
11608 (expand_binop_directly, expand_doubleword_clz,
11609 expand_doubleword_popcount, expand_ctz, expand_ffs,
11610 expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
11612 PR rtl-optimization/49429
11614 PR rtl-optimization/86334
11616 * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
11617 addressable from here...
11618 (emit_block_op_via_libcall): ... to here.
11620 2019-01-22 Richard Biener <rguenther@suse.de>
11622 * tree-vect-loop.c (vect_analyze_loop_operations): Use
11623 auto_vec for cost vector to fix memleak.
11624 (vectorize_fold_left_reduction): Properly gather SLP defs.
11625 (vectorizable_comparison): Do not swap operands to properly
11628 2019-01-22 Alan Modra <amodra@gmail.com>
11631 * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
11632 stays a reg. Allow a const_int.
11633 * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
11634 * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
11635 (IS_NOMARK_TLSGETADDR): Define.
11636 * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
11637 (rs6000_output_tlsargs): New function.
11638 (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
11639 __tls_get_addr call takes an arg.
11640 (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
11641 * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
11643 (call_value_nonlocal_sysv): ..or here, delete split.
11644 (tls_gdld_nomark): Delete.
11645 (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
11646 predicate. Call rs6000_output_tlsargs. Adjust length to suit.
11647 (call_value_nonlocal_sysv): Likewise.
11648 (call_value_nonlocal_sysv_secure): Likewise.
11649 (call_value_nonlocal_aix): Likewise.
11650 (call_value_indirect_aix): Likewise.
11651 (call_value_indirect_elfv2): Likewise.
11652 (call_value_local32, call_value_local64): Disable for no-mark tls.
11653 (call_value_local_aix): Likewise.
11655 2019-01-21 Uroš Bizjak <ubizjak@gmail.com>
11658 * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
11659 case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
11661 2019-01-21 Michael Ploujnikov <michael.ploujnikov@oracle.com>
11663 * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
11664 string contents as hash_map keys.
11666 2019-01-21 Bernd Edlinger <bernd.edlinger@hotmail.de>
11669 * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
11670 for rvalue context. Handle rvalues correctly. Use min_align_of_type
11671 instead of TYPE_ALIGN.
11672 (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
11673 Use min_align_of_type instead of TYPE_ALIGN_UNIT. Check for NULL
11674 pointer from TYPE_STUB_DECL.
11676 2019-01-21 Richard Biener <rguenther@suse.de>
11678 PR tree-optimization/88934
11679 * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
11680 at the possibly non-constant operand.
11681 (vect_get_constant_vectors): Adjust.
11683 2019-01-21 H.J. Lu <hongjiu.lu@intel.com>
11686 * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
11687 * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
11688 instead of _X86INTRIN_H_INCLUDED.
11689 * onfig/i386/clwbintrin.h: Likewise.
11690 * config/i386/pkuintrin.h: Likewise.
11691 * config/i386/prfchwintrin.h: Likewise.
11692 * config/i386/rdseedintrin.h: Likewise.
11693 * config/i386/wbnoinvdintrin.h: Likewise.
11694 * config/i386/xsavecintrin.h: Likewise.
11695 * config/i386/xsavesintrin.h: Likewise.
11696 * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
11697 * config/i386/xsaveintrin.h: Likewise.
11698 * config/i386/xsaveoptintrin.h: Likewise.
11699 * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
11700 <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
11701 <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
11702 <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
11703 <wbnoinvdintrin.h> and <pkuintrin.h> to ...
11704 * config/i386/immintrin.h: Here.
11706 2019-01-20 Martin Jambor <mjambor@suse.cz>
11709 * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
11710 with aa_walk_budget.
11711 * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
11712 aa_walk_budget_p parameter.
11713 * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi. Limit AA
11714 walk. Updated all callers.
11715 (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
11716 (eliminated_by_inlining_prob): New parameter fbi, pass it on to
11718 (will_be_nonconstant_expr_predicate): New parameter fbi, removed
11719 parameter info. Extract info from fbi. Pass fbi to recursive calls
11720 and to unmodified_parm.
11721 (phi_result_unknown_predicate): New parameter fbi, removed parameter
11722 info, updated call to will_be_nonconstant_expr_predicate.
11723 (param_change_prob): New parameter fbi, limit AA walking.
11724 (analyze_function_body): Initialize aa_walk_budget in fbi. Update
11725 calls to various above functions.
11726 * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
11727 parameter. Use it to limit AA walking.
11728 * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
11729 fbi, limit AA walk.
11730 (detect_type_change): New parameter fbi, pass it on to
11731 detect_type_change_from_memory_writes.
11732 (detect_type_change_ssa): Likewise.
11733 (aa_overwalked): Removed.
11734 (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
11735 accordingly, adjust to the neew AA limiting scheme.
11736 (parm_ref_data_preserved_p): Likewise.
11737 (ipa_compute_jump_functions_for_edge): Adjust call to
11739 (ipa_analyze_call_uses): Likewise.
11740 (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
11741 (ipa_analyze_node): Initialize aa_walk_budget.
11742 (ipcp_transform_function): Likewise.
11743 * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
11744 to get_dynamic_type.
11746 2019-01-19 Jakub Jelinek <jakub@redhat.com>
11748 * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
11749 outside of #if CHECKING_P code.
11751 2019-01-19 Richard Sandiford <richard.sandiford@arm.com>
11753 * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
11754 New function, split out from...
11755 (loop_versioning::analyze_stride): ...here.
11756 (loop_versioning::find_per_loop_multiplication): Use gassign.
11757 (loop_versioning::analyze_term_using_scevs): Return a success code.
11758 (loop_versioning::analyze_arbitrary_term): New function.
11759 (loop_versioning::analyze_address_fragment): Use
11760 analyze_arbitrary_term if all else fails.
11762 2019-01-18 Segher Boessenkool <segher@kernel.crashing.org>
11765 * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
11768 2019-01-18 Richard Biener <rguenther@suse.de>
11770 PR tree-optimization/88903
11771 * tree-vect-stmts.c (vectorizable_shift): Verify we see all
11772 scalar stmts a SLP shift amount is composed of when detecting
11775 2019-01-18 Richard Earnshaw <rearnsha@arm.com>
11778 * config/arm/arm-cpus.in (mp): New feature.
11779 (sec): New feature.
11780 (fgroup ARMv7ve): Add mp and sec features.
11781 (arch armv7-a): Add options to allow mp and sec extensions.
11782 (cpu generic-armv7-a): Add options to allow mp and sec extensions.
11783 (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
11784 extenstions to the base architecture.
11785 (cpu cortex-a8): Add sec extension to the base architecture.
11786 (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
11787 * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
11788 variants down to the base v7-a varaint.
11789 * config/arm/t-multilib (v7_a_arch_variants): New variable.
11790 * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
11791 of permitted extensions for -march=armv7-a and for
11792 -mcpu=generic-armv7-a.
11794 2019-01-18 Martin Liska <mliska@suse.cz>
11796 * params.def: Fix comment.
11797 * tree-profile.c (gimple_init_gcov_profiler): Bump function
11799 (gimple_gen_ic_func_profiler): Likewise.
11801 2019-01-18 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
11803 * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
11804 * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
11805 and put in error checks for stack protector guard options.
11806 (aarch64_stack_protect_guard): New.
11807 (TARGET_STACK_PROTECT_GUARD): Define.
11808 * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
11809 (reg_stack_protect_address<mode>): New.
11810 (stack_protect_set): Adjust for SSP_GLOBAL.
11811 (stack_protect_test): Likewise.
11812 * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
11813 (-mstack-protector-guard): Likewise.
11814 (-mstack-protector-guard-offset): Likewise.
11816 2019-01-18 Jakub Jelinek <jakub@redhat.com>
11818 PR tree-optimization/86214
11819 * tree-inline.h (struct copy_body_data): Add
11820 add_clobbers_to_eh_landing_pads member.
11821 * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
11822 (copy_edges_for_bb): Call it if EH edge destination is <
11823 id->add_clobbers_to_eh_landing_pads. Fix a comment typo.
11824 (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
11825 if flag_stack_reuse != SR_NONE and clear it afterwards.
11827 2019-01-18 Christophe Lyon <christophe.lyon@linaro.org>
11830 * doc/install.texi (with-multilib-list): Document for aarch64.
11832 2019-01-18 Jakub Jelinek <jakub@redhat.com>
11835 * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
11836 (("..."))) with ("...").
11838 2019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de>
11840 * doc/extend.texi (Built-in Functions for Memory Model Aware
11841 Atomic Operations): Document atomic fetch and nand.
11843 2019-01-18 Martin Liska <mliska@suse.cz>
11844 Richard Biener <rguenther@suse.de>
11846 PR middle-end/88587
11847 * cgraph.h (create_version_clone_with_body): Add new argument
11849 * cgraphclones.c (cgraph_node::create_version_clone): Add
11850 DECL_ATTRIBUTES to a newly created decl. And call
11851 valid_attribute_p so that proper cl_target_optimization_node
11852 is set for the newly created declaration.
11853 * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
11855 (expand_target_clones): Do not call valid_attribute_p, it must
11857 * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
11860 2019-01-17 Jakub Jelinek <jakub@redhat.com>
11863 * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
11864 (("..."))) with ("..."). Use arch=armv8.2-a+sha3 instead of
11865 arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
11867 2019-01-17 Martin Sebor <msebor@redhat.com>
11869 PR middle-end/88273
11870 * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
11871 Handle anti-ranges the same as no range at all.
11873 2018-01-17 Steve Ellcey <sellcey@cavium.com>
11875 * config/aarch64/aarch64.c (cgraph.h): New include.
11876 (intl.h): New include.
11877 (supported_simd_type): New function.
11878 (currently_supported_simd_type): Ditto.
11879 (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
11880 (aarch64_simd_clone_adjust): Ditto.
11881 (aarch64_simd_clone_usable): Ditto.
11882 (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
11883 (TARGET_SIMD_CLONE_ADJUST): Ditto.
11884 (TARGET_SIMD_CLONE_USABLE): Ditto.
11885 * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
11886 * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
11889 2019-01-17 Martin Sebor <msebor@redhat.com>
11891 PR tree-optimization/88800
11892 * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
11893 NO_WARNING bit here. Avoid folding out-of-bounds calls.
11894 * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
11895 redundant argument. Add new argument and issue diagnostics under
11896 its control. Detect out-of-bounds access even with warnings
11898 (check_bounds_or_overlap): Change return type. Add argument.
11899 (wrestrict_dom_walker::check_call): Adjust.
11900 * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
11901 * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
11902 check_bounds_or_overlap's return value.
11903 (handle_builtin_stxncpy): Same.
11904 (handle_builtin_strcat): Same.
11906 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
11907 Kwok Cheung Yeung <kcy@codesourcery.com>
11908 Julian Brown <julian@codesourcery.com>
11909 Tom de Vries <tom@codesourcery.com>
11911 * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
11913 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
11915 * doc/sourcebuild.texi: Document dg-require-effective-target
11916 llvm_binutils and offload_gcn.
11918 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
11919 Kwok Cheung Yeung <kcy@codesourcery.com>
11920 Julian Brown <julian@codesourcery.com>
11921 Tom de Vries <tom@codesourcery.com>
11923 * doc/sourcebuild.texi: Document dg-required-effective-target
11926 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
11927 Kwok Cheung Yeung <kcy@codesourcery.com>
11928 Julian Brown <julian@codesourcery.com>
11929 Tom de Vries <tom@codesourcery.com>
11930 Jan Hubicka <hubicka@ucw.cz>
11931 Martin Jambor <mjambor@suse.cz>
11933 * config.gcc: Add amdgcn*-*-amdhsa configuration.
11934 * configure.ac: Check for dlopen.
11935 * configure: Regenerate.
11937 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
11938 Kwok Cheung Yeung <kcy@codesourcery.com>
11939 Julian Brown <julian@codesourcery.com>
11940 Tom de Vries <tom@codesourcery.com>
11941 Jan Hubicka <hubicka@ucw.cz>
11942 Martin Jambor <mjambor@suse.cz>
11944 * common/config/gcn/gcn-common.c: New file.
11945 * config/gcn/driver-gcn.c: New file.
11946 * config/gcn/gcn-builtins.def: New file.
11947 * config/gcn/gcn-hsa.h: New file.
11948 * config/gcn/gcn-modes.def: New file.
11949 * config/gcn/gcn-opts.h: New file.
11950 * config/gcn/gcn-passes.def: New file.
11951 * config/gcn/gcn-protos.h: New file.
11952 * config/gcn/gcn-run.c: New file.
11953 * config/gcn/gcn-tree.c: New file.
11954 * config/gcn/gcn.c: New file.
11955 * config/gcn/gcn.h: New file.
11956 * config/gcn/gcn.opt: New file.
11957 * config/gcn/t-gcn-hsa: New file.
11959 2019-01-17 Andrew Stubbs <ams@codesourcery.com>
11960 Kwok Cheung Yeung <kcy@codesourcery.com>
11961 Julian Brown <julian@codesourcery.com>
11962 Tom de Vries <tom@codesourcery.com>
11963 Jan Hubicka <hubicka@ucw.cz>
11964 Martin Jambor <mjambor@suse.cz>
11966 * config/gcn/constraints.md: New file.
11967 * config/gcn/gcn-valu.md: New file.
11968 * config/gcn/gcn.md: New file.
11969 * config/gcn/predicates.md: New file.
11971 2019-01-17 Eric Botcazou <ebotcazou@adacore.com>
11973 * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
11974 flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
11975 (stmt_uses_0_or_null_in_undefined_way): Likewise.
11976 * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
11978 2019-01-17 Tamar Christina <tamar.christina@arm.com>
11981 * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
11982 * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
11983 it and document registers.
11985 2019-01-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
11987 * config/aarch64/aarch64.c (ares_tunings): Define.
11988 * config/aarch64/aarch64-cores.def (ares): Use the above.
11990 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
11994 2018-11-06 Wei Xiao <wei3.xiao@intel.com>
11996 * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
11997 (_mm512_fixupimm_round_pd): Update parameters and builtin.
11998 (_mm512_maskz_fixupimm_round_pd): Ditto.
11999 (_mm512_fixupimm_round_ps): Ditto.
12000 (_mm512_maskz_fixupimm_round_ps): Ditto.
12001 (_mm_fixupimm_round_sd): Ditto.
12002 (_mm_maskz_fixupimm_round_sd): Ditto.
12003 (_mm_fixupimm_round_ss): Ditto.
12004 (_mm_maskz_fixupimm_round_ss): Ditto.
12005 (_mm512_fixupimm_pd): Ditto.
12006 (_mm512_maskz_fixupimm_pd): Ditto.
12007 (_mm512_fixupimm_ps): Ditto.
12008 (_mm512_maskz_fixupimm_ps): Ditto.
12009 (_mm_fixupimm_sd): Ditto.
12010 (_mm_maskz_fixupimm_sd): Ditto.
12011 (_mm_fixupimm_ss): Ditto.
12012 (_mm_maskz_fixupimm_ss): Ditto.
12013 (_mm512_mask_fixupimm_round_pd): Update builtin.
12014 (_mm512_mask_fixupimm_round_ps): Ditto.
12015 (_mm_mask_fixupimm_round_sd): Ditto.
12016 (_mm_mask_fixupimm_round_ss): Ditto.
12017 (_mm512_mask_fixupimm_pd): Ditto.
12018 (_mm512_mask_fixupimm_ps): Ditto.
12019 (_mm_mask_fixupimm_sd): Ditto.
12020 (_mm_mask_fixupimm_ss): Ditto.
12021 * config/i386/avx512vlintrin.h:
12022 (_mm256_fixupimm_pd): Update parameters and builtin.
12023 (_mm256_maskz_fixupimm_pd): Ditto.
12024 (_mm256_fixupimm_ps): Ditto.
12025 (_mm256_maskz_fixupimm_ps): Ditto.
12026 (_mm_fixupimm_pd): Ditto.
12027 (_mm_maskz_fixupimm_pd): Ditto.
12028 (_mm_fixupimm_ps): Ditto.
12029 (_mm_maskz_fixupimm_ps): Ditto.
12030 (_mm256_mask_fixupimm_pd): Update builtin.
12031 (_mm256_mask_fixupimm_ps): Ditto.
12032 (_mm_mask_fixupimm_pd): Ditto.
12033 (_mm_mask_fixupimm_ps): Ditto.
12034 * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
12035 * config/i386/i386-builtin.def: Update builtin definitions.
12036 * config/i386/i386.c: Handle new builtin types and remove useless ones.
12037 * config/i386/sse.md: Update VFIXUPIMM* patterns.
12038 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
12039 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
12040 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
12041 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
12042 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
12043 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
12044 * config/i386/subst.md:
12045 (round_saeonly_sd_mask_operand4): Add new subst_attr.
12046 (round_saeonly_sd_mask_op4): Ditto.
12047 (round_saeonly_expand_operand5): Ditto.
12048 (round_saeonly_expand): Update.
12050 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
12054 2018-11-12 Wei Xiao <wei3.xiao@intel.com>
12056 * config/i386/sse.md: Combine VFIXUPIMM* patterns
12057 (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
12058 (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
12059 (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
12060 (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
12061 (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
12062 (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
12064 2019-01-17 Wei Xiao <wei3.xiao@intel.com>
12068 2018-12-15 Jakub Jelinek <jakub@redhat.com>
12071 * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
12072 (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
12073 instead of UNSPEC_FIXUPIMM.
12075 2019-01-17 Richard Biener <rguenther@suse.de>
12078 * dwarf2out.c (want_pubnames): Never generate pubnames sections
12079 and friends for the LTO part of debug info.
12081 2019-01-17 Jakub Jelinek <jakub@redhat.com>
12083 PR tree-optimization/86214
12084 * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
12087 PR rtl-optimization/88870
12088 * dce.c (deletable_insn_p): Never delete const/pure calls that can
12089 throw if we can't alter the cfg or delete dead exceptions.
12090 (mark_insn): Don't call find_call_stack_args for such calls.
12092 2019-01-17 Kewen Lin <linkw@gcc.gnu.org>
12094 * doc/extend.texi: Add four new prototypes for vec_ld and seven new
12095 prototypes for vec_st.
12096 * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
12097 for scalar address type variants of altivec_vec_ld/altivec_vec_st,
12098 mainly on signed/unsigned long long and double.
12100 2019-01-16 David Malcolm <dmalcolm@redhat.com>
12103 * combine.c (delete_noop_moves): Convert to "bool" return,
12104 returning true if any edges are eliminated.
12105 (combine_instructions): Also return true if delete_noop_moves
12108 2019-01-16 Tamar Christina <tamar.christina@arm.com>
12110 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
12111 correct max nunits for endian swap.
12112 (aarch64_expand_fcmla_builtin): Correct subreg code.
12113 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
12114 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
12117 2019-01-16 Uroš Bizjak <ubizjak@gmail.com>
12119 * config/alpha/alpha.c (alpha_gimplify_va_arg):
12120 Handle split indirect COMPLEX_TYPE arguments.
12122 2019-01-16 Richard Earnshaw <rearnsha@arm.com>
12125 * config/aarch64/aarch64-modes.def: Add comment about how the carry
12126 bit is set by add and compare.
12127 (CC_ADC): New CC_MODE.
12128 * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
12129 to cache the code and mode of X. Adjust the shape of a CC_Cmode
12130 comparison. Add detection for CC_ADCmode.
12131 (aarch64_get_condition_code_1): Update code support for CC_Cmode. Add
12133 * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
12134 (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
12135 (add<mode>3_compareC_cconly_imm): Delete. Merge into...
12136 (add<mode>3_compareC_cconly): ... this. Restructure the comparison
12137 to eliminate the need for zero-extending the operands.
12138 (add<mode>3_compareC_imm): Delete. Merge into ...
12139 (add<mode>3_compareC): ... this. Restructure the comparison to
12140 eliminate the need for zero-extending the operands.
12141 (add<mode>3_carryin): Use LTU for the overflow detection.
12142 (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
12143 Reexpress comparison for overflow.
12144 (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
12145 (add<mode>3_carryinC): Likewise.
12146 (add<mode>3_carryinV): Use LTU for carry between partials.
12147 * config/aarch64/predicates.md (aarch64_carry_operation): Update
12148 handling of CC_Cmode and add CC_ADCmode.
12149 (aarch64_borrow_operation): Likewise.
12151 2019-01-16 Tamar Christina <tamar.christina@arm.com>
12153 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
12154 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
12155 * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
12156 neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
12158 2019-01-16 Martin Liska <mliska@suse.cz>
12160 * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
12162 * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
12164 * gcc.c (add_sysrooted_hdrs_prefix): New function.
12165 (path_prefix_reset): Move up in the source file.
12166 (find_fortran_preinclude_file): Make complex search for the
12167 fortran header files.
12169 2019-01-15 Nikhil Benesch <nikhil.benesch@gmail.com>
12171 * godump.c (go_output_typedef): When outputting a typedef, refer
12172 to the underlying type by its name and not its structure.
12174 2019-01-15 David Malcolm <dmalcolm@redhat.com>
12177 * tree.c (build_function_type): Assert that arg_types is not
12180 2019-01-15 Richard Sandiford <richard.sandiford@arm.com>
12182 PR inline-asm/52813
12183 * doc/extend.texi: Document that listing the stack pointer in the
12184 clobber list of an asm is a deprecated feature.
12185 * common.opt (Wdeprecated): Moved from c-family/c.opt.
12186 * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
12187 warning instead of an error for clobbers of the stack pointer.
12188 Add a note explaining why.
12190 2019-01-15 Richard Biener <rguenther@suse.de>
12193 * dwarf2out.c (gen_member_die): Do not generate inheritance
12196 2019-01-15 Richard Biener <rguenther@suse.de>
12198 PR tree-optimization/88855
12199 * tree-if-conv.c (combine_blocks): Collect
12200 SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
12202 2019-01-15 Tom de Vries <tdevries@suse.de>
12205 * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
12206 lhs == NULL_TREE for gang-level reduction.
12208 2019-01-15 Richard Biener <rguenther@suse.de>
12209 Prathamesh Kulkarni <prathamesh.kulkarni@linaro.org>
12212 * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
12213 return true if SSA_NAME is already marked in visited bitmap.
12214 (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
12216 2019-01-15 Jakub Jelinek <jakub@redhat.com>
12218 PR tree-optimization/88775
12219 * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
12220 equal == 0 equality pointer comparisons some more if compared in
12221 integral types and either one points to an automatic var and the
12222 other to a global, or we can prove at least one points to the middle
12223 or both point to start or both point to end.
12225 2019-01-14 Andi Kleen <ak@linux.intel.com>
12227 * Makefile.in: Lower autofdo sampling rate by 10x.
12228 * Makefile.tpl: Dito.
12230 2019-01-14 Tom Honermann <tom@honermann.net>
12232 * defaults.h: Define CHAR8_TYPE.
12234 2019-01-14 Martin Sebor <msebor@redhat.com>
12237 * doc/extend.texi (Darwin Format Checks): Clarify.
12239 2019-01-14 Richard Biener <rguenther@suse.de>
12241 * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
12242 whether we are in (simplify ...) or (match ...) context.
12244 2019-01-14 Jakub Jelinek <jakub@redhat.com>
12246 PR rtl-optimization/88796
12247 * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
12248 * cfgexpand.c (stack_protect_prologue): Initialize
12249 crtl->stack_protect_guard_decl.
12250 * function.c (stack_protect_epilogue): Use it instead of calling
12251 targetm.stack_protect_guard again.
12252 * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
12253 MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
12254 crtl->stack_protect_guard_decl.
12255 * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
12256 on the returned MEM_EXPR.
12258 2019-01-12 Tom de Vries <tdevries@suse.de>
12260 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
12261 vector length using -fopenacc-dim.
12263 2019-01-12 Tom de Vries <tdevries@suse.de>
12265 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
12266 lengths into account.
12268 2019-01-12 Svante Signell <svante.signell@gmail.com>
12270 * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
12271 (TARGET_CAN_SPLIT_STACK): Define.
12272 (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12274 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
12276 * params.def (inline-unit-growth): Set to 40.
12278 2019-01-12 Jakub Jelinek <jakub@redhat.com>
12280 * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
12282 2019-01-12 Tom de Vries <tdevries@suse.de>
12284 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
12285 region calling vector-partitionable routine, set default_vector_length
12288 2019-01-12 Tom de Vries <tdevries@suse.de>
12290 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
12291 variable default_vector_length.
12293 2019-01-12 Tom de Vries <tdevries@suse.de>
12295 PR middle-end/88703
12296 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
12297 from oacc_default_dims, as oacc_validate_dims would do it, and apply
12300 2019-01-12 Tom de Vries <tdevries@suse.de>
12302 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
12303 (nvptx_goacc_validate_dims): Add used parameter.
12304 * doc/tm.texi: Regenerate.
12305 * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
12306 argument to call to targetm.goacc.validate_dims.
12307 (default_goacc_validate_dims): Add used
12309 * target.def (validate_dims): Add used parameter in DEFHOOK.
12310 * targhooks.h (default_goacc_validate_dims): Add used parameter.
12312 2019-01-11 Jakub Jelinek <jakub@redhat.com>
12314 PR middle-end/85956
12316 * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
12318 * tree-inline.c (remap_type_1): Formatting fix. If TYPE_MAX_VALUE of
12319 ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
12320 a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
12321 * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
12323 2019-01-11 Vladimir Makarov <vmakarov@redhat.com>
12325 PR rtl-optimization/87305
12327 (setup_live_pseudos_and_spill_after_risky_transforms): Add code
12328 for little endian pseudos used as paradoxical subreg.
12330 2019-01-11 Jakub Jelinek <jakub@redhat.com>
12332 PR tree-optimization/88693
12333 * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
12334 for STRING_CSTs that don't contain any NUL characters in the first
12335 TREE_STRING_LENGTH bytes.
12337 2019-01-11 Alan Modra <amodra@gmail.com>
12341 * genattrtab.c (min_fn): Don't translate values.
12342 (min_attr_value): Return INT_MAX when the value can't be calculated.
12343 Return minimum among any values that can be calculated.
12344 (max_attr_value): Adjust.
12346 2019-01-11 Jakub Jelinek <jakub@redhat.com>
12348 * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
12350 2019-01-11 Steve Ellcey <sellcey@marvell.com>
12352 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
12353 (aarch64_hard_regno_call_part_clobbered): Add insn argument.
12354 (aarch64_return_call_with_max_clobbers): New function.
12355 (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
12356 * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
12358 * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
12359 * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
12360 * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
12361 * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
12362 * cselib.c (cselib_process_insn): Add argument to
12363 targetm.hard_regno_call_part_clobbered call.
12364 * ira-conflicts.c (ira_build_conflicts): Ditto.
12365 * ira-costs.c (ira_tune_allocno_costs): Ditto.
12366 * lra-constraints.c (inherit_reload_reg): Ditto.
12367 * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
12368 * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
12369 argument. Call targetm.return_call_with_max_clobbers.
12370 Add argument to targetm.hard_regno_call_part_clobbered call.
12371 (calls_have_same_clobbers_p): New function.
12372 (process_bb_lives): Add call_insn and last_call_insn variables.
12373 Pass call_insn to check_pseudos_live_through_calls.
12374 Modify if stmt to check targetm.return_call_with_max_clobbers.
12375 Update setting of flush variable.
12376 (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
12378 * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
12379 * regcprop.c (copyprop_hardreg_forward_1): Add argument to
12380 targetm.hard_regno_call_part_clobbered call.
12381 * reginfo.c (choose_hard_reg_mode): Ditto.
12382 * regrename.c (check_new_reg_p): Ditto.
12383 * reload.c (find_equiv_reg): Ditto.
12384 * reload1.c (emit_reload_insns): Ditto.
12385 * sched-deps.c (deps_analyze_insn): Ditto.
12386 * sel-sched.c (init_regs_for_mode): Ditto.
12387 (mark_unavailable_hard_regs): Ditto.
12388 * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
12389 * target.def (hard_regno_call_part_clobbered): Add insn argument.
12390 (return_call_with_max_clobbers): New target function.
12391 * doc/tm.texi: Regenerate.
12392 * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
12393 * hooks.c (hook_bool_uint_mode_false): Change to
12394 hook_bool_insn_uint_mode_false.
12395 * hooks.h (hook_bool_uint_mode_false): Ditto.
12397 2019-01-11 Steve Ellcey <sellcey@marvell.com>
12399 * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
12400 (aarch64_remove_extra_call_preserved_regs): New function.
12401 (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
12402 * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
12403 * doc/tm.texi: Regenerate.
12404 * final.c (get_call_reg_set_usage): Call new hook.
12405 * target.def (remove_extra_call_preserved_regs): New hook.
12406 * targhooks.c (default_remove_extra_call_preserved_regs): New function.
12407 * targhooks.h (default_remove_extra_call_preserved_regs): New function.
12409 2019-01-11 Jakub Jelinek <jakub@redhat.com>
12412 * passes.c (finish_optimization_passes): Call print_combine_total_stats
12413 inside of pass_combine_1 dump rather than pass_profile_1.
12415 2019-01-11 Tom de Vries <tdevries@suse.de>
12417 * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
12418 (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
12419 (PTX_NUM_PER_WORKER_BARRIERS): Define.
12420 (nvptx_apply_dim_limits): Prevent vector_length 64 and
12423 2019-01-11 Tom de Vries <tdevries@suse.de>
12425 * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
12427 2019-01-11 Jan Beulich <jbeulich@suse.com>
12429 * config/i386/i386.md (rex64suffix): Add L suffix for SI.
12430 * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
12431 sse2_cvtsi2sd): Add {l}.
12432 (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
12435 2019-01-10 Jakub Jelinek <jakub@redhat.com>
12438 * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
12440 (*float<floatunssuffix>v2div2sf2): New define_insn.
12441 (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
12442 (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
12443 (*float<floatunssuffix>v2div2sf2_mask_1): Replace
12444 subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
12445 match_operands with "const0_operand" "C".
12447 2019-01-10 Tamar Christina <tamar.christina@arm.com>
12449 * config/aarch64/aarch64-builtins.c
12450 (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
12451 (aarch64_init_simd_builtins): ...Here
12453 2019-01-10 Vladimir Makarov <vmakarov@redhat.com>
12455 PR rtl-optimization/87305
12457 (setup_live_pseudos_and_spill_after_risky_transforms): Check
12458 allocation for big endian pseudos used as paradoxical subregs and
12459 spill them if it is wrong.
12460 * lra-constraints.c (lra_constraints): Add a comment.
12462 2019-01-10 Richard Biener <rguenther@suse.de>
12464 PR tree-optimization/88792
12465 * tree-ssa-pre.c (get_representative_for): Do not return a
12468 2019-01-10 Jakub Jelinek <jakub@redhat.com>
12470 PR middle-end/84877
12472 * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
12473 (assign_parm_setup_block): Do the argument slot realignment here
12476 2019-01-10 Stefan Agner <stefan@agner.ch>
12479 * config/arm/arm.c (arm_option_override_internal): Force
12480 opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
12482 2019-01-10 Jakub Jelinek <jakub@redhat.com>
12485 * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
12488 2019-01-10 Tamar Christina <tamar.christina@arm.com>
12490 * config/arm/arm-builtins.c
12491 (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
12492 (MAC_LANE_PAIR_QUALIFIERS): New.
12493 (arm_expand_builtin_args): Use it.
12494 (arm_expand_builtin_1): Likewise.
12495 * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
12496 * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
12497 * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
12498 * config/arm/arm_neon.h:
12499 (vcadd_rot90_f16): New.
12500 (vcaddq_rot90_f16): New.
12501 (vcadd_rot270_f16): New.
12502 (vcaddq_rot270_f16): New.
12505 (vcmla_lane_f16): New.
12506 (vcmla_laneq_f16): New.
12507 (vcmlaq_lane_f16): New.
12508 (vcmlaq_laneq_f16): New.
12509 (vcmla_rot90_f16): New.
12510 (vcmlaq_rot90_f16): New.
12511 (vcmla_rot90_lane_f16): New.
12512 (vcmla_rot90_laneq_f16): New.
12513 (vcmlaq_rot90_lane_f16): New.
12514 (vcmlaq_rot90_laneq_f16): New.
12515 (vcmla_rot180_f16): New.
12516 (vcmlaq_rot180_f16): New.
12517 (vcmla_rot180_lane_f16): New.
12518 (vcmla_rot180_laneq_f16): New.
12519 (vcmlaq_rot180_lane_f16): New.
12520 (vcmlaq_rot180_laneq_f16): New.
12521 (vcmla_rot270_f16): New.
12522 (vcmlaq_rot270_f16): New.
12523 (vcmla_rot270_lane_f16): New.
12524 (vcmla_rot270_laneq_f16): New.
12525 (vcmlaq_rot270_lane_f16): New.
12526 (vcmlaq_rot270_laneq_f16): New.
12527 (vcadd_rot90_f32): New.
12528 (vcaddq_rot90_f32): New.
12529 (vcadd_rot270_f32): New.
12530 (vcaddq_rot270_f32): New.
12533 (vcmla_lane_f32): New.
12534 (vcmla_laneq_f32): New.
12535 (vcmlaq_lane_f32): New.
12536 (vcmlaq_laneq_f32): New.
12537 (vcmla_rot90_f32): New.
12538 (vcmlaq_rot90_f32): New.
12539 (vcmla_rot90_lane_f32): New.
12540 (vcmla_rot90_laneq_f32): New.
12541 (vcmlaq_rot90_lane_f32): New.
12542 (vcmlaq_rot90_laneq_f32): New.
12543 (vcmla_rot180_f32): New.
12544 (vcmlaq_rot180_f32): New.
12545 (vcmla_rot180_lane_f32): New.
12546 (vcmla_rot180_laneq_f32): New.
12547 (vcmlaq_rot180_lane_f32): New.
12548 (vcmlaq_rot180_laneq_f32): New.
12549 (vcmla_rot270_f32): New.
12550 (vcmlaq_rot270_f32): New.
12551 (vcmla_rot270_lane_f32): New.
12552 (vcmla_rot270_laneq_f32): New.
12553 (vcmlaq_rot270_lane_f32): New.
12554 (vcmlaq_rot270_laneq_f32): New.
12555 * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
12556 vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
12557 vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
12558 vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
12559 vcmlaq_lane270): New.
12560 * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
12561 neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
12562 * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
12563 * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
12564 (arm_option_reconfigure_globals): Use them.
12565 * config/arm/iterators.md (VDF, VQ_HSF): New.
12566 (VCADD, VCMLA): New.
12567 (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
12568 * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
12570 * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
12571 UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
12573 2019-01-10 Tamar Christina <tamar.christina@arm.com>
12575 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
12576 Add qualifier_lane_pair_index.
12577 (emit-rtl.h): Include.
12578 (TYPES_QUADOP_LANE_PAIR): New.
12579 (aarch64_simd_expand_args): Use it.
12580 (aarch64_simd_expand_builtin): Likewise.
12581 (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
12583 (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
12584 AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
12585 aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
12586 (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
12587 (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
12588 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
12589 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
12590 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
12591 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
12592 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
12593 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
12594 AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
12595 * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
12596 * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
12597 Add __ARM_FEATURE_COMPLEX.
12598 * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
12599 fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
12600 fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
12601 fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
12602 fcmlaq_lane270): New.
12603 * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
12604 aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
12605 aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
12606 * config/aarch64/arm_neon.h:
12607 (vcadd_rot90_f16): New.
12608 (vcaddq_rot90_f16): New.
12609 (vcadd_rot270_f16): New.
12610 (vcaddq_rot270_f16): New.
12613 (vcmla_lane_f16): New.
12614 (vcmla_laneq_f16): New.
12615 (vcmlaq_lane_f16): New.
12616 (vcmlaq_rot90_lane_f16): New.
12617 (vcmla_rot90_laneq_f16): New.
12618 (vcmla_rot90_lane_f16): New.
12619 (vcmlaq_rot90_f16): New.
12620 (vcmla_rot90_f16): New.
12621 (vcmlaq_laneq_f16): New.
12622 (vcmla_rot180_laneq_f16): New.
12623 (vcmla_rot180_lane_f16): New.
12624 (vcmlaq_rot180_f16): New.
12625 (vcmla_rot180_f16): New.
12626 (vcmlaq_rot90_laneq_f16): New.
12627 (vcmlaq_rot270_laneq_f16): New.
12628 (vcmlaq_rot270_lane_f16): New.
12629 (vcmla_rot270_laneq_f16): New.
12630 (vcmlaq_rot270_f16): New.
12631 (vcmla_rot270_f16): New.
12632 (vcmlaq_rot180_laneq_f16): New.
12633 (vcmlaq_rot180_lane_f16): New.
12634 (vcmla_rot270_lane_f16): New.
12635 (vcadd_rot90_f32): New.
12636 (vcaddq_rot90_f32): New.
12637 (vcaddq_rot90_f64): New.
12638 (vcadd_rot270_f32): New.
12639 (vcaddq_rot270_f32): New.
12640 (vcaddq_rot270_f64): New.
12644 (vcmla_lane_f32): New.
12645 (vcmla_laneq_f32): New.
12646 (vcmlaq_lane_f32): New.
12647 (vcmlaq_laneq_f32): New.
12648 (vcmla_rot90_f32): New.
12649 (vcmlaq_rot90_f32): New.
12650 (vcmlaq_rot90_f64): New.
12651 (vcmla_rot90_lane_f32): New.
12652 (vcmla_rot90_laneq_f32): New.
12653 (vcmlaq_rot90_lane_f32): New.
12654 (vcmlaq_rot90_laneq_f32): New.
12655 (vcmla_rot180_f32): New.
12656 (vcmlaq_rot180_f32): New.
12657 (vcmlaq_rot180_f64): New.
12658 (vcmla_rot180_lane_f32): New.
12659 (vcmla_rot180_laneq_f32): New.
12660 (vcmlaq_rot180_lane_f32): New.
12661 (vcmlaq_rot180_laneq_f32): New.
12662 (vcmla_rot270_f32): New.
12663 (vcmlaq_rot270_f32): New.
12664 (vcmlaq_rot270_f64): New.
12665 (vcmla_rot270_lane_f32): New.
12666 (vcmla_rot270_laneq_f32): New.
12667 (vcmlaq_rot270_lane_f32): New.
12668 (vcmlaq_rot270_laneq_f32): New.
12669 * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
12670 * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
12671 UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
12672 (FCADD, FCMLA): New.
12674 * config/arm/types.md (neon_fcadd, neon_fcmla): New.
12676 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
12680 * config/pa/pa.c: Change "can not" to "cannot".
12681 * gimple-ssa-evrp-analyze.c: Likewise.
12682 * ipa-icf.c: Likewise.
12683 * ipa-polymorphic-call.c: Likewise.
12684 * ipa-pure-const.c: Likewise.
12685 * lra-constraints.c: Likewise.
12686 * lra-remat.c: Likewise.
12687 * reload1.c: Likewise.
12688 * reorg.c: Likewise.
12689 * tree-ssa-uninit.c: Likewise.
12691 2019-01-09 Sandra Loosemore <sandra@codesourcery.com>
12695 * Makefile.in: Mechanically replace "can not" with "cannot".
12696 * alias.c: Likewise.
12697 * builtins.c: Likewise.
12698 * calls.c: Likewise.
12699 * cgraph.c: Likewise.
12700 * cgraph.h: Likewise.
12701 * cgraphclones.c: Likewise.
12702 * cgraphunit.c: Likewise.
12703 * combine-stack-adj.c: Likewise.
12704 * combine.c: Likewise.
12705 * common/config/i386/i386-common.c: Likewise.
12706 * config/aarch64/aarch64.c: Likewise.
12707 * config/alpha/sync.md: Likewise.
12708 * config/arc/arc.c: Likewise.
12709 * config/arc/predicates.md: Likewise.
12710 * config/arm/arm-c.c: Likewise.
12711 * config/arm/arm.c: Likewise.
12712 * config/arm/arm.h: Likewise.
12713 * config/arm/arm.md: Likewise.
12714 * config/arm/cortex-r4f.md: Likewise.
12715 * config/csky/csky.c: Likewise.
12716 * config/csky/csky.h: Likewise.
12717 * config/darwin-f.c: Likewise.
12718 * config/epiphany/epiphany.md: Likewise.
12719 * config/i386/i386.c: Likewise.
12720 * config/i386/sol2.h: Likewise.
12721 * config/m68k/m68k.c: Likewise.
12722 * config/mcore/mcore.h: Likewise.
12723 * config/microblaze/microblaze.md: Likewise.
12724 * config/mips/20kc.md: Likewise.
12725 * config/mips/sb1.md: Likewise.
12726 * config/nds32/nds32.c: Likewise.
12727 * config/nds32/predicates.md: Likewise.
12728 * config/pa/pa.c: Likewise.
12729 * config/rs6000/e300c2c3.md: Likewise.
12730 * config/rs6000/rs6000.c: Likewise.
12731 * config/s390/s390.h: Likewise.
12732 * config/sh/sh.c: Likewise.
12733 * config/sh/sh.md: Likewise.
12734 * config/spu/vmx2spu.h: Likewise.
12735 * cprop.c: Likewise.
12736 * dbxout.c: Likewise.
12737 * df-scan.c: Likewise.
12738 * doc/cfg.texi: Likewise.
12739 * doc/extend.texi: Likewise.
12740 * doc/fragments.texi: Likewise.
12741 * doc/gty.texi: Likewise.
12742 * doc/invoke.texi: Likewise.
12743 * doc/lto.texi: Likewise.
12744 * doc/md.texi: Likewise.
12745 * doc/objc.texi: Likewise.
12746 * doc/rtl.texi: Likewise.
12747 * doc/tm.texi: Likewise.
12749 * emit-rtl.c: Likewise.
12750 * emit-rtl.h: Likewise.
12751 * except.c: Likewise.
12752 * expmed.c: Likewise.
12753 * expr.c: Likewise.
12754 * fold-const.c: Likewise.
12755 * genautomata.c: Likewise.
12756 * gimple-fold.c: Likewise.
12757 * hard-reg-set.h: Likewise.
12758 * ifcvt.c: Likewise.
12759 * ipa-comdats.c: Likewise.
12760 * ipa-cp.c: Likewise.
12761 * ipa-devirt.c: Likewise.
12762 * ipa-fnsummary.c: Likewise.
12763 * ipa-icf.c: Likewise.
12764 * ipa-inline-transform.c: Likewise.
12765 * ipa-inline.c: Likewise.
12766 * ipa-polymorphic-call.c: Likewise.
12767 * ipa-profile.c: Likewise.
12768 * ipa-prop.c: Likewise.
12769 * ipa-pure-const.c: Likewise.
12770 * ipa-reference.c: Likewise.
12771 * ipa-split.c: Likewise.
12772 * ipa-visibility.c: Likewise.
12774 * ira-build.c: Likewise.
12775 * ira-color.c: Likewise.
12776 * ira-conflicts.c: Likewise.
12777 * ira-costs.c: Likewise.
12778 * ira-int.h: Likewise.
12779 * ira-lives.c: Likewise.
12782 * loop-invariant.c: Likewise.
12783 * loop-unroll.c: Likewise.
12784 * lower-subreg.c: Likewise.
12785 * lra-assigns.c: Likewise.
12786 * lra-constraints.c: Likewise.
12787 * lra-eliminations.c: Likewise.
12788 * lra-lives.c: Likewise.
12789 * lra-remat.c: Likewise.
12790 * lra-spills.c: Likewise.
12792 * lto-cgraph.c: Likewise.
12793 * lto-streamer-out.c: Likewise.
12794 * postreload-gcse.c: Likewise.
12795 * predict.c: Likewise.
12796 * profile-count.h: Likewise.
12797 * profile.c: Likewise.
12798 * recog.c: Likewise.
12800 * reload.c: Likewise.
12801 * reload1.c: Likewise.
12802 * reorg.c: Likewise.
12803 * resource.c: Likewise.
12804 * rtl.def: Likewise.
12806 * rtlanal.c: Likewise.
12807 * sched-deps.c: Likewise.
12808 * sched-ebb.c: Likewise.
12809 * sched-rgn.c: Likewise.
12810 * sel-sched-ir.c: Likewise.
12811 * sel-sched.c: Likewise.
12812 * shrink-wrap.c: Likewise.
12813 * simplify-rtx.c: Likewise.
12814 * symtab.c: Likewise.
12815 * target.def: Likewise.
12816 * toplev.c: Likewise.
12817 * tree-call-cdce.c: Likewise.
12818 * tree-cfg.c: Likewise.
12819 * tree-complex.c: Likewise.
12820 * tree-core.h: Likewise.
12821 * tree-eh.c: Likewise.
12822 * tree-inline.c: Likewise.
12823 * tree-loop-distribution.c: Likewise.
12824 * tree-nrv.c: Likewise.
12825 * tree-profile.c: Likewise.
12826 * tree-sra.c: Likewise.
12827 * tree-ssa-alias.c: Likewise.
12828 * tree-ssa-dce.c: Likewise.
12829 * tree-ssa-dom.c: Likewise.
12830 * tree-ssa-forwprop.c: Likewise.
12831 * tree-ssa-loop-im.c: Likewise.
12832 * tree-ssa-loop-ivcanon.c: Likewise.
12833 * tree-ssa-loop-ivopts.c: Likewise.
12834 * tree-ssa-loop-niter.c: Likewise.
12835 * tree-ssa-phionlycprop.c: Likewise.
12836 * tree-ssa-phiopt.c: Likewise.
12837 * tree-ssa-propagate.c: Likewise.
12838 * tree-ssa-threadedge.c: Likewise.
12839 * tree-ssa-threadupdate.c: Likewise.
12840 * tree-ssa-uninit.c: Likewise.
12841 * tree-ssanames.c: Likewise.
12842 * tree-streamer-out.c: Likewise.
12843 * tree.c: Likewise.
12844 * tree.h: Likewise.
12845 * vr-values.c: Likewise.
12847 2019-01-09 Uroš Bizjak <ubizjak@gmail.com>
12849 * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
12850 (ix86_split_xorsign): Ditto.
12851 * config/i386/i386.c (ix86_expand_xorsign): New function.
12852 (ix86_split_xorsign): Ditto.
12853 * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
12854 (xorsign<mode>3): New expander.
12855 (xorsign<mode>3_1): New insn_and_split pattern.
12856 * config/i386/sse.md (xorsign<mode>3): New expander.
12858 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
12860 * config/sparc/sparc.md (*tablejump_sp32): Merge into...
12861 (*tablejump_sp64): Likewise.
12862 (*tablejump<P:mode>): ...this.
12863 (*call_address_sp32): Merge into...
12864 (*call_address_sp64): Likewise.
12865 (*call_address<P:mode>): ...this.
12866 (*call_symbolic_sp32): Merge into...
12867 (*call_symbolic_sp64): Likewise.
12868 (*call_symbolic<P:mode>): ...this.
12869 (call_value): Remove constraint and add predicate.
12870 (*call_value_address_sp32): Merge into...
12871 (*call_value_address_sp64): Likewise.
12872 (*call_value_address<P:mode>): ...this.
12873 (*call_value_symbolic_sp32): Merge into...
12874 (*call_value_symbolic_sp64): Likewise.
12875 (*call_value_symbolic<P:mode>): ...this.
12876 (*sibcall_symbolic_sp32): Merge into...
12877 (*sibcall_symbolic_sp64): Likewise.
12878 (*sibcall_symbolic<P:mode>): ...this.
12879 (sibcall_value): Remove constraint and add predicate.
12880 (*sibcall_value_symbolic_sp32): Merge into...
12881 (*sibcall_value_symbolic_sp64): Likewise.
12882 (*sibcall_value_symbolic<P:mode>): ...this.
12883 (window_save): Minor tweak.
12884 (*branch_sp32): Merge into...
12885 (*branch_sp64): Likewise.
12886 (*branch<P:mode>): ...this.
12888 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
12889 James Clarke <jrtc27@jrtc27.com>
12892 * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
12893 consistently in TLS address generation and adjust code to the renaming
12894 of patterns. Mark calls to __tls_get_addr as const.
12895 * config/sparc/sparc.md (tgd_hi22): Turn into...
12896 (tgd_hi22<P:mode>): ...this and use Pmode throughout.
12897 (tgd_lo10): Turn into...
12898 (tgd_lo10<P:mode>): ...this and use Pmode throughout.
12899 (tgd_add32): Merge into...
12900 (tgd_add64): Likewise.
12901 (tgd_add<P:mode>): ...this and use Pmode throughout.
12902 (tldm_hi22): Turn into...
12903 (tldm_hi22<P:mode>): ...this and use Pmode throughout.
12904 (tldm_lo10): Turn into...
12905 (tldm_lo10<P:mode>): ...this and use Pmode throughout.
12906 (tldm_add32): Merge into...
12907 (tldm_add64): Likewise.
12908 (tldm_add<P:mode>): ...this and use Pmode throughout.
12909 (tldm_call32): Merge into...
12910 (tldm_call64): Likewise.
12911 (tldm_call<P:mode>): ...this and use Pmode throughout.
12912 (tldo_hix22): Turn into...
12913 (tldo_hix22<P:mode>): ...this and use Pmode throughout.
12914 (tldo_lox10): Turn into...
12915 (tldo_lox10<P:mode>): ...this and use Pmode throughout.
12916 (tldo_add32): Merge into...
12917 (tldo_add64): Likewise.
12918 (tldo_add<P:mode>): ...this and use Pmode throughout.
12919 (tie_hi22): Turn into...
12920 (tie_hi22<P:mode>): ...this and use Pmode throughout.
12921 (tie_lo10): Turn into...
12922 (tie_lo10<P:mode>): ...this and use Pmode throughout.
12923 (tie_ld64): Use DImode throughout.
12924 (tie_add32): Merge into...
12925 (tie_add64): Likewise.
12926 (tie_add<P:mode>): ...this and use Pmode throughout.
12927 (tle_hix22_sp32): Merge into...
12928 (tle_hix22_sp64): Likewise.
12929 (tle_hix22<P:mode>): ...this and use Pmode throughout.
12930 (tle_lox22_sp32): Merge into...
12931 (tle_lox22_sp64): Likewise.
12932 (tle_lox22<P:mode>): ...this and use Pmode throughout.
12933 (*tldo_ldub_sp32): Merge into...
12934 (*tldo_ldub_sp64): Likewise.
12935 (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
12936 (*tldo_ldub1_sp32): Merge into...
12937 (*tldo_ldub1_sp64): Likewise.
12938 (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
12939 (*tldo_ldub2_sp32): Merge into...
12940 (*tldo_ldub2_sp64): Likewise.
12941 (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
12942 (*tldo_ldsb1_sp32): Merge into...
12943 (*tldo_ldsb1_sp64): Likewise.
12944 (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
12945 (*tldo_ldsb2_sp32): Merge into...
12946 (*tldo_ldsb2_sp64): Likewise.
12947 (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
12948 (*tldo_ldub3_sp64): Use DImode throughout.
12949 (*tldo_ldsb3_sp64): Likewise.
12950 (*tldo_lduh_sp32): Merge into...
12951 (*tldo_lduh_sp64): Likewise.
12952 (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
12953 (*tldo_lduh1_sp32): Merge into...
12954 (*tldo_lduh1_sp64): Likewise.
12955 (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
12956 (*tldo_ldsh1_sp32): Merge into...
12957 (*tldo_ldsh1_sp64): Likewise.
12958 (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
12959 (*tldo_lduh2_sp64): Use DImode throughout.
12960 (*tldo_ldsh2_sp64): Likewise.
12961 (*tldo_lduw_sp32): Merge into...
12962 (*tldo_lduw_sp64): Likewise.
12963 (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
12964 (*tldo_lduw1_sp64): Use DImode throughout.
12965 (*tldo_ldsw1_sp64): Likewise.
12966 (*tldo_ldx_sp64): Likewise.
12967 (*tldo_stb_sp32): Merge into...
12968 (*tldo_stb_sp64): Likewise.
12969 (*tldo_stb<P:mode>): ...this and use Pmode throughout.
12970 (*tldo_sth_sp32): Merge into...
12971 (*tldo_sth_sp64): Likewise.
12972 (*tldo_sth<P:mode>): ...this and use Pmode throughout.
12973 (*tldo_stw_sp32): Merge into...
12974 (*tldo_stw_sp64): Likewise.
12975 (*tldo_stw<P:mode>): ...this and use Pmode throughout.
12976 (*tldo_stx_sp64): Use DImode throughout.
12978 2018-01-09 Sudakshina Das <sudi.das@arm.com>
12980 * config/aarch64/aarch64.c (aarch64_override_options): Add case to
12981 check configure option to set BTI and Return Address Signing.
12982 * configure.ac: Add --enable-standard-branch-protection and
12983 --disable-standard-branch-protection.
12984 * configure: Regenerated.
12985 * doc/install.texi: Document the same.
12987 2018-01-09 Sudakshina Das <sudi.das@arm.com>
12988 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
12990 * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
12991 * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
12992 * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
12994 * config/aarch64/aarch64-bti-insert.c: New file.
12995 * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
12997 * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
12999 * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
13000 UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
13001 (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
13002 * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
13004 2018-01-09 Sudakshina Das <sudi.das@arm.com>
13006 * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
13007 * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
13008 Disable bti for -mbranch-protection=none.
13009 (aarch64_handle_standard_branch_protection): Enable bti for
13010 -mbranch-protection=standard.
13011 (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
13012 -mbranch-protection.
13013 (aarch64_bti_enabled): Check if bti is enabled.
13014 * config/aarch64/aarch64.opt: Declare target variable.
13015 * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
13017 2018-01-09 Sudakshina Das <sudi.das@arm.com>
13019 * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
13020 epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
13021 (aarch64_expand_epilogue): Likewise.
13022 (aarch64_output_mi_thunk): Likewise
13023 * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
13024 TAILCALL_ADDR_REGS to x16 and x17.
13025 * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
13027 2018-01-09 Sudakshina Das <sudi.das@arm.com>
13029 * config/aarch64/aarch64-option-extensions.def: Define
13030 AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
13031 * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
13032 (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
13033 (AARCH64_FL_PREDRES): New.
13034 (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
13035 AARCH64_FL_PREDRES by default.
13036 * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
13038 2018-01-09 Sudakshina Das <sudi.das@arm.com>
13040 * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
13042 * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
13043 (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
13044 * doc/invoke.texi: Document ARMv8.5-A.
13046 2019-01-09 Alejandro Martinez <alejandro.martinezvicente@arm.com>
13048 * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
13049 (xorsign<mode>3): Likewise.
13051 2019-01-09 Jelinek <jakub@redhat.com>
13053 PR middle-end/88758
13054 * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
13055 vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
13057 PR rtl-optimization/88331
13058 * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
13059 not currently_expanding_to_rtl.
13061 2019-01-09 Eric Botcazou <ebotcazou@adacore.com>
13063 * doc/invoke.texi (-Os): Remove trailing spaces.
13064 (-finline-functions): Remove reference to -O2.
13066 2019-01-08 Jakub Jelinek <jakub@redhat.com>
13068 PR rtl-optimization/79593
13069 * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
13071 * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
13072 UNSPEC_FUSION_GPR to its argument. Formatting fixes.
13074 2019-01-08 Eric Botcazou <ebotcazou@adacore.com>
13077 * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
13081 * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
13082 UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
13084 2019-01-08 H.J. Lu <hongjiu.lu@intel.com>
13087 * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
13088 ix86_avx_u128_mode_entry.
13090 2019-01-08 Martin Liska <mliska@suse.cz>
13092 PR tree-optimization/88753
13093 * tree-switch-conversion.c (switch_conversion::build_one_array):
13094 Come up with local variable constructor. Convert first to
13095 type of constructor values.
13097 2019-01-08 Richard Biener <rguenther@suse.de>
13099 PR tree-optimization/86554
13100 * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
13101 rpo_avail): Move earlier.
13102 (visit_nary_op): When value-numbering to expressions
13103 with different overflow behavior make sure there's an
13104 available expression on the path.
13106 2019-01-08 Sam Tebbs <sam.tebbs@arm.com>
13108 * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
13109 aarch64_parse_branch_protection,
13110 struct aarch64_branch_protect_type,
13111 aarch64_handle_no_branch_protection,
13112 aarch64_handle_standard_branch_protection,
13113 aarch64_validate_mbranch_protection,
13114 aarch64_handle_pac_ret_protection,
13115 aarch64_handle_attr_branch_protection,
13116 accepted_branch_protection_string,
13117 aarch64_pac_ret_subtypes,
13118 aarch64_branch_protect_types,
13119 aarch64_handle_pac_ret_leaf): Define.
13120 (aarch64_override_options_after_change_1, aarch64_override_options):
13121 Add check for accepted_branch_protection_string.
13122 (aarch64_option_save): Save accepted_branch_protection_string.
13123 (aarch64_option_restore): Save accepted_branch_protection_string.
13124 * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
13125 * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
13126 msign-return-address.
13127 * doc/invoke.texi: Add mbranch-protection.
13129 2019-01-08 Alan Modra <amodra@gmail.com>
13132 * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
13133 Delete "unknownp" parameter. Adjust callers. Handle
13134 CONST_INT, PLUS, MINUS, and MULT.
13135 (attr_value_aligned): Renamed from or_attr_value.
13136 (min_attr_value): Return INT_MIN for unhandled rtl case..
13137 (min_fn): ..and translate to INT_MAX here.
13138 (write_length_unit_log): Modify to cope without "unknown".
13139 (write_attr_value): Handle IF_THEN_ELSE.
13141 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
13143 * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
13144 optimization for masked stores.
13146 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
13148 PR middle-end/88567
13149 * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
13150 output vector directly to duplicate_and_interleave instead of
13151 going through a temporary. Postpone insertion of ctor_seq to
13152 the end of the loop.
13154 2019-01-07 Richard Earnshaw <rearnsha@arm.com>
13157 * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
13158 unsigned_p. Handle signed and unsigned overflow correction as
13160 * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
13162 * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
13164 (add<mode>3_compareV_imm): Make this callable for expanding.
13165 (subv<GPI:mode>4): Use register_operand for operand 1. Use
13166 aarch64_plus_operand for operand 2.
13167 (subv<GPI:mode>_insn): New insn pattern.
13168 (subv<GPI:mode>_imm): Likewise.
13169 (negv<GPI:mode>3): New expand pattern.
13170 (negv<GPI:mode>_insn): New insn pattern.
13171 (negv<GPI:mode>_cmp_only): Likewise.
13172 (cmpv<GPI:mode>_insn): Likewise.
13173 (subvti4): Use register_operand for operand 1. Update call to
13174 aarch64_expand_subvti.
13175 (usubvti4): Likewise.
13176 (negvti3): New expand pattern.
13177 (negdi_carryout): New insn pattern.
13178 (negvdi_carryinV): New insn pattern.
13179 (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
13180 version the named version.
13181 (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
13183 (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
13185 (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
13187 (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
13188 (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
13189 (sub<mode>3_carryinCV): Delete.
13190 (sub<GPI:mode>3_carryinV): New expand pattern.
13191 sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
13193 2019-01-07 Richard Biener <rguenther@suse.de>
13195 * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
13196 of tree_operand_hash.
13198 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
13200 PR tree-optimization/88598
13201 * tree.h (single_nonzero_element): Declare.
13202 * tree.c (single_nonzero_element): New function.
13203 * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
13204 if I is the only nonzero element of CST.
13206 2019-01-07 Richard Sandiford <richard.sandiford@arm.com>
13208 PR tree-optimization/88598
13209 * tree.h (initializer_each_zero_or_onep): Declare.
13210 * tree.c (initializer_each_zero_or_onep): New function.
13211 (signed_or_unsigned_type_for): Handle float types too.
13212 (unsigned_type_for, signed_type_for): Update comments accordingly.
13213 * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
13214 x & { 0 or -1, 0 or -1, ... }.
13216 2019-01-07 Jonathan Wakely <jwakely@redhat.com>
13218 * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
13219 with x86_64-pc-linux-gnu.
13221 2019-01-07 Tom de Vries <tdevries@suse.de>
13224 * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
13226 (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
13229 2019-01-07 Jakub Jelinek <jakub@redhat.com>
13231 * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
13232 V_256_512 iterator instead of V_512 and TARGET_AVX instead of
13233 TARGET_AVX512F as condition.
13236 * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
13237 const_not_ok_for_debug_p target hook.
13238 (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
13239 on UNSPEC and subexpressions thereof if all subexpressions of the
13240 UNSPEC are CONSTANT_P.
13242 PR tree-optimization/88676
13243 * tree-ssa-phiopt.c (two_value_replacement): New function.
13244 (tree_ssa_phiopt_worker): Call it.
13247 * cfgexpand.c (expand_stack_vars): Only align prev_offset to
13248 ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
13251 * tree-vect-generic.c: Include insn-config.h and recog.h.
13252 (expand_vector_piecewise): Add defaulted ret_type argument,
13253 if non-NULL, use that in preference to type for the result type.
13254 (expand_vector_parallel): Formatting fix.
13255 (do_vec_conversion, do_vec_narrowing_conversion,
13256 expand_vector_conversion): New functions.
13257 (expand_vector_operations_1): Call expand_vector_conversion
13258 for VEC_CONVERT ifn calls.
13259 * internal-fn.def (VEC_CONVERT): New internal function.
13260 * internal-fn.c (expand_VEC_CONVERT): New function.
13261 * fold-const-call.c (fold_const_vec_convert): New function.
13262 (fold_const_call): Use it for CFN_VEC_CONVERT.
13263 * doc/extend.texi (__builtin_convertvector): Document.
13265 2019-01-07 Tom de Vries <tdevries@suse.de>
13267 * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
13268 * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
13269 vector_red_partition, vector_red_sym): New global variables.
13270 (nvptx_option_override): Initialize vector_red_sym.
13271 (nvptx_declare_function_name): Restore red_partition register.
13272 (nvptx_file_end): Emit code to declare the vector reduction variables.
13273 (nvptx_output_red_partition): New function.
13274 (nvptx_expand_shared_addr): Add vector argument. Use it to handle
13275 large vector reductions.
13276 (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
13277 (nvptx_init_builtins): Add VECTOR_ADDR.
13278 (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
13279 Handle nvptx_expand_shared_addr.
13280 (nvptx_get_shared_red_addr): Add vector argument and handle large
13282 (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
13284 (nvptx_goacc_reduction_init): Likewise.
13285 (nvptx_goacc_reduction_fini): Likewise.
13286 (nvptx_goacc_reduction_teardown): Likewise.
13287 (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
13288 init,fini,teardown}.
13289 (nvptx_init_axis_predicate): Initialize vector_red_partition.
13290 (nvptx_set_current_function): Init vector_red_partition.
13291 * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
13292 (nvptx_red_partition): New insn.
13293 * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
13295 2019-01-07 Tom de Vries <tdevries@suse.de>
13298 * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
13301 2019-01-07 Tom de Vries <tdevries@suse.de>
13303 * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
13304 (nvptx_option_override): Init oacc_bcast_partition.
13305 (nvptx_init_oacc_workers): New function.
13306 (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
13307 (nvptx_needs_shared_bcast): New function.
13308 (nvptx_find_par): Generalize to enable vectors to use shared-memory
13309 to propagate state.
13310 (nvptx_shared_propagate): Initialize vector bcast partition and
13311 synchronization state.
13312 (nvptx_single): Generalize to enable vectors to use shared-memory
13313 to propagate state.
13314 (nvptx_process_pars): Likewise.
13315 (nvptx_set_current_function): Initialize oacc_broadcast_partition.
13316 * config/nvptx/nvptx.h (struct machine_function): Add
13317 bcast_partition and sync_bar members.
13319 2019-01-07 Tom de Vries <tdevries@suse.de>
13321 * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
13322 (nvptx_apply_dim_limits): New function.
13323 (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
13326 2019-01-07 Tom de Vries <tdevries@suse.de>
13328 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
13329 as late as possible.
13331 2019-01-07 Tom de Vries <tdevries@suse.de>
13333 * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
13334 (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
13335 (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
13336 (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
13337 PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
13339 2019-01-07 Tom de Vries <tdevries@suse.de>
13341 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
13343 2019-01-07 Tom de Vries <tdevries@suse.de>
13345 * omp-offload.c (oacc_get_min_dim): New function.
13346 * omp-offload.h (oacc_get_min_dim): Declare.
13348 2018-12-26 Mateusz B <mateuszb@poczta.onet.pl>
13351 * config/i386/i386.c (function_value_ms_64): Return small sturct in
13352 AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
13354 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
13358 2017-05-22 Jan Hubicka <hubicka@ucw.cz>
13360 * ipa-inline.c (edge_badness): Use inlined_time instead of
13361 inline_summaries->get.
13363 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
13365 * opts.c (enable_fdo_optimizations): Enable
13366 version-loops-for-strides, loop-interchange, unrol-and-jam
13367 and tree-loop-distribution.
13368 * invoke.texi: Document newly enabled options.
13370 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
13372 * doc/invoke.texi (max-inline-insns-small): New parameters.
13373 * ipa-inline.c (want_early_inline_function_p): simplify.
13374 (want_inline_small_function_p): Fix pasto from previous patch;
13375 use max-inline-insns-small bound.
13376 * params.def (max-inline-insns-small): New param.
13377 * ipa-fnsummary.c (analyze_function_body): Initialize time/size
13378 variables correctly.
13380 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
13382 * doc/invoke.texi: Document max-inline-insns-size,
13383 uninlined-function-insns, uninlined-function-time,
13384 uninlined-thunk-insns and uninlined-thunk-time.
13385 * params.def: Add max-inline-insns-size,
13386 uninlined-function-insns, uninlined-function-time,
13387 uninlined-thunk-insns and uninlined-thunk-time.
13388 * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
13390 * ipa-inline.c (can_inline_edge_by_limits_p,
13391 want_inline_small_function_p): Use new parameters.
13393 2019-01-05 Jan Hubicka <hubicka@ucw.cz>
13395 * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
13397 2019-01-05 Jakub Jelinek <jakub@redhat.com>
13399 PR middle-end/82564
13401 * expr.c (expand_assignment): For calls returning VLA structures
13402 if to_rtx is not a MEM, force it into a stack temporary.
13405 * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
13406 SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
13407 Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
13408 subexpressions of both operands.
13409 (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
13410 subrtxes are CONSTANT_P.
13411 * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
13412 2018-11-09 changes.
13414 2019-01-04 Jan Hubicka <hubicka@ucw.cz>
13416 * params.def (hot-bb-count-ws-permille): Set to 990.
13418 2019-01-04 Martin Sebor <msebor@redhat.com>
13421 * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
13424 2019-01-04 Martin Sebor <msebor@redhat.com>
13427 * doc/extend.texi (attribute alloc_align, alloc_size): Update.
13429 2019-01-04 Jakub Jelinek <jakub@redhat.com>
13431 * gdbinit.in: Turn off pagination for the skip commands, restore
13432 it to previous state afterwards.
13434 2019-01-04 Jakub Jelinek <jakub@redhat.com>
13437 * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
13438 of GET_MODE (opN) as modes of the libcall arguments.
13440 2019-01-04 Jan Beulich <jbeulich@suse.com>
13442 * config/i386/sse.md
13443 (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
13444 <avx512>_cmp<mode>3<mask_scalar_merge_name>,
13445 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
13446 <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
13447 avx512f_vmcmp<mode>3<round_saeonly_name>,
13448 avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
13449 avx512f_maskcmp<mode>3,
13450 <avx512>_cvt<ssemodesuffix>2mask<mode>,
13451 <avx512>_cvt<ssemodesuffix>2mask<mode>,
13452 *<avx512>_cvtmask2<ssemodesuffix><mode>,
13453 *<avx512>_cvtmask2<ssemodesuffix><mode>,
13454 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
13455 <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
13456 <avx512>_gt<mode>3<mask_scalar_merge_name>,
13457 <avx512>_gt<mode>3<mask_scalar_merge_name>,
13458 <avx512>_testm<mode>3<mask_scalar_merge_name>,
13459 <avx512>_testnm<mode>3<mask_scalar_merge_name>,
13460 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
13461 *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
13462 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
13463 *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
13464 avx512cd_maskb_vec_dup<mode>,
13465 avx512cd_maskw_vec_dup<mode>,
13466 avx512dq_fpclass<mode><mask_scalar_merge_name>,
13467 avx512dq_vmfpclass<mode>,
13468 avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
13471 2019-01-03 Martin Sebor <msebor@redhat.com>
13473 PR tree-optimization/88659
13474 * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
13476 2019-01-03 Aaron Sawdey <acsawdey@linux.ibm.com>
13478 * config/rs6000/rs6000-string.c (expand_block_move): Don't use
13479 unaligned vsx and avoid lxvd2x/stxvd2x.
13480 (gen_lvx_v4si_move): New function.
13482 2019-01-03 Tom de Vries <tdevries@suse.de>
13484 * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
13485 (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
13487 * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
13489 2019-01-03 Tom de Vries <tdevries@suse.de>
13491 * config/nvptx/nvptx.c (struct offload_attrs): New.
13492 (populate_offload_attrs): New function. Factor mask extraction out of
13493 nvptx_reorg. Add extraction of dimensions.
13494 (nvptx_reorg): Use populate_offload_attrs.
13496 2019-01-03 Tom de Vries <tdevries@suse.de>
13498 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
13499 cases for oacc_min_dims_p and routine_p. Add asserts for
13500 oacc_default_dims_p and offload_region_p.
13502 2019-01-03 Tom de Vries <tdevries@suse.de>
13504 * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
13505 factored out of ...
13506 (nvptx_goacc_validate_dims): ... here.
13508 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
13510 PR tree-optimization/85574
13511 * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
13513 (struct ssa_equip_hash_traits): Declare.
13514 (val_ssa_equiv): Use custom hash traits using operand_equal_p.
13516 2019-01-03 Jakub Jelinek <jakub@redhat.com>
13519 * dwarf2out.c (modified_type_die): If type is equal to sizetype,
13520 change it to qualified_type.
13522 2019-01-03 Jan Hubicka <hubicka@ucw.cz>
13524 * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
13525 (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
13527 2019-01-02 Martin Sebor <msebor@redhat.com>
13528 Jeff Law <law@redhat.com>
13530 * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
13531 (get_range_strlen_tree): Update appropriately.
13533 * gimple-fold.h (get_range_strlen): Drop unused last argument.
13535 * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
13536 rather than set_range_info.
13537 * tree-ssa-strlen.c (set_strlen_range): Extracted from
13538 maybe_set_strlen_range. Handle potentially boundary crossing
13539 cases more conservatively.
13540 (maybe_set_strlen_range): Parts refactored into set_strlen_range.
13541 Call set_strlen_range.
13542 * tree-ssa-strlen.h (set_strlen_range): Add prototype.
13544 PR middle-end/88663
13545 * gimple-fold.c (get_range_strlen): Update prototype to no longer
13546 need the flexp argument.
13547 (get_range_strlen_tree): Drop flexp argument. Drop flexp argument
13548 from calls to get_range_strlen. Update comments. Just update
13549 VAL for an unterminated const char array and let the reset of the
13550 code handle it normally. No longer try to set *flexp. Adjust
13552 (get_range_strlen): Update for the new get_range_strlen API.
13553 (get_maxval_strlen): Similarly.
13554 (gimple_fold_builtin_strlen): Handle update meaning of return value
13555 from get_range_strlen.
13556 * gimple-ssa-sprintf.c (get_string_length): Update for the new
13557 get_range_strlen API.
13559 2019-01-02 Jan Hubicka <hubicka@ucw.cz>
13562 * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
13563 false at WPA time when body was removed.
13565 2019-01-02 Martin Liska <mliska@suse.cz>
13567 PR tree-optimization/88650
13568 * predict.c (set_even_probabilities): Calculate probability
13569 remainer only when really used.
13571 2019-01-02 Richard Biener <rguenther@suse.de>
13573 PR middle-end/88651
13574 * tree-data-ref.c (analyze_subscript_affine_affine): Use
13575 widest_ints when mangling max_stmt_execution results.
13577 2019-01-02 Richard Biener <rguenther@suse.de>
13579 PR tree-optimization/88621
13580 * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
13581 bitfields when canoncalizing.
13583 2019-01-02 Richard Biener <rguenther@suse.de>
13586 * config/i386/x86-tune-costs.h (intel_cost): Adjust
13587 cost of cheap SSE instruction.
13589 2019-01-02 Richard Biener <rguenther@suse.de>
13592 * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
13593 * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
13595 (sem_item_optimizer::do_congruence_step_f): Sort the congruence
13596 set after UIDs before splitting them.
13598 2019-01-01 Martin Sebor <msebor@redhat.com>
13599 Jeff Law <law@redhat.com>
13601 * gimple-fold.c (get_range_strlen_tree): Record if the computed
13602 length is optimistic. If it is, then arrange to compute the
13603 conservative length as well.
13605 * gimple-fold.h (get_range_strlen): Update prototype.
13606 * builtins.c (check_access): Update call to get_range_strlen to use
13607 c_strlen_data pointer. Change various variable accesses to instead
13608 pull data from the c_strlen_data structure.
13609 (check_strncat_sizes, expand_builtin_strncat): Likewise.
13610 * calls.c (maybe_warn_nonstring_arg): Likewise.
13611 * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise. Reset
13612 minimum length if maximum lengh is unknown.
13613 * gimple-ssa-sprintf.c (get_string_length): Likewise. Drop code
13614 that used c_strlen, it's no longer needed. Restructure slightly.
13615 (format_string): Set unlikely range appropriately.
13616 * gimple-fold.c (get_range_strlen): Update comments. Fix minor
13618 (get_range_strlen): Accept c_strlen_data pointer for external
13619 call sites as well. Pass through to call to internal get_range_strlen.
13620 Adjust minlen, maxlen and maxbound as needed.
13621 (get_maxval_strlen): Update comments.
13622 (gimple_fold_builtin_strlen): Update call to get_range_strlen
13623 to use c_strlen_data pointer. Change variable accesses to instead
13624 use c_strlen_data data members.
13626 * gimple-fold.c (get_range_strlen): Update prototype.
13627 (get_range_strlen_tree): Update prototype. Drop minlen/maxlen
13628 local variables. Use pdata to return information to caller.
13629 Update calls to get_range_strlen. Update pdata->maxbound.
13630 (get_range_strlen -- static version): Similarly.
13631 (get_range_strlen -- extern version): Update for internal
13632 get_range_strlen API change. Convert to external data format.
13633 (get_maxval_strlen): Similarly.
13635 2019-01-01 Jan Hubicka <hubicka@ucw.cz>
13637 * coverage.c (get_coverage_counts): Use current_function_decl.
13638 * profile.c (read_thunk_profile): New function.
13639 (branch_prob): Add THUNK parameter.
13640 * tree-profile.c (tree_profiling): Handle thunks.
13641 * value-prof.c (init_node_map): Handle thunks.
13642 * value-prof.h (branch_prob): Upate prototype.
13643 (read_thunk_profile): Declare.
13645 2019-01-01 Jakub Jelinek <jakub@redhat.com>
13647 Update copyright years.
13649 * gcc.c (process_command): Update copyright notice dates.
13650 * gcov-dump.c (print_version): Ditto.
13651 * gcov.c (print_version): Ditto.
13652 * gcov-tool.c (print_version): Ditto.
13653 * gengtype.c (create_file): Ditto.
13654 * doc/cpp.texi: Bump @copying's copyright year.
13655 * doc/cppinternals.texi: Ditto.
13656 * doc/gcc.texi: Ditto.
13657 * doc/gccint.texi: Ditto.
13658 * doc/gcov.texi: Ditto.
13659 * doc/install.texi: Ditto.
13660 * doc/invoke.texi: Ditto.
13662 Copyright (C) 2019 Free Software Foundation, Inc.
13664 Copying and distribution of this file, with or without modification,
13665 are permitted in any medium without royalty provided the copyright
13666 notice and this notice are preserved.