[Ada] Unnesting: handle conditional expressions
[official-gcc.git] / gcc / ChangeLog
blob932eca2519c3acb158dd82ea42ed41352ea0b3fb
1 2019-07-04  Richard Biener  <rguenther@suse.de>
3         * tree-ssa-sccvn.h (vn_reference_lookup): Add last_vuse_ptr
4         argument.
5         * tree-ssa-sccvn.c (last_vuse_ptr, vn_walk_kind): Move
6         globals into...
7         (struct vn_walk_cb_data): New callback data struct.
8         (vn_reference_lookup_2): Adjust.
9         (vn_reference_lookup_3): Likewise.
10         (vn_reference_lookup_pieces): Likewise.
11         (vn_reference_lookup): Likewise, get last_vuse_ptr argument.
12         (visit_reference_op_load): Adjust.
14 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
16         PR tree-optimization/91063
17         * tree-vect-stmts.c (vect_init_vector): Call gsi_remove to remove
18         stmt from stmts sequence before calling vect_init_vector_1.
19         Formatting fix.
21 2019-07-04  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
23         PR target/88833
24         * fwprop.c (reg_single_def_p): New function.
25         (propagate_rtx_1): Add unconditional else inside RTX_EXTRA case.
26         (forward_propagate_into): New parameter reg_prop_only
27         with default value false.
28         Propagate def's src into loop only if SET_SRC and SET_DEST
29         of def_set have single definitions.
30         Likewise if reg_prop_only is set to true.
31         (fwprop): New param fwprop_addr_p.
32         Integrate fwprop_addr into fwprop.
33         (fwprop_addr): Remove.
34         (pass_rtl_fwprop_addr::execute): Call fwprop with arg set
35         to true.
36         (pass_rtl_fwprop::execute): Call fwprop with arg set to false.
37         * simplify-rtx.c (simplify_subreg): Add case for vector comparison.
38         * config/i386/sse.md (UNSPEC_BLENDV): Adjust pattern.
40 2019-07-04  Jakub Jelinek  <jakub@redhat.com>
42         * omp-low.c (lower_omp_scan): Call lower_omp on stmt's body
43         in worksharing loop scans.
45         PR tree-optimization/91074
46         * omp-low.c (lower_omp_for_scan): Set DECL_GIMPLE_REG_P on cplx
47         temporary.
49         PR rtl-optimization/90756
50         * explow.c (promote_ssa_mode): Always use TYPE_MODE, don't bypass it
51         for VECTOR_TYPE_P.
53 2019-07-03  Dennis Zhang  <dennis.zhang@arm.com>
55         * config/aarch64/aarch64.md: Remove redundant constraints from
56         define_expand but keep some patterns untouched if they are
57         specially selected by TARGET_SECONDARY_RELOAD hook.
58         * config/aarch64/aarch64-sve.md: Likewise.
59         * config/aarch64/atomics.md: Remove redundant constraints from
60         define_expand.
61         * config/aarch64/aarch64-simd.md: Likewise.
63 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
65         * config/darwin.h (DRIVER_SELF_SPECS): Remove the linker cases.
66         (RDYNAMIC): Rename to, DARWIN_RDYNAMIC.
67         (DARWIN_PIE_SPEC, DARWIN_NOPIE_SPEC): Adjust to remove the Xlinker
68         clauses.
69         (LINK_COMMAND_SPEC_A): Add DARWIN_RDYNAMIC, DARWIN_PIE_SPEC and
70         DARWIN_NOPIE_SPEC.
72 2019-07-03  Iain Sandoe  <iain@sandoe.co.uk>
74         * config/darwin.h (REAL_LIBGCC_SPEC): Adjust for earlier Darwin.
75         (STARTFILE_SPEC): Split crt3 into a separate spec.
76         (DARWIN_EXTRA_SPECS): Add crt2 and crt3 spec.
77         (DARWIN_CRT2_SPEC): New.
78         (DARWIN_CRT3_SPEC): New.
79         (MIN_LD64_OMIT_STUBS): Revise to 62.1.
80         * config/rs6000/darwin.h (DARWIN_CRT2_SPEC): Revise conditions.
81         (DARWIN_CRT3_SPEC): New.
83 2019-07-03  Michael Meissner  <meissner@linux.ibm.com>
85         * config/rs6000/altivec.md (altivec_mov<mode>, VM2 iterator):
86         Change the RTL attribute "length" from "4" to "*" to allow the
87         length attribute to be adjusted automatically for prefixed load,
88         store, and add immediate instructions.
89         * config/rs6000/rs6000.md (extendhi<mode>2, EXTHI iterator):
90         Likewise.
91         (extendsi<mode>2, EXTSI iterator): Likewise.
92         (movsi_internal1): Likewise.
93         (movsi_from_sf): Likewise.
94         (movdi_from_sf_zero_ext): Likewise.
95         (mov<mode>_internal): Likewise.
96         (movcc_internal1, QHI iterator): Likewise.
97         (mov<mode>_softfloat, FMOVE32 iterator): Likewise.
98         (movsf_from_si): Likewise.
99         (mov<mode>_hardfloat32, FMOVE64 iterator): Likewise.
100         (mov<mode>_softfloat64, FMOVE64 iterator): Likewise.
101         (mov<mode>, FMOVE128 iterator): Likewise.
102         (movdi_internal64): Likewise.
103         * config/rs6000/vsx.md (vsx_le_permute_<mode>, VSX_TI iterator):
104         Likewise.
105         (vsx_le_undo_permute_<mode>, VSX_TI iterator): Likewise.
106         (vsx_mov<mode>_64bit, VSX_M iterator): Likewise.
107         (vsx_mov<mode>_32bit, VSX_M iterator): Likewise.
108         (vsx_splat_v4sf): Likewise.
110 2019-07-03  Mark Wielaard  <mark@klomp.org>
112         PR debug/90981
113         * dwarf2out.c (add_top_level_skeleton_die_attrs): Only add
114         DW_AT_addr_base if there is actually a .debug_addr section with
115         addresses.
116         (output_addr_table): Add DWARF5 table header generation here after
117         checking there are actually any addresses from...
118         (dwarf2out_finish): ...here.
119         * testsuite/g++.dg/pr90981.C: New test.
121 2019-07-03  Richard Biener  <rguenther@suse.de>
123         PR middle-end/91069
124         * match.pd (vec_perm -> bit_insert): Fix element read from
125         first vector.
127 2019-07-03  Martin Liska  <mliska@suse.cz>
129         * dbgcnt.def (DEBUG_COUNTER): Add match debug counter.
130         * genmatch.c (dt_simplify::gen_1): Generate dbgcnt
131         condition.
132         * generic-match-head.c: Include dbgcnt.h.
133         * gimple-match-head.c: Likewise.
135 2019-07-03  Martin Liska  <mliska@suse.cz>
137         * gcov-counter.def (GCOV_COUNTER_V_SINGLE): Remove.
138         (GCOV_COUNTER_V_TOPN): New.
139         (GCOV_COUNTER_V_INDIR): Use _topn.
140         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): Remove.
141         (GCOV_TOPN_VALUES): New.
142         (GCOV_SINGLE_VALUE_COUNTERS): Remove.
143         (GCOV_TOPN_VALUES_COUNTERS): New.
144         * profile.c (instrument_values): Use HIST_TYPE_TOPN_VALUES.
145         * tree-profile.c:
146         (gimple_init_gcov_profiler): Rename variables from one_value
147         to topn_values.
148         (gimple_gen_one_value_profiler): Remove.
149         (gimple_gen_topn_values_profiler): New function.
150         * value-prof.c (dump_histogram_value): Use TOPN_VALUES
151         names instead of SINGLE_VALUE.
152         (stream_out_histogram_value): Likewise.
153         (stream_in_histogram_value): Likewise.
154         (get_most_common_single_value): Likewise.
155         (gimple_divmod_fixed_value_transform): Likewise.
156         (gimple_stringops_transform): Likewise.
157         (gimple_divmod_values_to_profile): Likewise.
158         (gimple_stringops_values_to_profile): Likewise.
159         (gimple_find_values_to_profile): Likewise.
160         * value-prof.h (enum hist_type): Rename to TOPN.
161         (gimple_gen_one_value_profiler): Remove.
162         (gimple_gen_topn_values_profiler): New.
164 2019-07-03  Eric Botcazou  <ebotcazou@adacore.com>
166         * dwarf2out.c (add_scalar_info): Add back refererence to existing DIE
167         if it has the DW_AT_data_member_location attribute.
169 2019-07-03  Richard Biener  <rguenther@suse.de>
171         * gimple-pretty-print.c (dump_ternary_rhs): Fix BIT_INSERT_EXPR
172         dumping.
174 2019-07-03  Sylvia Taylor  <sylvia.taylor@arm.com>
176         * config/aarch64/aarch64.md (FP_REGNUM): New constant.
177         (tlsdesc_small_advsimd_<mode>): Add use of FP_REGNUM.
178         (tlsdesc_small_sve_<mode>): Likewise.
180 2019-07-03  Martin Liska  <mliska@suse.cz>
182         * Makefile.in: Define ZSTD_LIB.
183         * common.opt: Adjust compression level
184         to support also zstd levels.
185         * config.in: Regenerate.
186         * configure: Likewise.
187         * configure.ac: Add --with-zstd and --with-zstd-include options
188         and detect ZSTD.
189         * doc/install.texi: Mention zstd dependency.
190         * gcc.c: Print supported LTO compression algorithms.
191         * lto-compress.c (lto_normalized_zstd_level): Likewise.
192         (lto_compression_zstd): Likewise.
193         (lto_uncompression_zstd): Likewise.
194         (lto_end_compression): Dispatch in between zlib and zstd.
195         (lto_compression_zlib): Mark with ATTRIBUTE_UNUSED.
196         (lto_uncompression_zlib): Make it static.
197         * lto-compress.h (lto_end_uncompression): Fix GNU coding style.
198         * lto-section-in.c (lto_get_section_data): Pass info
199         about used compression.
200         * lto-streamer-out.c: By default use zstd when possible.
201         * timevar.def (TV_IPA_LTO_DECOMPRESS): Rename to decompression
202         (TV_IPA_LTO_COMPRESS): Likewise for compression.
204 2019-07-03  Martin Liska  <mliska@suse.cz>
206         * lto-section-in.c (lto_get_section_data): Add "lto" section.
207         * lto-section-out.c (lto_destroy_simple_output_block): Never
208         compress LTO_section_lto section.
209         * lto-streamer-out.c (produce_asm): Do not set major_version
210         and minor_version.
211         (lto_output_toplevel_asms): Likewise.
212         (produce_lto_section): New function.
213         (lto_output): Call produce_lto_section.
214         (lto_write_mode_table): Do not set major_version and
215         minor_version.
216         (produce_asm_for_decls): Likewise.
217         * lto-streamer.h (enum lto_section_type): Add LTO_section_lto
218         type.
219         (struct lto_header): Remove.
220         (struct lto_section): New struct.
221         (struct lto_simple_header): Do not inherit from lto_header.
222         (struct lto_file_decl_data): Add lto_section_header field.
224 2019-07-03  Martin Liska  <mliska@suse.cz>
226         * lra-eliminations.c (eliminate_regs_in_insn): Remove
227         dead assignemts.
228         * reg-stack.c (check_asm_stack_operands): Likewise.
229         * tree-ssa-structalias.c (create_function_info_for): Likewise.
230         * tree-vect-generic.c (expand_vector_operations_1): Likewise.
231         * config/i386/i386-expand.c (ix86_expand_sse2_mulvxdi3): Use
232         force_expand_binop.
234 2019-07-03  Martin Liska  <mliska@suse.cz>
236         PR tree-optimization/90892
237         * builtins.c (inline_expand_builtin_string_cmp): Handle '\0'
238         in string constants.
240 2019-07-03  Martin Liska  <mliska@suse.cz>
242         PR middle-end/90899
243         * multiple_target.c (create_dispatcher_calls): Add to comdat
244         group only if set for ifunc.
246 2019-07-03  Martin Liska  <mliska@suse.cz>
248         PR target/88056
249         * config/i386/host-mingw32.c (mingw32_gt_pch_use_address):
250         Define local_object_name in outer scope in order to handle
251         use-after-scope issue.
253 2019-07-03  Martin Liska  <mliska@suse.cz>
255         * common.opt: Add fprofile-note.
256         * coverage.c (coverage_init): Append the option
257         to bbg_file_name.
258         * doc/invoke.texi: Document -fprofile-note.
260 2019-07-03  Jakub Jelinek  <jakub@redhat.com>
262         PR tree-optimization/91033
263         * tree-vectorizer.h (vect_mark_stmts_to_be_vectorized,
264         vect_analyze_data_refs): Add bool * arguments.
265         * tree-vect-data-refs.c (vect_analyze_data_refs): Add fatal argument,
266         if failure is due to scatter/gather, set *fatal to false if non-NULL.
267         * tree-vect-stmts.c (vect_mark_stmts_to_be_vectorized): Likewise.
268         * tree-vect-loop.c (vect_analyze_loop_2): Adjust
269         vect_mark_stmts_to_be_vectorized and vect_analyze_data_refs callers.
270         * tree-vect-slp.c (vect_slp_analyze_bb_1): Adjust
271         vect_analyze_data_refs caller.
273         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__SCANTEMP_
274         clause.
275         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__SCANTEMP_ instead of
276         OMP_CLAUSE__CONDTEMP_ as range's upper bound.
277         (OMP_CLAUSE__SCANTEMP__ALLOC, OMP_CLAUSE__SCANTEMP__CONTROL): Define.
278         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
279         OMP_CLAUSE__SCANTEMP_ entry.
280         (walk_tree_1): Handle OMP_CLAUSE__SCANTEMP_.
281         * tree-pretty-print.c (dump_omp_clause): Likewise.
282         * tree-nested.c (convert_nonlocal_omp_clauses,
283         convert_local_omp_clauses): Likewise.
284         * omp-general.h (struct omp_for_data): Add have_scantemp and
285         have_nonctrl_scantemp members.
286         * omp-general.c (omp_extract_for_data): Initialize them.
287         * omp-low.c (struct omp_context): Add scan_exclusive member.
288         (scan_omp_1_stmt): Don't unnecessarily mask gimple_omp_for_kind
289         result again with GF_OMP_FOR_KIND_MASK.  Initialize also
290         ctx->scan_exclusive.
291         (lower_rec_simd_input_clauses): Use ctx->scan_exclusive instead
292         of !ctx->scan_inclusive.
293         (lower_rec_input_clauses): Simplify gimplification of dtors using
294         gimplify_and_add.  For non-is_simd test OMP_CLAUSE_REDUCTION_INSCAN
295         rather than rvarp.  Handle OMP_CLAUSE_REDUCTION_INSCAN in worksharing
296         loops.  Don't add barrier for reduction_omp_orig_ref if
297         ctx->scan_??xclusive.
298         (lower_reduction_clauses): Don't do anything for ctx->scan_??xclusive.
299         (lower_omp_scan): Use ctx->scan_exclusive instead
300         of !ctx->scan_inclusive.  Handle worksharing loops with inscan
301         reductions.  Use new_vard != new_var instead of repeated
302         omp_is_reference calls.
303         (omp_find_scan, lower_omp_for_scan): New functions.
304         (lower_omp_for): Call lower_omp_for_scan for worksharing loops with
305         inscan reductions.
306         * omp-expand.c (expand_omp_scantemp_alloc): New function.
307         (expand_omp_for_static_nochunk): Handle fd->have_nonctrl_scantemp
308         and fd->have_scantemp.
310         * gimplify.c (gimplify_scan_omp_clauses): For inscan reductions
311         on worksharing loop propagate it as shared clause to containing
312         combined parallel.
314         * omp-expand.c (expand_omp_for_static_nochunk,
315         expand_omp_for_static_chunk): For nowait worksharing loop with
316         conditional lastprivate clause(s), emit GOMP_loop_end_nowait call
317         at the end.
319 2019-07-02  Joern Rennecke  <joern.rennecke@riscy-ip.com>
321         PR testsuite/91065
322         * testsuite/gcc.dg/plugin/start_unit_plugin.c: Register a root tab
323         to reference fake_var.
325 2019-07-02  qing zhao  <qing.zhao@oracle.com>
327         PR preprocessor/90581
328         * doc/cppopts.texi: Add document for -fmax-include-depth.
329         * doc/invoke.texi (Preprocessor Options): List -fmax-include-depth.
331 2019-07-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
333         * config/i386/mmx.md (mmx_pack<s_trunsuffix>swb):
334         Use TARGET_SSE2 && SSE_REGNO_P in split condition.
335         (mmx_packssdw): Ditto.
336         (mmx_punpckhbw): Ditto.
337         (mmx_punpcklbw): Ditto.
338         (mmx_punpckhwd): Ditto.
339         (mmx_punpcklwd): Ditto.
340         (mmx_punpckhdq): Ditto.
341         (mmx_punpckldq): Ditto.
342         (*vec_dupv4hi): Ditto.
343         (*vec_dupv2si): Ditto.
344         (mmx_pmovmskb): Ditto.
345         * config/i386/sse.md (sse_cvtpi2ps): Use
346         TARGET_SSE2 && SSE_REG_P in split condition.
347         (ssse3_ph<plusminus_mnemonic>wv4hi3): Use
348         TARGET_SSSE3 && SSE_REGNO_P in split condition.
349         (ssse3_ph<plusminus_mnemonic>dv2si3): Ditto.
350         (ssse3_pshufbv8qi3): Ditto.
351         (ssse3_palignrdi): Ditto.
353 2019-07-02  Andrew Stubbs  <ams@codesourcery.com>
355         * config/gcn/gcn.md (movdi_symbol_save_scc): Convert to define_insn
356         with inlined save and restore.
358 2019-07-02  Eric Botcazou  <ebotcazou@adacore.com>
360         * cfgexpand.c (pass_expand::execute): Deal specially with instructions
361         to be inserted on single successor edge of the entry block.  Then call
362         commit_edge_insertions instead of inserting the instructions manually.
363         * cfgrtl.c (commit_edge_insertions): Do not verify flow info during
364         RTL expansion and rebuild jump labels chain.
366 2019-07-02  Richard Biener  <rguenther@suse.de>
368         * tree-core.h (enum tree_index): Add TI_CHREC_DONT_KNOW and
369         TI_CHREC_KNOWN.
370         * tree.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
371         Define here.
372         * tree.c (build_common_tree_nodes): Initialize them.
373         * tree-chrec.h (chrec_not_analyzed_yet, chrec_dont_know, chrec_known):
374         Make declarations comments.
375         * tree-scalar-evolution.c (chrec_not_analyzed_yet, chrec_dont_know,
376         chrec_known): Remove definitions.
377         (initialize_scalar_evolutions_analyzer): Remove.
378         (scev_initialize): Do not call initialize_scalar_evolutions_analyzer.
379         * tree-streamer.c (preload_common_nodes): Do not preload
380         TI_CHREC_DONT_KNOW or TI_CHREC_KNOWN.
382 2019-07-02  Jan Hubicka  <jh@suse.cz>
384         * tree-ssa-alias.c (aliasing_component_refs_p): Remove forgotten
385         sanity check.
387 2019-07-02  Jan Hubicka  <jh@suse.cz>
389         * tree-ssa-alias.c (nonoverlapping_component_refs_for_decl_p): Rename
390         to ..
391         (nonoverlapping_component_refs_since_match_p): ... this one;
392         handle also non-decl bases; return -1 if search gave up.
393         (alias_stats): Rename nonoverlapping_component_refs_of_decl_p_may_alias,
394         nonoverlapping_component_refs_of_decl_p_no_alias to
395         nonoverlapping_component_refs_since_match_p_may_alias,
396         nonoverlapping_component_refs_since_match_p_no_alias.
397         (dump_alias_stats): Update dumping.
398         (aliasing_matching_component_refs_p):  Break out from ...;
399         dispatch to nonoverlapping_component_refs_for_decl_p
400         and nonoverlapping_component_refs_since_match_p.
401         (aliasing_component_refs_p): ... here; call
402         nonoverlapping_component_refs_p in scenarios where we can not
403         precisely determine base match.
404         (decl_refs_may_alias_p): Use
405         nonoverlapping_component_refs_since_match_p.
406         (indirect_ref_may_alias_decl_p): Do not call
407         nonoverlapping_component_refs_p.
408         (indirect_refs_may_alias_p): Likewise.
410 2019-07-02  Jan Hubicka  <jh@suse.cz>
412         * tree-inline.c (remap_gimple_stmt): Do not subtitute handled components
413         to clobber of return value.
415 2019-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
417         * config/arm/cortex-a57.md (cortex_a57_neon_type): Use neon_arith_basic
418         for is_neon_type instructions that have not already been categorized.
420 2019-07-02  Richard Biener  <rguenther@suse.de>
422         PR tree-optimization/58483
423         * tree-ssa-scopedtables.c (avail_expr_hash): Use OEP_ADDRESS_OF
424         for MEM_REF base hashing.
425         (equal_mem_array_ref_p): Likewise for base comparison.
427 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
429         * config/rs6000/rs6000.md (signbit<mode>2_dm): Make this a
430         parameterized name.
431         (signbit<mode>2): Use that name.  Simplify.
433 2019-07-01  Joern Rennecke  <joern.rennecke@riscy-ip.com>
435         PR middle-end/66726
436         * tree-ssa-phiopt.c (factor_out_conditional_conversion):
437         Tune heuristic from PR71016 to allow MIN / MAX.
438         * testsuite/gcc.dg/tree-ssa/pr66726-4.c: New testcase.
440 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
442         * config/rs6000/rs6000.md (ieee_128bit_vsx_abs<mode>2): Make this a
443         parameterized name.
444         (abs<mode>2): Use that name.  Simplify.
446 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
448         * config/rs6000/rs6000.md (ieee_128bit_vsx_neg<mode>2): Make this a
449         parameterized name.
450         (neg<mode>2): Use that name.  Simplify.
452 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
454         * config/rs6000/rs6000.md (abs<mode>2_hw): Make this a parameterized
455         name.
456         (abs<mode>2): Use that name.  Simplify.
458 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
460         * config/rs6000/rs6000.md (neg<mode>2_hw): Make this a parameterized
461         name.
462         (neg<mode>2): Use that name.  Simplify.
464 2019-07-01  UroÅ¡ Bizjak  <ubizjak@gmail.com>
466         * config/i386/i386.md ("isa" attribute): Add sse_noavx.
467         ("enabled" attribute): Handle sse_noavx isa attribute.
468         * config/i386/mmx.md (*vec_dupv2sf): Add "isa" attribute.
469         Use TARGET_SSE && SSE_REGNO_P in split condition.
470         (*vec_dupv2sf): Ditto.
472 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
474         * config/rs6000/rs6000.md (extenddf<mode>2): Make this a parameterized
475         name.
476         (floatsi<mode>2): Use that name.  Simplify.
478 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
480         * config/rs6000/rs6000.md (extenddf<mode>2_fprs): Make this a
481         parameterized name.
482         (extenddf<mode>2_vsx): Make this a parameterized name.
483         (extenddf<mode>2): Use those names.  Simplify.
485 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
487         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Make this a parameterized
488         name.
489         (eh_return): Use that name.  Simplify.
491 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
493         * config/rs6000/rs6000.md (ctr<mode>): Make this a parameterized name.
494         (doloop_end): Use that name.  Simplify.
496 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
498         * config/rs6000/rs6000.md (indirect_jump<mode>_nospec): Make this a
499         parameterized name.
500         (indirect_jump): Use that name.  Simplify.
502 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
504         * config/rs6000/rs6000.md (abs<mode>2_internal): Make this a
505         parameterized name.
506         (abs<mode>2): Use that name.  Simplify.
508 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
510         * config/rs6000/rs6000.md (fix_trunc<mode>si2_fprs): Make this a
511         parameterized name.
512         (fix_trunc<mode>si2): Use that name.  Simplify.
514 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
516         * config/rs6000/rs6000.md (neg<mode>2): Make this a parameterized name.
517         (allocate_stack): Use that name.  Simplify.
519 2019-07-01  Martin Sebor  <msebor@redhat.com>
521         PR middle-end/90923
522         * hash-map.h (hash_map::put): On insertion invoke element ctor.
523         (hash_map::get_or_insert): Same.  Reformat comment.
524         * hash-set.h (hash_set::add): On insertion invoke element ctor.
525         * hash-map-tests.c (test_map_of_type_with_ctor_and_dtor): New.
526         * hash-set-tests.c (test_map_of_type_with_ctor_and_dtor): New.
527         * hash-table.h (hash_table::operator=): Prevent copy assignment.
528          (hash_table::hash_table (const hash_table&)): Use copy ctor
529          instead of assignment to copy elements.
531 2019-07-01  Wilco Dijkstra  <wdijkstr@arm.com>
532             John David Anglin  <danglin@gcc.gnu.org>
534         PR target/90963
535         * config/pa/pa.md (builtin_longjmp): Restore hard_frame_pointer_rtx
536         using saved frame pointer.
538 2019-07-01  Eric Botcazou  <ebotcazou@adacore.com>
540         PR middle-end/64242
541         * config/sparc/sparc.md (nonlocal_goto): Restore frame pointer last.
542         Add frame clobber and schedule blockage.
544 2019-07-01  Sandra Loosemore  <sandra@codesourcery.com>
546         * doc/invoke.texi (Link Options): Further editorial changes to
547         -flinker-output docs.
549 2019-07-01  Segher Boessenkool  <segher@kernel.crashing.org>
551         * config/rs6000/rs6000.c (rs6000_force_indexed_or_indirect_mem):
552         Load both operands of a PLUS into registers separately.
554 2019-07-01  Andreas Krebbel  <krebbel@linux.ibm.com>
556         * config/s390/vector.md: Fix shift count operand printing.
558 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
560         * ira-lives.c (process_bb_node_lives): Use ira_setup_alts.
562 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
564         * ira.c (ira_get_dup_out_num): Don't punt for earlyclobbers.
565         Use recog_data to test for an output operand.
567 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
569         * ira.c (ira_setup_alts): If any valid alternatives have zero cost,
570         exclude any others that are disparaged or that are bound to need
571         a reload or spill.
572         (ira_get_dup_out_num): Expand comment.
574 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
576         * ira.c (ira_setup_alts): Use preprocess_constraints to get the
577         constraint string for each operand/alternative combo.  Only handle
578         '%' at the start of constraint strings, and look for it outside
579         the main loop.
581 2019-07-01  Richard Sandiford  <richard.sandiford@arm.com>
583         * ira-int.h (ira_setup_alts, ira_get_dup_out_num): Use
584         alternative_mask instead of HARD_REG_SET to represent a
585         bitmask of alternatives.
586         * ira.c (ira_setup_alts, ira_get_dup_out_num): Likewise.
587         * ira-conflicts.c (add_insn_allocno_copies): Likewise.
589 2019-07-01  Martin Liska  <mliska@suse.cz>
591         * edit-context.c (test_applying_fixits_unreadable_file): Do not
592         use () for a constructor call.
593         (test_applying_fixits_line_out_of_range): Likewise.
594         * ggc-page.c (alloc_page): Use (void *) for %p printf format
595         argument.
596         (free_page): Likewise.
598 2019-07-01  Vladislav Ivanishin <vlad@ispras.ru>
600         * gdbhooks.py (GdbPrettyPrinters.add_printer_for_types): Reorder
601         parameter names to match usage (no functional change).
602         (GdbPrettyPrinters.add_printer_for_regex): Ditto.
604 2019-07-01  Richard Biener  <rguenther@suse.de>
606         * tree-ssa-sccvn.c (class pass_fre): Add may_iterate
607         pass parameter.
608         (pass_fre::execute): Honor it.
609         * passes.def: Adjust pass_fre invocations to allow iterating,
610         add non-iterating pass_fre before late threading/dom.
612 2019-07-01  Richard Biener  <rguenther@suse.de>
614         * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Adjust
615         TARGET_MEM_REF handling to also handle address-taken ones.
617 2019-07-01  Hongtao Liu  <hongtao.liu@intel.com>
619         * doc/sourcebuild.texi (Effective-Target Keywords, Other
620         hardware attributes): Document avx512vp2intersect.
622 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
624         * config/i386/sse.md (ssse3_abs<mode>2): Rename from abs<mode>2.
625         (abs<mode>2): New expander.
626         * config/i386/i386-builtin.def (__builtin_ia32_pabsb):
627         Use CODE_FOR_ssse3_absv8qi2.
628         (__builtin_ia32_pabsw): Use CODE_FOR_ssse3_absv4hi2.
629         (__builtin_ia32_pabsd): Use CODE_FOR_ssse3_absv2si2.
631 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
633         * config/i386/i386.md (mmx_isa): Rename x64, x64_noavx and x64_avx
634         to sse, sse_noavx and avx.  Update all uses.
636 2019-06-30  UroÅ¡ Bizjak  <ubizjak@gmail.com>
638         * config/i386/mmx.md (sse_movntq): Add "isa" attribute.
639         (*mmx_<plusminus_insn><mode>3): Ditto.
640         (*mmx_mulv4hi3"): Ditto.
641         (*mmx_smulv4hi3_highpart): Ditto.
642         (*mmx_umulv4hi3_highpart): Ditto.
643         (*mmx_pmaddwd): Ditto.
644         (*sse2_umulv1siv1di3): Ditto.
645         (*mmx_<code>v4hi3): Ditto.
646         (*mmx_<code>v8qi3): Ditto.
647         (mmx_ashr<mode>3): Ditto.
648         ("mmx_<shift_insn><mode>3): Ditto.
649         (*mmx_eq<mode>3): Ditto.
650         (mmx_gt<mode>3): Ditto.
651         (mmx_andnot<mode>3): Ditto.
652         (*mmx_<code><mode>3): Ditto.
653         (*mmx_pinsrw): Ditto.
654         (*mmx_pextrw): Ditto.
655         (mmx_pshufw_1): Ditto.
656         (*mmx_uavgv8qi3): Ditto.
657         (*mmx_uavgv4hi3): Ditto.
658         ("mmx_psadbw): Ditto.
659         * config/i386/sse.md (sse_cvtps2pi): Ditto.
660         (sse_cvttps2pi): Ditto.
661         (ssse3_pmaddubsw): Ditto.
662         (*ssse3_pmulhrswv4hi3): Ditto.
663         (ssse3_psign<mode>3): Ditto.
665 2019-06-29  Eric Botcazou  <ebotcazou@adacore.com>
667         * expr.c (expand_expr_real_1) <BIT_FIELD_REF>: Apply the big-endian
668         adjustment for bit-fields to all aggregate types.
670 2019-06-28   Michael Meissner  <meissner@linux.ibm.com>
672         * config/rs6000/predicates.md (pcrel_address):  Use
673         SYMBOL_REF_LOCAL_P to determine if a label is local.
674         (pcrel_external_address): New predicate.
675         (non_prefixed_mem_operand): Delete, predicate not used.
676         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL_P): Delete, we now use
677         SYMBOL_REF_LOCAL_P to determine if we can use pc-relative
678         addressing.
679         (SYMBOL_REF_PCREL_P): Likewise.
681         PR target/91009
682         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Add non-VSX
683         alternative.
684         (floatsi<mode>2_lfiwax_mem): Add non-VSX alternative.
685         (floatunssi<mode>2_lfiwzx): Add non-VSX alternative.
686         (floatunssi<mode>2_lfiwzx_mem): Add non-VSX alternative.
688 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
690         * config.gcc (powerpc-*-darwin*, powerpc64-*-darwin*): Remove
691         override on extra_headers.
693 2019-06-28  Iain Sandoe  <iain@sandoe.co.uk>
695         * config/darwin-c.c (pop_field_alignment): Quote #pragma options.
696         * config/darwin-driver.c (darwin_default_min_version): Remove newline
697         from warning.
698         (darwin_driver_init): Likewise.
700 2019-06-28  Jan Beulich  <jbeulich@suse.com>
702         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
703         vgf2p8affineqb_<mode><mask_name>, vgf2p8mulb_<mode><mask_name>):
704         Eliminate redundant alternative.
706 2019-06-28  Jan Beulich  <jbeulich@suse.com>
708         * config/i386/sse.md (vgf2p8affineinvqb_<mode><mask_name>,
709         vgf2p8affineqb_<mode><mask_name>): Drop % constraint modifier.
710         Use vector_operand.
712 2019-06-28  Claudiu Zissulescu  <claziss@synopsys.com>
714         * config/arc/arc.c (arc_rtx_costs): All short instructions are
715         having a lower cost regardless of the speed option.
717 2019-06-28  Jan Beulich  <jbeulich@suse.com>
719         * config/i386/sse.md (sse2_cvtpd2pi, sse2_cvttpd2pi): Use
720         vector_operand plus, on both alternatives, "Bm" constraint.
722 2019-06-28  Dennis Zhang  <dennis.zhang@arm.com>
724         * config/arm/arm.md: Remove redundant constraints from
725         define_expand but leave reload_inm and reload_outm patterns
726         untouched since they need special constraints to work.
727         * config/arm/arm-fixed.md: Remove redundant constraints from
728         define_expand.
729         * config/arm/iwmmxt.md: Likewise.
730         * config/arm/neon.md: Likewise.
731         * config/arm/sync.md: Likewise.
732         * config/arm/thumb1.md: Likewise.
733         * config/arm/vec-common.md: Likewise.
735 2019-06-27  Ilia Diachkov  <ilia.diachkov@optimitech.com>
737         * doc/install.texi: Document --disable-tm-clone-registry.
739 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
741         PR c++/91024
742         * gimplify.c (collect_fallthrough_labels): Ignore GIMPLE_PREDICT
743         statements.
745         PR tree-optimization/91010
746         * tree-vect-stmts.c (scan_operand_equal_p): If offset1 == offset2,
747         return true.  Otherwise, don't call operand_equal_p if offset1 or
748         offset2 is NULL and just return false.
750 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
752         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Honour
753         user-specified float mode choice for kernel mode code.
755 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
757         * config/rs6000/darwin.h (ENDFILE_SPEC): Correct whitespace in the
758         spec.
760 2019-06-27  Iain Sandoe  <iain@sandoe.co.uk>
762         * config/rs6000/rs6000.c (darwin_rs6000_override_options): Do not
763         use longcall for 64b code.
765 2019-06-27  Aaron Sawdey <acsawdey@linux.ibm.com>
767         * builtins.c (get_memory_rtx): Fix comment.
768         * optabs.def (movmem_optab): Change to cpymem_optab.
769         * expr.c (emit_block_move_via_cpymem): Change movmem to cpymem.
770         (emit_block_move_hints): Change movmem to cpymem.
771         * defaults.h: Change movmem to cpymem.
772         * targhooks.c (get_move_ratio): Change movmem to cpymem.
773         (default_use_by_pieces_infrastructure_p): Ditto.
774         * config/aarch64/aarch64-protos.h: Change movmem to cpymem.
775         * config/aarch64/aarch64.c (aarch64_expand_movmem): Change movmem
776         to cpymem.
777         * config/aarch64/aarch64.h: Change movmem to cpymem.
778         * config/aarch64/aarch64.md (movmemdi): Change name to cpymemdi.
779         * config/alpha/alpha.h: Change movmem to cpymem in comment.
780         * config/alpha/alpha.md (movmemqi, movmemdi, *movmemdi_1): Change
781         movmem to cpymem.
782         * config/arc/arc-protos.h: Change movmem to cpymem.
783         * config/arc/arc.c (arc_expand_movmem): Change movmem to cpymem.
784         * config/arc/arc.h: Change movmem to cpymem in comment.
785         * config/arc/arc.md (movmemsi): Change movmem to cpymem.
786         * config/arm/arm-protos.h: Change movmem to cpymem in names.
787         * config/arm/arm.c (arm_movmemqi_unaligned, arm_gen_movmemqi, 
788         gen_movmem_ldrd_strd, thumb_expand_movmemqi) Change movmem to cpymem.
789         * config/arm/arm.md (movmemqi): Change movmem to cpymem.
790         * config/arm/thumb1.md (movmem12b, movmem8b): Change movmem to cpymem.
791         * config/avr/avr-protos.h: Change movmem to cpymem.
792         * config/avr/avr.c (avr_adjust_insn_length, avr_emit_movmemhi,
793         avr_out_movmem): Change movmem to cpymem.
794         * config/avr/avr.md (movmemhi, movmem_<mode>, movmemx_<mode>):
795         Change movmem to cpymem.
796         * config/bfin/bfin-protos.h: Change movmem to cpymem.
797         * config/bfin/bfin.c (single_move_for_movmem, bfin_expand_movmem):
798         Change movmem to cpymem.
799         * config/bfin/bfin.h: Change movmem to cpymem in comment.
800         * config/bfin/bfin.md (movmemsi): Change name to cpymemsi.
801         * config/c6x/c6x-protos.h: Change movmem to cpymem.
802         * config/c6x/c6x.c (c6x_expand_movmem): Change movmem to cpymem.
803         * config/c6x/c6x.md (movmemsi): Change name to cpymemsi.
804         * config/frv/frv.md (movmemsi): Change name to cpymemsi.
805         * config/ft32/ft32.md (movmemsi): Change name to cpymemsi.
806         * config/h8300/h8300.md (movmemsi): Change name to cpymemsi.
807         * config/i386/i386-expand.c (expand_set_or_movmem_via_loop,
808         expand_set_or_movmem_via_rep, expand_movmem_epilogue,
809         expand_setmem_epilogue_via_loop, expand_set_or_cpymem_prologue,
810         expand_small_cpymem_or_setmem,
811         expand_set_or_cpymem_prologue_epilogue_by_misaligned_moves,
812         expand_set_or_cpymem_constant_prologue, 
813         ix86_expand_set_or_cpymem): Change movmem to cpymem.
814         * config/i386/i386-protos.h: Change movmem to cpymem.
815         * config/i386/i386.h: Change movmem to cpymem in comment.
816         * config/i386/i386.md (movmem<mode>): Change name to cpymem.
817         (setmem<mode>): Change expansion function name.
818         * config/lm32/lm32.md (movmemsi): Change name to cpymemsi.
819         * config/m32c/blkmov.md (movmemhi, movmemhi_bhi_op, movmemhi_bpsi_op,
820         movmemhi_whi_op, movmemhi_wpsi_op): Change movmem to cpymem.
821         * config/m32c/m32c-protos.h: Change movmem to cpymem.
822         * config/m32c/m32c.c (m32c_expand_movmemhi): Change movmem to cpymem.
823         * config/m32r/m32r.c (m32r_expand_block_move): Change movmem to cpymem.
824         * config/m32r/m32r.md (movmemsi, movmemsi_internal): Change movmem
825         to cpymem.
826         * config/mcore/mcore.md (movmemsi): Change name to cpymemsi.
827         * config/microblaze/microblaze.c: Change movmem to cpymem in comment.
828         * config/microblaze/microblaze.md (movmemsi): Change name to cpymemsi.
829         * config/mips/mips.c (mips_use_by_pieces_infrastructure_p):
830         Change movmem to cpymem.
831         * config/mips/mips.h: Change movmem to cpymem.
832         * config/mips/mips.md (movmemsi): Change name to cpymemsi.
833         * config/nds32/nds32-memory-manipulation.c
834         (nds32_expand_movmemsi_loop_unknown_size,
835         nds32_expand_movmemsi_loop_known_size, nds32_expand_movmemsi_loop,
836         nds32_expand_movmemsi_unroll,
837         nds32_expand_movmemsi): Change movmem to cpymem.
838         * config/nds32/nds32-multiple.md (movmemsi): Change name to cpymemsi.
839         * config/nds32/nds32-protos.h: Change movmem to cpymem.
840         * config/pa/pa.c (compute_movmem_length): Change movmem to cpymem.
841         (pa_adjust_insn_length): Change call to compute_movmem_length.
842         * config/pa/pa.md (movmemsi, movmemsi_prereload, movmemsi_postreload,
843         movmemdi, movmemdi_prereload, 
844         movmemdi_postreload): Change movmem to cpymem.
845         * config/pdp11/pdp11.md (movmemhi, movmemhi1, 
846         movmemhi_nocc, UNSPEC_MOVMEM): Change movmem to cpymem.
847         * config/riscv/riscv.c: Change movmem to cpymem in comment.
848         * config/riscv/riscv.h: Change movmem to cpymem.
849         * config/riscv/riscv.md: (movmemsi) Change name to cpymemsi.
850         * config/rs6000/rs6000.md: (movmemsi) Change name to cpymemsi.
851         * config/rx/rx.md: (UNSPEC_MOVMEM, movmemsi, rx_movmem): Change
852         movmem to cpymem.
853         * config/s390/s390-protos.h: Change movmem to cpymem.
854         * config/s390/s390.c (s390_expand_movmem, s390_expand_setmem,
855         s390_expand_insv): Change movmem to cpymem.
856         * config/s390/s390.md (movmem<mode>, movmem_short, *movmem_short,
857         movmem_long, *movmem_long, *movmem_long_31z): Change movmem to cpymem.
858         * config/sh/sh.md (movmemsi): Change name to cpymemsi.
859         * config/sparc/sparc.h: Change movmem to cpymem in comment.
860         * config/vax/vax-protos.h (vax_output_movmemsi): Remove prototype
861         for nonexistent function.
862         * config/vax/vax.h: Change movmem to cpymem in comment.
863         * config/vax/vax.md (movmemhi, movmemhi1): Change movmem to cpymem.
864         * config/visium/visium.h: Change movmem to cpymem in comment.
865         * config/visium/visium.md (movmemsi): Change name to cpymemsi.
866         * config/xtensa/xtensa.md (movmemsi): Change name to cpymemsi.
867         * doc/md.texi: Change movmem to cpymem and update description to match.
868         * doc/rtl.texi: Change movmem to cpymem.
869         * target.def (use_by_pieces_infrastructure_p): Change movmem to cpymem.
870         * doc/tm.texi: Regenerate.
872 2019-06-27  Bill Schmidt  <wschmidt@linux.ibm.com>
874         * config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
875         -fvariable-expansion-in-unroller by default.
876         * doc/invoke.texi (-fvariable-expansion-in-unroller): Document new
877         default for Power.
879 2019-06-27  David Edelsohn  <dje.gcc@gmail.com>
881         Revert
882         2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
883         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
885         * config.gcc(rs6000-*-*): Define target_gtfiles.
887 2019-06-27  Jan Hubicka  <jh@suse.cz>
889         * ipa-devirt.c (odr_type_d): Add tbaa_enabled flag.
890         (add_type_duplicate): When odr hash is not allocated, to nothing.
891         (odr_based_tbaa_p): New function.
892         (set_type_canonical_for_odr_type): New function.
893         * ipa-utils.h (enable_odr_based_tbaa, odr_based_tbaa_p,
894         set_type_canonical_for_odr_type): New.
895         * tree.c (gimple_canonical_types_compatible_p): ODR types with
896         ODR based TBAA are not equivalent to non-ODR types.
898 2019-06-27  Martin Liska  <mliska@suse.cz>
900         PR tree-optimization/90974
901         PR rtl-optimization/90975
902         PR rtl-optimization/90976
903         PR target/91016
904         PR tree-optimization/91017
905         * config/i386/i386-expand.c (ix86_expand_rounddf_32): Remove
906         unused tmp.
907         * lra.c (lra_set_insn_recog_data): Remove a leftover from
908         initial commit of IRA.
909         * optabs.c (expand_twoval_binop): Use xop0 and xop1 instead
910         of op0 and op1.
911         * tree-vect-loop.c (vect_create_epilog_for_reduction):
912         Remove unused mode1.
913         * tree-vect-stmts.c (vectorizable_call): Remove dead assignment
914         to new_stmt_info.
916 2019-06-27  Jakub Jelinek  <jakub@redhat.com>
918         PR target/90991
919         * config/i386/sse.md (avx_vec_concat<mode>): Use nonimmediate_operand
920         instead of register_operand for operands[1], add m to its constraints
921         if operands[2] uses "C" constraint.  Ensure in condition that if
922         operands[2] is not 0, then operands[1] is not a MEM.  For last two
923         alternatives, use unaligned loads instead of aligned if operands[1] is
924         misaligned_operand.
926 2019-06-27  Martin Liska  <mliska@suse.cz>
928         * asan.c (asan_emit_allocas_unpoison): Remove obviously
929         dead assignments.
930         * bt-load.c (move_btr_def): Likewise.
931         * builtins.c (expand_builtin_apply_args_1): Likewise.
932         (expand_builtin_apply): Likewise.
933         * cfgexpand.c (expand_asm_stmt): Likewise.
934         (construct_init_block): Likewise.
935         * cfghooks.c (verify_flow_info): Likewise.
936         * cfgloopmanip.c (remove_path): Likewise.
937         * cfgrtl.c (rtl_verify_bb_layout): Likewise.
938         * cgraph.c (cgraph_node::set_pure_flag): Likewise.
939         * combine.c (simplify_if_then_else): Likewise.
940         * config/i386/i386.c (ix86_setup_incoming_vararg_bounds): Likewise.
941         (choose_basereg): Likewise.
942         (ix86_expand_prologue): Likewise.
943         (ix86_preferred_output_reload_class): Likewise.
944         * cselib.c (cselib_record_sets): Likewise.
945         * df-scan.c (df_scan_alloc): Likewise.
946         * dojump.c (do_jump_by_parts_greater_rtx): Likewise.
947         * early-remat.c (early_remat::record_equiv_candidates): Likewise.
948         * emit-rtl.c (try_split): Likewise.
949         * graphite-scop-detection.c (assign_parameter_index_in_region): Likewise.
950         * ipa-cp.c (cgraph_edge_brings_all_agg_vals_for_node): Likewise.
951         * ira-color.c (setup_profitable_hard_regs): Likewise.
952         * ira.c (rtx_moveable_p): Likewise.
953         * lra-eliminations.c (eliminate_regs_in_insn): Likewise.
954         * read-rtl.c (read_subst_mapping): Likewise.
955         * regrename.c (scan_rtx): Likewise.
956         * reorg.c (fill_slots_from_thread): Likewise.
957         * tree-inline.c (tree_function_versioning): Likewise.
958         * tree-ssa-reassoc.c (optimize_ops_list): Likewise.
959         * tree-ssa-sink.c (statement_sink_location): Likewise.
960         * tree-ssa-threadedge.c (thread_across_edge): Likewise.
961         * tree-vect-loop.c (vect_get_loop_niters): Likewise.
962         (vect_create_epilog_for_reduction): Likewise.
963         * tree.c (build_nonstandard_integer_type): Likewise.
965 2019-06-27  Richard Biener  <rguenther@suse.de>
967         * tree-ssa-sccvn.c (vn_reference_lookup_3): Encode valueized RHS.
969 2019-06-27  Jun Ma <JunMa@linux.alibaba.com>
971         PR tree-optimization/89772
972         * gimple-fold.c (gimple_fold_builtin_memchr): consider trailing nuls in
973         out-of-bound accesses checking.
975 2019-06-27  Martin Liska  <mliska@suse.cz>
977         PR tree-optimization/91014
978         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Bail out
979         when LHS is NULL_TREE.
981 2019-06-27  Martin Liska  <mliska@suse.cz>
983         * symbol-summary.h (traverse): Pass
984         argument a to the call of callback.
985         (gt_ggc_mx): Mark arguments as unused.
986         (gt_pch_nx): Likewise.
988 2019-06-27  Kewen Lin  <linkw@gcc.gnu.org>
990         PR target/62147
991         * gcc/loop-iv.c (find_simple_exit): Call finite_loop_p to update
992         finiteness.
994 2019-06-26  Jeff Law  <law@redhat.com>
996         PR tree-optimization/90883
997         * tree-ssa-dse.c (delete_dead_or_redundant_call): Fix signature.
998         (delete_dead_or_redundant_assignment): Likewise.
1000         PR tree-optimization/90883
1001         * tree-ssa-alias.c (stmt_kills_ref_p): Handle BUILT_IN_CALLOC.
1002         * tree-ssa-dse.c: Update various comments to distinguish between
1003         dead and redundant stores.
1004         (initialize_ao_ref_for_dse): Handle BUILT_IN_CALLOC.
1005         (dse_optimize_redundant_stores): New function.
1006         (delete_dead_or_redundant_call): Renamed from delete_dead_call.
1007         Distinguish between dead and redundant calls in dump output.  All
1008         callers updated.
1009         (delete_dead_or_redundant_assignment): Similarly for assignments.
1010         (dse_optimize_stmt): Handle _CHK variants.  For statements which
1011         store 0 into multiple memory locations, try to prove a subsequent
1012         store is redundant.
1014 2019-06-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1016         PR target/89021
1017         * config/i386/i386.c (ix86_autovectorize_vector_sizes):
1018         Autovectorize 8-byte vectors for TARGET_MMX_WITH_SSE.
1020 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
1022         * config/rs6000/rs6000-internal.h (branch_island): New typedef.
1023         (branch_islands): New extern.
1024         * config/rs6000/rs6000-logue.c (macho_branch_islands): Moved from
1025         * config/rs6000/rs6000.c: .. here.
1027 2019-06-26  Iain Sandoe  <iain@sandoe.co.uk>
1029         * config.gcc (powerpc*-*-linux*): Move target_gtfiles from here..
1030         (powerpc*-*-*) ... to here.
1032 2019-06-26  Jeff Law  <law@redhat.com>
1034         * tree-ssa-dse.c (initialize_ao_ref_for_dse): Handle _chk variants of
1035         memcpy, memmove and memset builtins.
1036         (maybe_trim_memstar_call): Likewise.
1038 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
1040         * config/rs6000/rs6000-logue.c: Add #ifndef TARGET_PROFILE_KERNEL.
1042 2019-06-26  David Edelsohn  <dje.gcc@gmail.com>
1044         * config.gcc (powerpc-ibm-aix*): Define target_gtfiles.
1046 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
1048         * config/rs6000/rs6000-internal.h (rs6000_keep_leaf_when_profiled): New
1049         declaration.
1050         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Remove
1051         "static".
1052         * config/rs6000/rs6000-logue.c (rs6000_keep_leaf_when_profiled): Delete
1053         declaration.
1055 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
1057         * config/rs6000/rs6000.c: Fix previous commit, it missed some changes.
1059 2019-06-26  Richard Biener  <rguenther@suse.de>
1061         PR ipa/90982
1062         * tree-inline.c (remap_ssa_name): Copy SSA range info.
1064 2019-06-26  Richard Biener  <rguenther@suse.de>
1066         * lto-streamer.h (lto_bitmap_alloc): Remove.
1067         (lto_bitmap_free): Likewise.
1068         * lto-streamer.c (lto_bitmap_alloc): Remove.
1069         (lto_bitmap_free): Likewise.
1070         (lto_obstack): Likewise.
1071         (lto_obstack_initialized): Likewise.
1072         * lto-streamer-out.c (lto_output): Use own obstack for local
1073         bitmap, free it consistently.
1075 2019-06-26  Jakub Jelinek  <jakub@redhat.com>
1077         PR target/90991
1078         * config/i386/sse.md
1079         (*<extract_type>_vinsert<shuffletype><extract_suf>_0): Use vmovupd,
1080         vmovups, vmovdqu, vmovdqu32 or vmovdqu64 instead of the aligned
1081         insns if operands[2] is misaligned_operand.
1083 2019-06-26  Li Jia He  <helijia@linux.ibm.com>
1085         * config/rs6000/rs6000.h (TARGET_MADDLD): Remove the restriction of
1086         TARGET_POWERPC64.
1087         * config/rs6000/rs6000.md (maddld): Change maddld match_operand from DI
1088         to GPR.
1090 2019-06-26  Segher Boessenkool  <segher@kernel.crashing.org>
1092         * doc/invoke.texi (Warning Options): Fix some @opindex syntax.
1094 2019-06-26  Martin Liska  <mliska@suse.cz>
1096         PR tree-optimization/90973
1097         * tree-vect-loop.c (vect_get_known_peeling_cost): Use
1098         epilogue_cost_vec instead of prologue_cost_vec for
1099         a epilogue cost.
1101 2019-06-26  Martin Liska  <mliska@suse.cz>
1103         * bb-reorder.c (connect_better_edge_p): Add missing else
1104         statement in the middle of if-else statements.
1106 /home/marxin/Programming/gcc/gcc/bb-reorder.c:1031:2: warning: Value stored to 'is_better_edge' is never read
1107         is_better_edge = true;
1108         ^                ~~~~
1109 /home/marxin/Programming/gcc/gcc/bb-reorder.c:1034:2: warning: Value stored to 'is_better_edge' is never read
1110         is_better_edge = false;
1111         ^                ~~~~~
1113 2019-06-25  Hongtao Liu  <hongtao.liu@intel.com>
1114             H.J. Lu  <hongjiu.lu@intel.com>
1115             Olga Makhotina  <olga.makhotina@intel.com>
1117         * common/config/i386/i386-common.c
1118         (OPTION_MASK_ISA_AVX512VP2INTERSECT_SET,
1119         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET): New macros.
1120         (OPTION_MASK_ISA2_AVX512F_UNSET): Add
1121         OPTION_MASK_ISA_AVX512VP2INTERSECT_UNSET.
1122         (ix86_handle_option): Handle -mavx512vp2intersect.
1123         * config/i386/avx512vp2intersectintrin.h: New.
1124         * config/i386/avx512vp2intersectvlintrin.h: New.
1125         * config/i386/cpuid.h (bit_AVX512VP2INTERSECT): New.
1126         * config/i386/driver-i386.c (host_detect_local_cpu): Detect
1127         AVX512VP2INTERSECT.
1128         * config/i386/i386-builtin-types.def: Add new types.
1129         * config/i386/i386-builtin.def: Add new builtins.
1130         * config/i386/i386-builtins.c: (enum processor_features): Add
1131         F_AVX512VP2INTERSECT.
1132         (static const _isa_names_table isa_names_table): Ditto.
1133         * config/i386/i386-c.c (ix86_target_macros_internal): Define
1134         __AVX512VP2INTERSECT__.
1135         * config/i386/i386-expand.c (ix86_expand_builtin): Expand
1136         IX86_BUILTIN_2INTERSECTD512, IX86_BUILTIN_2INTERSECTQ512,
1137         IX86_BUILTIN_2INTERSECTD256, IX86_BUILTIN_2INTERSECTQ256,
1138         IX86_BUILTIN_2INTERSECTD128, IX86_BUILTIN_2INTERSECTQ128.
1139         * config/i386/i386-modes.def (P2QI, P2HI): New modes.
1140         * config/i386/i386-options.c (ix86_target_string): Add
1141         -mavx512vp2intersect.
1142         (ix86_option_override_internal): Handle AVX512VP2INTERSECT.
1143         * config/i386/i386.c (ix86_hard_regno_nregs): Allocate two regs for
1144         P2HImode and P2QImode.
1145         (ix86_hard_regno_mode_ok): Register pair only starts at even hardreg
1146         number for P2QImode and P2HImode.
1147         (ix86_regmode_natural_size): New function.
1148         * config/i386/i386.h (TARGET_AVX512VP2INTERSECT,
1149         TARGET_AVX512VP2INTERSECT_P, PTA_AVX512VP2INTERSECT
1150         REGMODE_NATURAL_SIZE, MASK_PAIR_REGNO_P): New.
1151         * config/i386/i386-protos.h (ix86_regmode_natural_size): Declare
1152         * config/i386/i386.opt: Add -mavx512vp2intersect.
1153         * config/i386/immintrin.h: Include avx512vp2intersectintrin.h and
1154         avx512vp2intersectvlintrin.h.
1155         * config/i386/sse.md (define_c_enum "unspec"): Add UNSPEC_VP2INTERSECT.
1156         (define_mode_iterator VI48_AVX512VP2VL): New.
1157         (avx512vp2intersect_2intersect<mode>,
1158         avx512vp2intersect_2intersectv16si): New define_insn patterns.
1159         * config.gcc: Add avx512vp2intersectvlintrin.h and
1160         avx512vp2intersectintrin.h to extra_headers.
1161         * doc/invoke.texi: Document -mavx512vp2intersect.
1163 2019-06-25  Iain Sandoe  <iain@sandoe.co.uk>
1165         * config/rs6000/darwin.h (ENDFILE_SPEC): New.
1167 2019-06-25  Bill Seurer  <seurer@linux.vnet.ibm.com>
1169         * config/rs6000/rs6000.c (stack_info, rs6000_pic_labelno,
1170         savres_routine_syms, savres_routine_name, morestack_ref,
1171         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
1172         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
1173         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
1174         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
1175         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
1176         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
1177         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
1178         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
1179         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
1180         get_stack_clash_protection_probe_interval,
1181         get_stack_clash_protection_guard_size,
1182         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
1183         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
1184         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
1185         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
1186         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
1187         gen_frame_mem_offset, rs6000_savres_routine_name,
1188         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
1189         ptr_regno_for_savres, rs6000_emit_savres_rtx,
1190         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
1191         rs6000_global_entry_point_prologue_needed_p,
1192         rs6000_get_separate_components, rs6000_components_for_bb,
1193         rs6000_disqualify_components, rs6000_emit_prologue_components,
1194         rs6000_emit_epilogue_components, rs6000_set_handled_components,
1195         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
1196         rs6000_output_savres_externs, rs6000_output_function_prologue,
1197         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
1198         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
1199         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
1200         rs6000_output_function_epilogue, gen_add3_const,
1201         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
1202         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
1203         to rs6000-logue.c.
1204         (machine_function): Moved to rs6000.h.
1205         (rs6000_stack_t, ALTIVEC_REG_BIT, quad_address_offset_p) Moved to
1206         rs6000-internal.h.
1207         * config/rs6000/rs6000-logue.c(stack_info, rs6000_pic_labelno,
1208         savres_routine_syms, savres_routine_name, morestack_ref,
1209         rs6000_init_machine_status, save_reg_p, first_reg_to_save,
1210         first_fp_reg_to_save, first_altivec_reg_to_save, compute_vrsave_mask,
1211         compute_save_world_info, is_altivec_return_reg, fixed_reg_p,
1212         rs6000_savres_strategy, rs6000_stack_info, debug_stack_info,
1213         rs6000_return_addr, rs6000_decl_ok_for_sibcall,
1214         rs6000_function_ok_for_sibcall, rs6000_ra_ever_killed,
1215         rs6000_emit_load_toc_table, rs6000_emit_eh_reg_restore, uses_TOC,
1216         create_TOC_reference, rs6000_aix_asm_output_dwarf_table_ref,
1217         rs6000_emit_stack_tie, rs6000_emit_allocate_stack_1,
1218         get_stack_clash_protection_probe_interval,
1219         get_stack_clash_protection_guard_size,
1220         rs6000_emit_probe_stack_range_stack_clash, rs6000_emit_allocate_stack,
1221         rs6000_emit_probe_stack_range, output_probe_stack_range_1,
1222         interesting_frame_related_regno, output_probe_stack_range_stack_clash,
1223         output_probe_stack_range, rs6000_frame_related, generate_set_vrsave,
1224         gen_frame_set, gen_frame_load, gen_frame_store, emit_frame_save,
1225         gen_frame_mem_offset, rs6000_savres_routine_name,
1226         rs6000_savres_routine_sym, rs6000_emit_stack_reset,
1227         ptr_regno_for_savres, rs6000_emit_savres_rtx,
1228         rs6000_emit_prologue_move_from_cr, split_stack_arg_pointer_used_p,
1229         rs6000_global_entry_point_prologue_needed_p,
1230         rs6000_get_separate_components, rs6000_components_for_bb,
1231         rs6000_disqualify_components, rs6000_emit_prologue_components,
1232         rs6000_emit_epilogue_components, rs6000_set_handled_components,
1233         emit_vrsave_prologue, emit_split_stack_prologue, rs6000_emit_prologue,
1234         rs6000_output_savres_externs, rs6000_output_function_prologue,
1235         rs6000_keep_leaf_when_profiled, load_cr_save, restore_saved_cr,
1236         load_lr_save, restore_saved_lr, add_crlr_cfa_restore,
1237         offset_below_red_zone_p, emit_cfa_restores, rs6000_emit_epilogue,
1238         rs6000_output_function_epilogue, gen_add3_const,
1239         rs6000_expand_split_stack_prologue, rs6000_live_on_entry,
1240         rs6000_split_stack_space_check, rs6000_save_toc_in_prologue_p): Moved
1241         to here from rs6000.c.
1242         * config/rs6000/rs6000.h (machine_function): Moved to here from rs6000.c.
1243         * config/rs6000/rs6000-internal.h: (rs6000_stack_t, ALTIVEC_REG_BIT,
1244         quad_address_offset_p) Moved to here from rs6000.c.
1245         * config/rs6000/t-rs6000: Add new source file rs6000-logue.c.
1246         * config/config.gcc: Add new source file rs6000-logue.c to garbage
1247         collector.
1249 2019-06-25  Martin Liska  <mliska@suse.cz>
1251         * hash-table.c (hashtab_chk_error): Move here from ...
1252         * hash-table.h (hashtab_chk_error): ... here.
1254 2019-06-25  Martin Liska  <mliska@suse.cz>
1256         PR tree-optimization/90978
1257         * df-scan.c (df_update_entry_block_defs): Remove dead else
1258         branch.
1259         (df_update_exit_block_uses): Likewise.
1261 2019-06-25  Kwok Cheung Yeung  <kcy@codesourcery.com>
1262             Andrew Stubbs  <ams@codesourcery.com>
1264         * config.gcc (thread_file): Set to gcn for AMD GCN.
1265         * config/gcn/gcn.c (gcn_emutls_var_init): New function.
1266         (TARGET_EMUTLS_VAR_INIT): New hook.
1268 2019-06-25  Martin Jambor  <mjambor@suse.cz>
1270         PR ipa/90939
1271         * ipa-cp.c (ipcp_bits_lattice::meet_with): Remove assert.
1273 2019-06-25  Richard Biener  <rguenther@suse.de>
1275         PR tree-optimization/90930
1276         * tree-ssa-reassoc.c (reassociate_bb): Only rewrite expression
1277         into parallel form in the last pass instance.
1279 2019-06-25  Claudiu Zissulescu  <claziss@synopsys.com>
1281         * config/arc/arc.c (arc_symbol_binds_local_p): New function.
1282         (arc_legitimize_pic_address): Simplify and cleanup the function.
1283         (SYMBOLIC_CONST): Remove.
1284         (prepare_pic_move): Likewise.
1285         (prepare_move_operands): Handle complex mov cases here.
1286         (arc_legitimize_address_0): Remove call to
1287         arc_legitimize_pic_address.
1288         (arc_legitimize_address): Remove call to
1289         arc_legitimize_tls_address.
1290         * config/arc/arc.md (movqi_insn): Allow Cm3 match.
1291         (movhi_insn): Likewise.
1293 2019-06-25  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1295         * gcc/c-family/c-common.c (c_common_nodes_and_builtins): Define
1296         alternate "__intN__" name for "__intN" types.
1297         * gcc/c/c-parser.c (c_parse_init): Create keyword for "__intN__" type.
1298         * gcc/cp/lex.c (init_reswords): Likewise.
1299         * gcc/config/msp430/msp430.h: Use __int20__ for SIZE_TYPE and
1300         PTRDIFF_TYPE.
1301         * gcc/cp/cp-tree.h (cp_decl_specifier_seq): New bitfield "int_n_alt".
1302         * gcc/c/c-decl.c (declspecs_add_type): Don't pedwarn about "__intN" ISO
1303         C incompatibility if alternate "__intN__" form is used.
1304         * gcc/cp/decl.c (grokdeclarator): Likewise.
1305         * gcc/cp/parser.c (cp_parser_simple_type_specifier): Set
1306         decl_specs->int_n_alt if "__intN__" form is used.
1307         * gcc/gimple-ssa-sprintf.c (build_intmax_type_nodes): Accept "__intN__"
1308         format of "__intN" types for UINTMAX_TYPE.
1309         * gcc/brig/brig-lang.c (brig_build_c_type_nodes): Accept "__intN__"
1310         format of "__intN" types for SIZE_TYPE.
1311         * gcc/lto/lto-lang.c (lto_build_c_type_nodes): Likewise.
1312         * gcc/stor-layout.c (initialize_sizetypes): Accept "__intN__"
1313         format of "__intN" types for SIZETYPE.
1314         * gcc/tree.c (build_common_tree_nodes): Accept "__intN__"
1315         format of "__intN" types for SIZE_TYPE and PTRDIFF_TYPE.
1316         * gcc/doc/invoke.texi: Document that __intN__ disables pedantic
1317         warnings.
1319 2019-06-25  Jan Hubicka  <jh@suse.cz>
1321         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Check that
1322         base2_alias_set is non-zero before doing TBAA based disambiguation.
1324 2019-06-25  Martin Liska  <mliska@suse.cz>
1326         PR tree-optimization/90973
1327         * tree-vect-loop.c (vect_get_known_peeling_cost): Sum retval
1328         of prologue and epilogue.
1330 2019-06-24  Jan Hubicka  <jh@suse.cz>
1332         * ipa-utils.h (type_with_linkage_p): Verify that type is
1333         CXX_ODR_P.
1334         (odr_type_p): Remove extra return.
1335         * lto-streamer-out.c (hash_tree): Hash TYPE_CXX_ODR_P;
1336         hash STRING_FLAG only for arrays and integers.
1337         * tree-stremaer-in.c (unpack_ts_type_common_value_fields):
1338         Update analogously.
1339         * tree-streamer-out.c (pack_ts_type_common_value_fields):
1340         Likewise.
1341         * print-tree.c (print_node): Print cxx-odr-p
1342         and string-flag.
1343         * tree.c (need_assembler_name_p): Also check that type
1344         is CXX_ODR_TYPE_P
1345         (verify_type_variant): Update verification of SRING_FLAG;
1346         also check CXX_ODR_P.
1347         * tree.h (ARRAY_OR_INTEGER_TYPE_CHECK): New macro.
1348         (TYPE_STRING_FLAG): Use it.
1349         (TYPE_CXX_ODR_P): New macro.
1350         * dwarf2out.c (gen_array_type_die): First check that type
1351         is an array and then test string flag.
1353 2019-06-24  Richard Biener  <rguenther@suse.de>
1355         PR tree-optimization/90972
1356         * tree-vect-stmts.c (vect_init_vector): Handle CONSTANT_CLASS_P
1357         in common code, dealing with STRING_CST properly.
1359 2019-06-24  Richard Biener  <rguenther@suse.de>
1361         PR tree-optimization/90930
1362         PR tree-optimization/90316
1363         * tree-ssa-alias.c (walk_non_aliased_vuses): Add missing
1364         decrement of limit.
1366 2019-06-24  Martin Sebor  <msebor@redhat.com>
1368         * tree-pretty-print.h: Remove unnecessary punctuation characters
1369         from a diagnostic.
1370         * tree-ssa.c (release_defs_bitset): Correct preprocessor conditional.
1372 2019-06-24  Jonathan Wakely  <jwakely@redhat.com>
1374         * ginclude/float.h (FLT_DECIMAL_DIG, DBL_DECIMAL_DIG, LDBL_DECIMAL_DIG)
1375         (FLT_HAS_SUBNORM, DBL_HAS_SUBNORM, LDBL_HAS_SUBNORM, FLT_TRUE_MIN)
1376         (DBL_TRUE_MIN, LDBL_TRUE_MIN): Also define for C++17.
1378 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
1380         * config/rs6000/darwin.h: Handle GCC target pragma.
1382 2019-06-23  Iain Sandoe  <iain@sandoe.co.uk>
1384         * config/rs6000/darwin.h: (__PPC__, __PPC64__): New.
1386 2019-06-22  Jeff Law  <law@redhat.com>
1388         * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1390 2019-06-22  Jan Hubicka  <jh@suse.cz>
1392         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Do not
1393         give up on bitfields; continue searching for different refs
1394         appearing later.
1396 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
1398         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
1399         even zero DR_OFFSET, but DR_BASE_ADDRESS of POINTER_PLUS_EXPR
1400         containing the offset as possible simd lane access.  Look through
1401         widening conversion.  Move the
1402         TREE_CODE (DR_INIT (newdr)) == INTEGER_CST test earlier and reindent.
1404 2019-06-21  Richard Biener  <rguenther@suse.de>
1406         PR tree-optimization/90930
1407         * tree-ssa-reassoc.c (rewrite_expr_tree_parallel): Set visited
1408         flag on new stmts to avoid re-processing them.
1410 2019-06-21  Matthew Beliveau  <mbelivea@redhat.com>
1412         PR c++/90875 - added -Wswitch-outside-range option
1413         * doc/invoke.texi (Wswitch-outside-range): Document.
1415 2019-06-21  Jeff Law  <law@redhat.com>
1417         PR tree-optimization/90949
1418         * tree-ssa-copy.c (fini_copy_prop): Use reset_flow_sensitive_info.
1419         * tree-ssanames.c (reset_flow_sensitive_info): Reset non-null state.
1421 2019-06-21  Richard Biener  <rguenther@suse.de>
1423         PR debug/90914
1424         * dwarf2out.c (prune_unused_types_walk): Always consider
1425         function-local extern declarations as used.
1427 2019-06-21  Richard Biener  <rguenther@suse.de>
1429         PR tree-optimization/90913
1430         * tree-vect-loop-manip.c (vect_loop_versioning): Do not re-use
1431         the scalar variant of if-conversion versioning.
1433 2019-06-21  Jakub Jelinek  <jakub@redhat.com>
1435         * omp-low.c (lower_rec_simd_input_clauses): Add rvar2 argument,
1436         create another "omp scan inscan exclusive" array if
1437         !ctx->scan_inclusive.
1438         (lower_rec_input_clauses): Handle exclusive scan inscan reductions.
1439         (lower_omp_scan): Likewise.
1440         * tree-vectorizer.h (struct _stmt_vec_info): Use 3-bit instead of
1441         2-bit bitfield for simd_lane_access_p member.
1442         * tree-vect-data-refs.c (vect_analyze_data_refs): Also handle
1443         aux == (void *)-4 as simd lane access.
1444         * tree-vect-stmts.c (check_scan_store): Handle exclusive scan.  Update
1445         comment with permutations to show the canonical permutation order.
1446         (vectorizable_scan_store): Handle exclusive scan.
1447         (vectorizable_store): Call vectorizable_scan_store even for
1448         STMT_VINFO_SIMD_LANE_ACCESS_P > 3.
1450         * tree-vect-data-refs.c (vect_find_stmt_data_reference): Handle
1451         "omp simd array" arrays with one byte elements.
1453 2019-06-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1455         * config/alpha/alpha.md (@unaligned_store<mode>):
1456         Rename from unaligned_store<mode>.
1457         (@reload_in<mode>_aligned): Rename from reload_in<mode>_aligned.
1458         * config/alpha/sync.md (@load_locked_<mode>): Rename
1459         from load_locked_<mode>.
1460         (@store_conditional_<mode>): Rename from store_conditional_<mode>.
1461         (@atomic_compare_and_swap<mode>_1): Rename
1462         from atomic_compare_and_swap<mode>_1.
1463         (@atomic_exchange<mode>_1): Rename from atomic_exchange<mode>_1.
1464         * config/alpha/alpha.c (alpha_expand_mov_nobwx):
1465         Use gen_reload_in_aligned and gen_unaligned_store.
1466         (emit_load_locked): Remove.
1467         (emit_store_conditional): Ditto.
1468         (alpha_split_atomic_op): Use gen_load_locked and gen_store_conditional.
1469         (alpha_split_compare_and_swap): Ditto.
1470         (alpha_expand_compare_and_swap_12): Use gen_atomic_compare_and_swap_1.
1471         (alpha_split_compare_and_swap_12): Use gen_load_locked
1472         and gen_store_conditional.
1473         (alpha_split_atomic_exchange): Ditto.
1474         (alpha_expand_atomic_exchange_12): Use gen_atomic_exchange_1.
1475         (alpha_split_atomic_exchange_12): Use gen_load_locked
1476         and gen_store_conditional.
1478 2019-06-20  Richard Earnshaw  <rearnsha@arm.com>
1480         * config/aarch64/aarch64-errata.h: New file.
1481         * config/aarch64/aarch64-elf-raw.h (CA53_ERR_835769_SPEC): Delete.
1482         (CA53_ERR_843419_SPEC): Delete.
1483         (LINK_SPEC): Use AARCH64_ERRATA_LINK_SPEC instead of above.
1484         * config/aarch64/aarch64-linux.h: Likewise.
1485         * config/aarch64/aarch64-netbsd.h: Likewise.
1486         * config/aarch64/aarch64-freebsd.h: Likewise.
1488 2019-06-20  Marek Polacek  <polacek@redhat.com>
1490         * config/sh/sh.c (sh2a_function_vector_p): Use get_attribute_name.
1492 2019-06-20  Michael Meissner  <meissner@linux.ibm.com>
1494         * config/rs6000/rs6000.md (isa attribute): Add support for
1495         for a future processor.
1497 2019-06-20  H.J. Lu  <hongjiu.lu@intel.com>
1499         PR target/54855
1500         * config/i386/i386-expand.c (ix86_expand_vector_set): Generate
1501         standard scalar operation pattern for V2DF.
1502         * config/i386/sse.md (*<sse>_vm<plusminus_insn><mode>3): New.
1503         (*<sse>_vm<multdiv_mnemonic><mode>3): Likewise.
1504         (*ieee_<ieee_maxmin><mode>3): Likewise.
1505         (vec_setv2df_0): Likewise.
1507 2019-06-20  Jan Hubicka  <jh@suse.cz>
1509         * tree-ssa-alias.c (aliasing_component_refs_p): Remove ref2_is_decl
1510         parameter; it has no use in gimple memory model.
1511         (indirect_ref_may_alias_decl_p): Update.
1513 2019-06-20  Martin Liska  <mliska@suse.cz>
1515         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): Decrease
1516         to 10.
1518 2019-06-20  Jakub Jelinek  <jakub@redhat.com>
1520         * tree-vect-stmts.c (enum scan_store_kind): New type.
1521         (scan_store_can_perm_p): Change last argument from int * to
1522         vec<enum scan_store_kind> *, record precisely which permutations
1523         need whole vector left shift or that plus VEC_COND_EXPR.
1524         (vectorizable_scan_store): Adjust caller, use whole vector left shift
1525         and additional VEC_COND_EXPR only for those iterations that need it.
1527 2019-06-20  Alexandre Oliva <oliva@adacore.com>
1529         * config.gcc: Fix ARM --with-fpu checking and error message.
1531 2019-06-19  Marek Polacek  <polacek@redhat.com>
1533         PR c++/60364 - noreturn after first decl not diagnosed.
1534         * attribs.c (get_attribute_namespace): No longer static.
1535         (decl_attributes): Avoid shadowing.  Preserve the C++11 form for C++11
1536         attributes.
1537         (attr_noreturn_exclusions): Make it extern.
1538         * attribs.h (get_attribute_namespace): Declare.
1539         * tree-inline.c (function_attribute_inlinable_p): Use
1540         get_attribute_name.
1542 2019-06-19  Martin Sebor  <msebor@redhat.com>
1544         PR tree-optimization/90626
1545         * tree-ssa-strlen.c (strxcmp_unequal): Fix typos.
1547         PR tree-optimization/90626
1548         * tree-ssa-strlen.c (strxcmp_unequal): New function.
1549         (handle_builtin_string_cmp): Call it.
1551 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
1553         * config/darwin.h (DRIVER_SELF_SPECS): Add RDYNAMIC, DARWIN_PIE_SPEC
1554         and DARWIN_NOPIE_SPEC.
1555         (RDYNAMIC): New, modified from DARWIN_EXPORT_DYNAMIC.
1556         (DARWIN_PIE_SPEC): Collate from darwin.h and darwin9.h.
1557         (DARWIN_NOPIE_SPEC): Collate from darwin10.h.
1558         (DARWIN_NOCOMPACT_UNWIND): New from darwin10.h
1559         (DARWIN_EXPORT_DYNAMIC): Delete.
1560         * config/darwin10.h (LINK_GCC_C_SEQUENCE_SPEC): Move no_compact_unwind
1561         and pie options processing to  darwin.h.
1562         * config/darwin9.h (DARWIN_PIE_SPEC): Move pie processing to darwin.h
1564 2019-06-19  Iain Sandoe  <iain@sandoe.co.uk>
1566         * config/darwin-driver.c (darwin_driver_init): Fix off-by-one errors
1567         in computing the number of options to be moved.
1569 2019-06-19  Maya Rashish  <coypu@sdf.org>
1571         *  config/arm/netbsd-elf.h (SYSARCH_ARM_SYNC_ICACHE): New definition.
1572         (CLEAR_INSN_CACHE) Use it.
1574 2019-06-19  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1576         * config/i386/i386.md (cmpstrnsi): Remove dead code.
1578 2019-06-19  Wilco Dijkstra  <wdijkstr@arm.com>
1580         PR middle-end/84521
1581         * builtins.c (expand_builtin_setjmp_setup): Save
1582         hard_frame_pointer_rtx.
1583         (expand_builtin_setjmp_receiver): Do not emit sfp = fp move since we
1584         restore fp.
1585         * function.c (expand_function_start): Save hard_frame_pointer_rtx for
1586         non-local goto.
1587         * lra-eliminations.c (eliminate_regs_in_insn): Remove sfp = fp
1588         elimination code.
1589         (remove_reg_equal_offset_note): Remove unused function.
1590         * reload1.c (eliminate_regs_in_insn): Remove sfp = hfp elimination
1591         code.
1592         * config/arc/arc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1593         (arc_builtin_setjmp_frame_value): Remove function.
1594         * config/avr/avr.c  (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1595         (avr_builtin_setjmp_frame_value): Remove function.
1596         * config/i386/i386.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1597         (ix86_builtin_setjmp_frame_value): Remove function.
1598         * config/pa/pa.md (nonlocal_goto): Remove FP adjustment.
1599         * config/sparc/sparc.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1600         (sparc_builtin_setjmp_frame_value): Remove function.
1601         * config/vax/vax.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Remove.
1602         (vax_builtin_setjmp_frame_value): Remove function.
1603         * config/xtensa/xtensa.c (xtensa_frame_pointer_required): Force frame
1604         pointer if has_nonlocal_label.
1606 2019-06-19  Jakub Jelinek  <jakub@redhat.com>
1608         * doc/md.texi: Document vec_shl_<mode> pattern.
1609         * optabs.def (vec_shl_optab): New optab.
1610         * optabs.c (shift_amt_for_vec_perm_mask): Add shift_optab
1611         argument, if == vec_shl_optab, check for left whole vector shift
1612         pattern rather than right shift.
1613         (expand_vec_perm_const): Add vec_shl_optab support.
1614         * optabs-query.c (can_vec_perm_var_p): Mention also vec_shl optab
1615         in the comment.
1616         * tree-vect-generic.c (lower_vec_perm): Support permutations which
1617         can be handled by vec_shl_optab.
1618         * tree-vect-stmts.c (scan_store_can_perm_p): New function.
1619         (check_scan_store): Use it.
1620         (vectorizable_scan_store): If target can't do normal permutations,
1621         try to use whole vector left shifts and if needed a VEC_COND_EXPR
1622         after it.
1623         * config/i386/sse.md (vec_shl_<mode>): New expander.
1625         * omp-low.c (lower_rec_input_clauses): Handle references properly
1626         in inscan clauses.
1627         (lower_omp_scan): Likewise.
1629 2019-06-19  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
1631         * tree-ssa-address.c (preferred_mem_scale_factor): Handle when
1632         mem_mode is BLKmode.
1634 2019-06-18  Max Filippov  <jcmvbkbc@gmail.com>
1636         PR target/90922
1637         * config/xtensa/xtensa.c (xtensa_expand_prologue): Add stack
1638         pointer adjustment for the case of no callee-saved registers and
1639         stack frame bigger than 128 bytes.
1641 2019-06-18  Thomas Schwinge  <thomas@codesourcery.com>
1643         PR middle-end/90862
1644         * omp-low.c (check_omp_nesting_restrictions): Handle
1645         GF_OMP_TARGET_KIND_OACC_DECLARE.
1647 2019-06-18  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1649         * config/i386/i386.md (@cmp<mode>_1): Rename from cmp<mode>_1.
1650         (@add<mode>3_carry): Rename from add<mode>3_carry.
1651         (@sub<mode>3_carry_ccc): Rename from sub<mode>3_carry_ccc.
1652         (@sub<mode>3_carry_ccgz): Rename form sub<mode>3_carry_ccgz.
1653         (@copysign<mode>3_const): Rename from copysign<mode>3_const.
1654         (@copysign<mode>3_var): Rename from copysign<mode>3_var.
1655         (@xorsign<mode>3_1): Rename from xorsign<mode>3_1.
1656         (@x86_shift<mode>_adj_1): Rename from x86_shift<mode>_adj_1.
1657         (@x86_shift<mode>_adj_2): Rename from x86_shift<mode>_adj_2.
1658         (@x86_shift<mode>_adj_3): Rename from x86_shift<mode>_adj_3.
1659         (cmpstrnsi): Use gen_cmp_1.
1660         (lwp_slwpcb): Use gen_lwp_slwpcb_1.
1661         (@lwp_slwpcb<mode>_1): Rename from lwp_slwpcb<mode>_1.
1662         (@umonitor_<mode>): Rename from umonitor_<mode>.
1663         * config/i386/i386-expand.c (ix86_expand_copysign):
1664         Use gen_copysign3_const and gen_copysign3_var.
1665         (ix86_expand_xorsign): Use gen_xorsign3_1.
1666         (ix86_expand_branch): Use gen_sub3_carry_ccc,
1667         gen_sub3_carry_ccgz and gen_cmp1.
1668         (ix86_expand_int_addcc): Use gen_sub3_carry and gen_add3_carry.
1669         (ix86_split_ashl): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_2.
1670         (ix86_split_ashr): Use gen_x86_shift_adj_1 and gen_x86_shift_adj_3.
1671         (ix86_split_lshr): Ditto.
1672         (ix86_expand_builtin) <case IX86_BUILTIN_UMONITOR>: Use gen_umonitor.
1674 2019-06-18  Jason Merrill  <jason@redhat.com>
1676         * tree.c (build_constructor): Add MEM_STAT_DECL.
1678 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
1680         * config/aarch64/aarch64-modes.def (CC_NZC): New CC_MODE.
1681         * config/aarch64/aarch64-sve.md (*<optab><mode>3_cc)
1682         (ptest_ptrue<mode>, while_ult<GPI:mode><PRED_ALL:mode>)
1683         (*while_ult<GPI:mode><PRED_ALL:mode>_cc, *cmp<cmp_op><mode>)
1684         (*cmp<cmp_op><mode>_ptest, *cmp<cmp_op><mode>_cc)
1685         (*pred_cmp<cmp_op><mode>_combine, *pred_cmp<cmp_op><mode>)
1686         (vec_cmp<mode><vpred>, vec_cmpu<mode><vpred>, cbranch<mode>4):
1687         Use CC_NZC instead of CC.
1688         * config/aarch64/aarch64.md (condjump): Print a '.' in SVE conditions.
1689         * config/aarch64/aarch64.c (aarch64_sve_condition_codes): New variable.
1690         (aarch64_print_operand): Handle E_CC_NZCmode.
1691         (aarch64_emit_sve_ptrue_op_cc): Use gen_set_clobber_cc_nzc instead
1692         of gen_set_clobber_cc.
1694 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
1696         * config/aarch64/aarch64-sve.md: Tabify file.
1698 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
1700         * config/aarch64/aarch64-protos.h (aarch64_pfalse_reg): Declare.
1701         * config/aarch64/aarch64.c (aarch64_pfalse_reg): New function.
1702         * config/aarch64/aarch64-sve.md: Use it.
1704 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
1706         * config/aarch64/aarch64-protos.h (aarch64_ptrue_reg): Declare.
1707         * config/aarch64/aarch64.c (aarch64_ptrue_reg): New functions.
1708         (aarch64_expand_sve_widened_duplicate, aarch64_expand_sve_mem_move)
1709         (aarch64_maybe_expand_sve_subreg_move, aarch64_evpc_rev_local)
1710         (aarch64_expand_sve_vec_cmp_int): Use it.
1711         (aarch64_expand_sve_vec_cmp_float): Likewise.
1712         * config/aarch64/aarch64-sve.md: Likewise throughout.
1714 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
1715             Kugan Vivekanandarajah  <kuganv@linaro.org>
1717         * config/aarch64/aarch64-sve.md (*cond_<optab><mode>_0): Delete.
1718         (*cond_<optab><mode>_z): Fold into...
1719         (*cond_<optab><mode>_any): ...here.  Also handle cases in which
1720         operand 4 can be tied to operand 0 (either inherently or via RA).
1722 2019-06-18  Richard Biener  <rguenther@suse.de>
1724         PR debug/90900
1725         * cfgexpand.c (expand_debug_expr): Treat NOTE_P DECL_RTL
1726         as if optimized away.
1728 2019-06-18  Tom de Vries  <tdevries@suse.de>
1730         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Remove.
1731         * config/nvptx/nvptx.c (gen_set_softstack_insn): Remove.
1732         * config/nvptx/nvptx.md (define_insn "set_softstack_<mode>"):
1733         Rename to ...
1734         (define_insn "@set_softstack_<mode>"): ... this.
1735         (define_insn "omp_simt_enter_<mode>"): Rename to ...
1736         (define_insn "@omp_simt_enter_<mode>"): ... this.
1737         (define_insn "omp_simt_exit_<mode>"): Rename to ...
1738         (define_insn "@omp_simt_exit_<mode>"): ... this.
1740 2019-06-18  Richard Sandiford  <richard.sandiford@arm.com>
1742         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): Remove
1743         vf parameter.  Restore the previous iv step of nscalars_step,
1744         but give it iv_type rather than compare_type.  Tweak code order
1745         to match the comments.
1746         (vect_set_loop_condition_masked): Update accordingly.
1747         * tree-vect-loop.c (vect_verify_full_masking): Use "unsigned int"
1748         for iv_precision.  Tweak comment formatting.
1750 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
1752         * config/darwin.c: Strip trailing whitespace.
1754 2019-06-18  Iain Sandoe  <iain@sandoe.co.uk>
1756         * config/darwin.c (darwin_emit_unwind_label): New default to false.
1757         (darwin_override_options): Set darwin_emit_unwind_label as needed.
1759 2019-06-18  Martin Jambor  <mjambor@suse.cz>
1761         PR ipa/90889
1762         * ipa-cp.c (ignore_edge_p): Do not ignore edges when only the
1763         caller does not have flag_ipa_cp set.
1765 2019-06-18  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
1767         * config/aarch64/aarch64-sve.md (mask_fold_left_plus_<mode>): Renamed
1768         from "*fold_left_plus_<mode>", updated operands order.
1769         * doc/md.texi (mask_fold_left_plus_@var{m}): Documented new optab.
1770         * internal-fn.c (mask_fold_left_direct): New define.
1771         (expand_mask_fold_left_optab_fn): Likewise.
1772         (direct_mask_fold_left_optab_supported_p): Likewise.
1773         * internal-fn.def (MASK_FOLD_LEFT_PLUS): New internal function.
1774         * optabs.def (mask_fold_left_plus_optab): New optab.
1775         * tree-vect-loop.c (mask_fold_left_plus_optab): New function to get a
1776         masked internal_fn for a reduction ifn.
1777         (vectorize_fold_left_reduction): Add support for masking reductions.
1779 2019-06-18  Kewen Lin  <linkw@gcc.gnu.org>
1781         PR middle-end/80791
1782         * target.def (predict_doloop_p): New hook.
1783         * targhooks.h (default_predict_doloop_p): New declaration.
1784         * targhooks.c (default_predict_doloop_p): New function.
1785         * doc/tm.texi.in (TARGET_PREDICT_DOLOOP_P): New hook.
1786         * doc/tm.texi: Regenerate.
1787         * config/rs6000/rs6000.c (rs6000_predict_doloop_p): New function.
1788         (TARGET_PREDICT_DOLOOP_P): New macro.
1789         * tree-ssa-loop-ivopts.c (generic_predict_doloop_p): New function.
1791 2019-06-17  Jakub Jelinek  <jakub@redhat.com>
1793         * omp-low.c (struct omp_context): Add scan_inclusive field.
1794         (scan_omp_1_stmt) <case GIMPLE_OMP_SCAN>: Set ctx->scan_inclusive
1795         if inclusive scan.
1796         (struct omplow_simd_context): Add lastlane member.
1797         (lower_rec_simd_input_clauses): Add rvar argument, handle inscan
1798         reductions.  Build 2 or 3 argument .GOMP_SIMD_LANE calls rather than
1799         1 or 2 argument.
1800         (lower_rec_input_clauses): Handle inscan reductions in simd contexts.
1801         (lower_lastprivate_clauses): Set TREE_THIS_NOTRAP on the ARRAY_REF.
1802         (lower_omp_scan): New function.
1803         (lower_omp_1) <case GIMPLE_OMP_SCAN>: Use lower_omp_scan.
1804         * tree-ssa-dce.c (eliminate_unnecessary_stmts): For IFN_GOMP_SIMD_LANE
1805         check 3rd argument if present rather than 2nd.
1806         * tree-vectorizer.h (struct _loop_vec_info): Add scan_map member.
1807         (struct _stmt_vec_info): Change simd_lane_access_p from bool into
1808         2-bit bitfield.
1809         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
1810         scan_map.  For IFN_GOMP_SIMD_LANE check 3rd argument if present rather
1811         than 2nd.
1812         (_loop_vec_info::~_loop_vec_info): Delete scan_map.
1813         * tree-vect-data-refs.c (vect_analyze_data_ref_accesses): Allow two
1814         different STMT_VINFO_SIMD_LANE_ACCESS_P refs if they have the same
1815         init.
1816         (vect_find_stmt_data_reference): Encode in ->aux the 2nd
1817         IFN_GOMP_SIMD_LANE argument.
1818         (vect_analyze_data_refs): Set STMT_VINFO_SIMD_LANE_ACCESS_P from the
1819         encoded ->aux value.
1820         * tree-vect-stmts.c: Include attribs.h.
1821         (vectorizable_call): Adjust comment about IFN_GOMP_SIMD_LANE.
1822         (scan_operand_equal_p, check_scan_store, vectorizable_scan_store): New
1823         functions.
1824         (vectorizable_load): For STMT_VINFO_SIMD_LANE_ACCESS_P tests use != 0.
1825         (vectorizable_store): Handle STMT_VINFO_SIMD_LANE_ACCESS_P > 1.
1827 2019-06-17  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1829         PR target/62055
1830         * config/i386/i386.md (*nabstf2_1): New insn pattern.
1831         (*nabs<mode>2_1): Ditto.
1832         (nabs sse-reg splitter): New splitter.
1833         * config/i386/sse.md (*nabs<mode>2): New insn_and_split pattern.
1835 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
1837         PR bootstrap/90873.
1838         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Fix
1839         TMR index check.
1841 2019-06-17  Tom de Vries  <tdevries@suse.de>
1843         * config/nvptx/nvptx-protos.h (gen_set_softstack_insn): Declare.
1844         * config/nvptx/nvptx.c (gen_set_softstack_insn): New function.
1845         * config/nvptx/nvptx.md (define_insn "set_softstack_insn"): Rename to
1846         ...
1847         (define_insn "set_softstack_<mode>"): ... this.  Use P iterator on
1848         match_operand 0.
1849         (define_insn "omp_simt_enter_insn"): Rename to ...
1850         (define_insn "omp_simt_enter_<mode>"): ... this.  Use P iterator on
1851         match_operand 0, 1 and 2, as well as the unspec_volatile result.
1852         (define_expand "omp_simt_enter): Use gen_omp_simt_enter_di and
1853         gen_omp_simt_enter_si.
1854         (define_expand "omp_simt_exit"): New.
1855         (define_insn "omp_simt_exit"): Rename to ...
1856         (define_insn "omp_simt_exit_<mode>"): ... this.  Use P iterator on
1857         match_operand 0.
1859 2019-06-17  Matthew Green  <mrg@eterna.com.au>
1860             Maya Rashish  <coypu@sdf.org>
1862         * config.gcc (aarch64*-*-netbsd*): New target.
1863         * config/aarch64/aarch64-netbsd.h: New file.
1864         * config/aarch64/t-aarch64-netbsd: Likewise.
1866 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
1868         * tree-ssa-alias.c (aliasing_component_refs_p): Consider only
1869         the access path from base to first VIEW_CONVERT_EXPR or
1870         BIT_FIELD_REF.
1872 2019-06-17  Jan Hubicka  <hubicka@ucw.cz>
1874         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Also truncate
1875         access path on BIT_FIELD_REFs.
1877 2019-06-17  Martin Liska  <mliska@suse.cz>
1879         PR ipa/90874
1880         * ipa-utils.h (odr_type_p): Remove dead code.
1882 2019-06-17  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1884         * configure.ac (ld_vers) <*-*-solaris2*>: Remove support for
1885         alternative Solaris 11.4 format.
1886         * configure: Regenerate.
1888 2019-06-17  Tom de Vries  <tdevries@suse.de>
1890         * config/nvptx/nvptx.md (define_insn "call_insn"): Rename to ...
1891         (define_insn "call_insn_<mode>"): ... this.  Use P iterator on
1892         match_operand 0.
1893         (define_insn "call_value_insn"): Rename to ...
1894         (define_insn "call_value_insn_<mode>"): this.  Use P iterator on
1895         match_operand 0.
1896         (define_insn "nvptx_red_partition"): Set unspec_volatile result mode to
1897         DI.
1899 2019-06-16  John David Anglin  <danglin@gcc.gnu.org>
1901         PR middle-end/64242
1902         * config/pa/pa.md (nonlocal_goto): Restore frame pointer last.  Add
1903         frame clobbers and schedule block.
1904         (builtin_longjmp): Likewise.
1906 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1908         * config/msp430/msp430.c (msp430_expand_helper): Setup arguments which
1909         describe how to perform MSPABI compliant 64-bit shift.
1910         * config/msp430/msp430.md (ashldi3): New define_expand.
1911         (ashrdi3): New define_expand.
1912         (lshrdi3): New define_expand.
1914 2019-06-16  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
1916         * doc/sourcebuild.texi: Document new effective target keyword
1917         longlong64.
1919 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
1921         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p,
1922         indirect_refs_may_alias_p): Revert accidental commits.
1924         * tree-ssa-alias.c (aliasing_component_refs_p): Watch for arrays
1925         at the end of structures.
1927 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
1929         * config/darwin.c (machopic_indirect_call_target): Use renamed
1930         darwin_picsymbol_stubs to decide on output.
1931         (darwin_override_options): Handle darwin_picsymbol_stubs.
1932         * config/darwin.h (MIN_LD64_OMIT_STUBS): New.
1933         (LD64_VERSION): Revise default.
1934         * config/darwin.opt: (mpic-symbol-stubs): New option.
1935         (darwin_picsymbol_stubs): New variable.
1936         * config/i386/darwin.h (TARGET_MACHO_BRANCH_ISLANDS):
1937         rename to TARGET_MACHO_PICSYM_STUBS.
1938         * config/i386/i386.c (output_pic_addr_const): Likewise.
1939         * config/i386/i386.h Likewise.
1940         * config/rs6000/darwin.h: Likewise.
1941         * config/rs6000/rs6000.c (rs6000_call_darwin_1): Use renamed
1942         darwin_picsymbol_stubs.
1944 2019-06-16  Iain Sandoe  <iain@sandoe.co.uk>
1946         * config/darwin.opt (prebind, noprebind, seglinkedit,
1947         noseglinkedit): Add RejectNegative.
1949 2019-06-16  Jan Hubicka  <hubicka@ucw.cz>
1951         * tree-ssa-alias.c (nonoverlapping_component_refs_p): Fix pasto
1952         in my previous patch.
1954 2019-06-16  Tom de Vries  <tdevries@suse.de>
1956         PR tree-optimization/89376
1957         * tree-parloops.c (oacc_entry_exit_ok_1): Handle red == NULL.
1959 2019-06-15  Maya Rashish  <coypu@sdf.org>
1961         * doc/invoke.texi (Spec Files): Update location of the
1962         Fortran spec file.
1964 2019-06-15  Gerald Pfeifer  <gerald@pfeifer.com>
1966         * doc/extend.texi (Common Function Attributes): Clarify
1967         no_sanitize.  Fix grammar.
1969 2019-06-15  Jan Hubicka  <hubicka@ucw.cz>
1971         * tree-ssa-alias.c (alias_stats): Add
1972         nonoverlapping_component_refs_p_may_alias,
1973         nonoverlapping_component_refs_p_no_alias,
1974         nonoverlapping_component_refs_of_decl_p_may_alias,
1975         nonoverlapping_component_refs_of_decl_p_no_alias.
1976         (dump_alias_stats): Dump them.
1977         (nonoverlapping_component_refs_of_decl_p): Add stats.
1978         (nonoverlapping_component_refs_p): Add stats; do not stop on first
1979         ARRAY_REF.
1981 2019-06-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
1983         * config/i386/i386.md (and<mode>3): Generate zero-extends for
1984         TARGET_ZERO_EXTEND_WITH_AND && optimize_function_for_speed_p (cfun))
1985         only.
1986         (*anddi3_doubleword): Split before reload. Merge with
1987         anddi->zext pre-reload splitter.
1988         (*andndi3_doubleword): Split before reload.
1989         (*<code>di3_doubleword): Ditto.
1990         (*one_cmpldi2_doubleword): Ditto.
1992 2019-06-15  Jakub Jelinek  <jakub@redhat.com>
1994         PR middle-end/90779
1995         * gimplify.c: Include omp-offload.h and context.h.
1996         (gimplify_bind_expr): Add "omp declare target" attributes
1997         to static block scope variables inside of target region or target
1998         functions.
2000 2019-06-15  Tom de Vries  <tdevries@suse.de>
2002         PR tree-optimization/90009
2003         * tree-ssa-threadbackward.c (thread_jumps::profitable_jump_thread_path):
2004         Return NULL if bb contains IFN_UNIQUE.
2006 2019-06-14  Segher Boessenkool  <segher@kernel.crashing.org>
2008         * config/rs6000/rs6000.md (CCEITHER): New define_mode_iterator.
2009         (un): New define_mode_attr.
2010         (isel_signed_<mode>, isel_unsigned_<mode>): Delete, merge into ...
2011         (isel_<un>signed_<GPR:mode>): ... this.  New define_insn.
2012         (isel_reversed_signed_<mode>, isel_reversed_unsigned_<mode>): Delete,
2013         merge into ...
2014         (isel_reversed_<un>signed_<GPR:mode>): ... this.  New define_insn.
2016 2019-06-14  Iain Sandoe  <iain@sandoe.co.uk>
2018         * config/darwin.opt: Add RejectNegative where needed, reorder
2019         and add minimal functional descriptions.
2021 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
2023         PR rtl-optimization/90765
2024         * calls.c (update_stack_alignment_for_call): New function.
2025         (expand_call): Call update_stack_alignment_for_call when
2026         outgoing parameter is passed in the stack.
2027         (emit_library_call_value_1): Likewise.
2028         * function.c (locate_and_pad_parm): Don't update
2029         stack_alignment_needed and preferred_stack_boundary.
2031 2019-06-14  H.J. Lu  <hongjiu.lu@intel.com>
2033         PR target/90877
2034         * config/i386/i386-features.c
2035         (dimode_scalar_chain::compute_convert_gain): Replace
2036         mmxsse_to_integer with sse_to_integer.
2037         * config/i386/i386.c (ix86_register_move_cost): Verify that
2038         moves between MMX and non-MMX units require secondary memory.
2039         Correct costs of moves between SSE and integer units.
2040         * config/i386/i386.h (processor_costs): Rename cost of moving
2041         SSE register to integer to sse_to_integer.  Rename cost of
2043 2019-06-14  Matt Thomas  <matt@3am-software.com>
2044             Matthew Green  <mrg@eterna.com.au>
2045             Nick Hudson  <skrll@netbsd.org>
2046             Maya Rashish  <coypu@sdf.org>
2047             Richard Earnshaw  <rearnsha@arm.com>
2049         * config.gcc (arm*-*-netbsdelf*) Add support for EABI configuration.
2050         * config.host (arm*-*-netbsd*): Use driver-arm.o on native NetBSD.
2051         * config/arm/netbsd-eabi.h: New file.
2052         * config/arm/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Undefine before
2053         redefining.
2054         (SUBTARGET_EXTRA_ASM_SPEC): Don't pass -matpcs to the assembler.
2055         * config/netbsd-elf.h (NETBSD_LINK_LD_ELF_SO_SPEC): New define.
2056         (NETBSD_SUBTARGET_EXTRA_SPECS): New define.
2057         (SUBTARGET_EXTRA_SPECS): Define to NETBSD_SUBTARGET_EXTRA_SPECS.
2059 2019-06-14  Richard Biener  <rguenther@suse.de>
2061         * tree-loop-distribution.c (classify_partition): Return
2062         whether a reduction appeared in all partitions and do not
2063         stop builtin detection because of this.
2064         (distribute_loop): Sort a non-builtin partition last if
2065         there's a reduction in all partitions and make sure the
2066         partition prevailing as last is not a builtin.
2068 2019-06-14  Feng Xue  <fxue@os.amperecomputing.com>
2070         PR ipa/90401
2071         * ipa-prop.c (add_to_agg_contents_list): New function.
2072         (clobber_by_agg_contents_list_p): Likewise.
2073         (extract_mem_content): Likewise.
2074         (get_place_in_agg_contents_list): Delete.
2075         (determine_known_aggregate_parts): Renamed from
2076         determine_locally_known_aggregate_parts.  New parameter
2077         aa_walk_budget_p.
2079 2019-06-13  Martin Sebor  <msebor@redhat.com>
2081         PR tree-optimization/90662
2082         * tree-ssa-strlen.c (get_stridx): Convert fold_build2 operands
2083         to the same type.
2085 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
2087         PR bootstrap/90873
2088         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Also check that
2089         dbase is not TARGET_MEM_REF.
2091 2019-06-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2093         * config/i386/i386.md (SWIM1248s): Rename from SWIM1248x.
2094         Update all uses.
2095         (and<mode>3): Use gen_extend_insn instead of indirect functions.
2096         Do not generate DImode extends for 32bit targets.
2097         (and->zext post-reload splitter): Use gen_extend_insn
2098         instead of indirect functions.
2099         (anddi->zext pre-reload splitter): New.
2100         (*zext<mode>_doubleword_and): Remove.
2101         (*zext<mode>_doubleword): Ditto.
2102         (*zextsi_doubleword): Dittto.
2104 2019-06-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2106         * config/i386/i386-expand.c (ix86_expand_int_sse_cmp):
2107         Use gen_sub3_insn instead of indirect function.
2108         (ix86_expand_ashl_const): Use gen_add2_insn instead of
2109         indirect function.
2110         (ix86_adjust_counter): Ditto.
2112 2019-06-13  Jiufu Guo  <guojiufu@linux.ibm.com>
2113             Lijia He  <helijia@linux.ibm.com>
2115         PR tree-optimization/77820
2116         * tree-ssa-threadedge.c
2117         (edge_forwards_cmp_to_conditional_jump_through_empty_bb_p): New
2118         function.
2119         (thread_across_edge): Add call to
2120         edge_forwards_cmp_to_conditional_jump_through_empty_bb_p.
2122 2019-06-13  Iain Sandoe  <iain@sandoe.co.uk>
2124         * config/darwin-driver.c (validate_macosx_version_min): New.
2125         (darwin_default_min_version): Cleanup and validate supplied version.
2126         (darwin_driver_init): Likewise and push cleaned version into opts.
2128 2019-06-13  Jan Hubicka  <hubicka@ucw.cz>
2130         PR tree-optimization/90869
2131         * tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Watch for view
2132         converts in MEM_REF referencing decl rather than view converts
2133         from decl type to MEM_REF type.
2135 2019-06-13  Richard Biener  <rguenther@suse.de>
2137         PR tree-optimization/90856
2138         * tree-sra.c (build_ref_for_model): Only use
2139         build_reconstructed_reference when address-spaces are the same.
2141 2019-06-13  Jakub Jelinek  <jakub@redhat.com>
2143         * config/nvptx/nvptx.c (nvptx_sese_number, nvptx_sese_pseudo): Don't
2144         wrap ei variable name in the declaration in ()s.
2145         (nvptx_single): Actually use mode_label variable.  Formatting fix.
2147 2019-06-13  Richard Biener  <rguenther@suse.de>
2149         * tree-vectorizer.h (vect_loop_vectorized_call): Declare.
2150         * tree-vectorizer.c (vect_loop_vectorized_call): Export and
2151         also return the condition stmt.
2152         * tree-vect-loop-manip.c (vect_loop_versioning): Compute outermost
2153         loop we can version and version that, reusing the loop version
2154         created by if-conversion instead of versioning again.
2156 2019-06-13  Aldy Hernandez  <aldyh@redhat.com>
2158         * gimple-loop-versioning.cc (prune_loop_conditions): Use
2159         may_contain_p.
2160         * tree-vrp (value_range_base::may_contain_p): Call into
2161         value_inside_range.
2162         (value_inside_range): Make private inside value_range_base class.
2163         Take min/max from *this.
2164         (range_includes_p): Remove.
2165         * tree-vrp.h (value_range_base): Add value_inside_range.
2166         (range_includes_p): Remove.
2167         (range_includes_zero_p): Call may_contain_p.
2168         * vr-values.c (compare_range_with_value): Same.
2170 2019-06-13  Claudiu Zissulescu  <claziss@synopsys.com>
2172         * doc/extend.texi (ARC Function Attributes): Update info.
2174 2019-06-13  Feng Xue  <fxue@os.amperecomputing.com>
2176         PR tree-optimization/89713
2177         * doc/invoke.texi (-ffinite-loops): Document new option.
2178         * common.opt (-ffinite-loops): New option.
2179         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Mark
2180         IFN_GOACC_LOOP calls as necessary.
2181         * tree-ssa-loop-niter.c (finite_loop_p): Assume loop with an exit
2182         is finite.
2183         * omp-offload.c (oacc_xform_loop): Skip lowering if return value of
2184         IFN_GOACC_LOOP call is not used.
2185         * opts.c (default_options_table): Enable -ffinite-loops at -O2+.
2187 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2189         PR target/88838
2190         * tree-vect-loop-manip.c (vect_set_loop_masks_directly): If the
2191         compare_type is not with Pmode size, we will create an IV with
2192         Pmode size with truncated use (i.e. converted to the correct type).
2193         * tree-vect-loop.c (vect_verify_full_masking): Find IV type.
2194         (vect_iv_limit_for_full_masking): New. Factored out of
2195         vect_set_loop_condition_masked.
2196         * tree-vectorizer.h (LOOP_VINFO_MASK_IV_TYPE): New.
2197         (vect_iv_limit_for_full_masking): Declare.
2199 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2201         PR target/88834
2202         * tree-ssa-loop-ivopts.c (get_mem_type_for_internal_fn): Handle
2203         IFN_MASK_LOAD_LANES and IFN_MASK_STORE_LANES.
2204         (get_alias_ptr_type_for_ptr_address): Likewise.
2205         (add_iv_candidate_for_use): Add scaled index candidate if useful.
2206         * tree-ssa-address.c (preferred_mem_scale_factor): New.
2207         * config/aarch64/aarch64.c (aarch64_classify_address): Relax
2208         allow_reg_index_p.
2210 2019-06-13  Kugan Vivekanandarajah  <kugan.vivekanandarajah@linaro.org>
2212         * config/aarch64/iterators.md (ADDSUB): Fix typo in comment.
2214 2019-06-12  Dimitar Dimitrov  <dimitar@dinux.eu>
2216         * common/config/pru/pru-common.c: New file.
2217         * config.gcc: Add PRU target.
2218         * config/pru/alu-zext.md: New file.
2219         * config/pru/constraints.md: New file.
2220         * config/pru/predicates.md: New file.
2221         * config/pru/pru-opts.h: New file.
2222         * config/pru/pru-passes.c: New file.
2223         * config/pru/pru-pragma.c: New file.
2224         * config/pru/pru-protos.h: New file.
2225         * config/pru/pru.c: New file.
2226         * config/pru/pru.h: New file.
2227         * config/pru/pru.md: New file.
2228         * config/pru/pru.opt: New file.
2229         * config/pru/t-pru: New file.
2230         * doc/extend.texi: Document PRU pragmas.
2231         * doc/invoke.texi: Document PRU-specific options.
2232         * doc/md.texi: Document PRU asm constraints.
2234 2019-06-12  Martin Sebor  <msebor@redhat.com>
2236         PR middle-end/90676
2237         * tree-pretty-print.c (dump_mem_ref): New function.  Include
2238         MEM_REF type in output when different size than operand.
2239         (dump_generic_node): Move code to dump_mem_ref and call it.
2241 2019-06-12  Martin Sebor  <msebor@redhat.com>
2243         PR tree-optimization/90662
2244         * tree-ssa-strlen.c (get_stridx): Handle simple VLAs and pointers
2245         to arrays.
2247 2019-06-12  Tom de Vries  <tdevries@suse.de>
2249         PR tree-optimization/90009
2250         * config/nvptx/nvptx.c (nvptx_find_par): Assert fork has at most join.
2252 2019-06-12  Martin Liska  <mliska@suse.cz>
2254         * ggc-common.c (ggc_prune_overhead_list): Do not sanitize
2255         the created map.
2256         * hash-map.h: Add sanitize_eq_and_hash into ::hash_map.
2257         * mem-stats.h (mem_alloc_description::mem_alloc_description):
2258         Do not sanitize created maps.
2260 2019-06-12  Aldy Hernandez  <aldyh@redhat.com>
2262         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children): Use
2263         value_range::singleton_p.
2264         * tree-vrp.c (value_range_constant_singleton): Remove.
2265         * tree-vrp.h (value_range_constant_singleton): Remove.
2266         * vr-values.c (vr_values::singleton): Use
2267         value_range::singleton_p.
2269 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
2271         PR target/90811
2272         * cfgexpand.c (align_local_variable): Add really_expand argument,
2273         don't SET_DECL_ALIGN if it is false.
2274         (add_stack_var): Add really_expand argument, pass it through to
2275         align_local_variable.
2276         (expand_one_stack_var_1): Pass true as really_expand to
2277         align_local_variable.
2278         (expand_one_ssa_partition): Pass true as really_expand to
2279         add_stack_var.
2280         (expand_one_var): Pass really_expand through to add_stack_var.
2282 2019-06-12  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
2284         * config/arm/iterators.md (VABAL): New int iterator.
2285         * config/arm/neon.md (<sup>sadv16qi): New define_expand.
2286         * config/arm/unspecs.md ("unspec"): Define UNSPEC_VABAL_S, UNSPEC_VABAL_U
2287         values.
2289 2019-06-12  Martin Liska  <mliska@suse.cz>
2291         * value-prof.c (stream_out_histogram_value): Only first value
2292         can't be negative.
2294 2019-06-12  Jakub Jelinek  <jakub@redhat.com>
2296         PR c/90760
2297         * symtab.c (symtab_node::set_section): Allow being called on aliases
2298         as long as they aren't analyzed yet.
2300 2019-06-11  Faraz Shahbazker  <fshahbazker@wavecomp.com>
2302         * config/mips/mips.c (mips_final_postscan_insn): Modify call
2303         to `mips_set_text_contents_type' to indicate whether a
2304         non-debug insn follows.
2306 2019-06-11  Michael Meissner  <meissner@linux.ibm.com>
2308         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Delete
2309         enabling -mpcrel by default.
2310         * config/rs6000/rs6000.c (rs6000_option_override_internal): Update
2311         test for -mpcrel and/or -mprefixed-addr needing -mcpu=future, so
2312         that the test against -mcpu=future is done first.  Then test if
2313         -mprefixed-addr is on for -mpcrel.
2314         (rs6000_disable_incompatible_switches): Add -mcpu=future support.
2316 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
2318         PR target/90811
2319         * config/nvptx/nvptx.c (nvptx_output_softstack_switch): Use and.b%d
2320         instead of and.u%d.
2322 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
2324         * match.pd (X/[ex]4<Y/[ex]4): Handle conversions.
2326 2019-06-11  Matthew Beliveau  <mbelivea@redhat.com>
2328         PR c++/90449 - add -Winaccessible-base option.
2329         * doc/invoke.texi (Winaccessible-base): Document.
2331 2019-06-11  Marc Glisse  <marc.glisse@inria.fr>
2333         PR tree-optimization/62041
2334         * fold-const.c (fold_real_zero_addition_p): Handle vectors.
2336 2019-06-11  Jason Merrill  <jason@redhat.com>
2338         * gdbhooks.py (TreePrinter.to_string): Recognize ggc_free'd memory.
2339         * tree.c (get_tree_code_name): Likewise.
2340         * print-tree.c (print_node): Only briefly print a node with an
2341         invalid code.
2343 2019-06-11  Jakub Jelinek  <jakub@redhat.com>
2345         PR bootstrap/90819
2346         * trans-mem.c (tm_memopt_compute_available): Add assertion
2347         that blocks is not empty.  Formatting fix.
2349 2019-06-11  Martin Liska  <mliska@suse.cz>
2351         PR c++/87847
2352         * hash-table.h: Extend create_gcc, add one parameter
2353         that is passed into hash_table::hash_table.
2355 2019-06-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
2357         * config/i386/i386-protos.h (ix86_split_fp_absneg_operator):
2358         New prototype.
2359         * config/i386/i386-expand.c (ix86_expand_fp_absneg_operator):
2360         Emit clobber also for non-sse operations.
2361         (ix86_split_fp_absneg_operator): New function.
2362         * config/i386/i386.md (SSEMODEF): New mode iterator.
2363         (ssevecmodef): New mode attribute.
2364         (<code>tf2): Use absneg code iterator.
2365         (*<code>tf2_1): Rename from *absnegtf3_sse. Use absneg code iterator.
2366         Add three-operand AVX alternatives.
2367         (*<code><mode>2_i387_1): Rename from *absnegxf2_i387.
2368         Use absneg code iterator and X87MODEF mode iterator.
2369         (absneg fp_reg non-sse splitter): Call absneg code iterator
2370         and X87MODEF mode iterator.
2371         (absneg general_reg non-sse splitter): Use absneg code iterator
2372         and X87MODEF mode iterator.  Use ix86_split_fp_absneg_operator.
2373         (*<code><mode>2_1): Rename from *absneg<mode>2.  Use absneg
2374         code iterator.  Add three-operand AVX alternative.
2375         (absneg sse_reg splitter): Use absneg code iterator
2376         and SSEMODEF mode iterator.  Handle AVX operands.
2377         (absneg fp_reg splitter): Use absneg code iterator
2378         and MODEF mode iterator.
2379         (absneg general_reg splitter): Merge splitters using MODEF mode
2380         iterator.  Use absneg code iterator.  Call
2381         ix86_split_fp_absneg_operator.
2382         (*<code><mode>2_i387): Rename from *<code><mode>2_1.
2383         Do not enable for non-sse modes before reload.
2384         (CSGNMODE): Remove.
2385         (CSGNVMODE): Ditto.
2386         (copysing<mode>3): Use SSEMODEF instead of CSGNMODE and
2387         ssevecmodef mode attribute instaed of CSGNVMODE.
2388         (copysign<mode>3_const): Ditto.
2389         (copysign<mode>3_var): Ditto.
2390         * config/i386/i386.md (*<code><mode>2): Rename from *absneg<mode>2.
2391         Use absneg code iterator.  Simplify code using std::swap.
2392         * config/i386/predicates.md (absneg_operator): Remove.
2394 2019-06-10  Martin Sebor  <msebor@redhat.com>
2396         * gimple-fold.c (get_range_strlen): Update comment that didn't
2397         make it into r267503 or related commits.
2399 2019-06-10  Vladislav Ivanishin  <vlad@ispras.ru>
2401         * gcov-tool.c (merge_usage, rewrite_usage): Mark with
2402         ATTRIBUTE_NORETURN thus making consistent with overlap_usage.
2404 2019-06-10  Jakub Jelinek  <jakub@redhat.com>
2406         * tree.def (OMP_SCAN): New tree code.
2407         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE_INCLUSIVE and
2408         OMP_CLAUSE_EXCLUSIVE.
2409         * tree.h (OMP_CLAUSES): Use OMP_SCAN instead of OMP_TASKGROUP.
2410         (OMP_SCAN_BODY, OMP_SCAN_CLAUSES): Define.
2411         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add entries for
2412         OMP_CLAUSE_{IN,EX}CLUSIVE.
2413         (walk_tree_1): Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
2414         * tree-nested.c (convert_nonlocal_reference_stmt,
2415         convert_local_reference_stmt, convert_gimple_call): Handle
2416         GIMPLE_OMP_SCAN.
2417         * tree-pretty-print.c (dump_omp_clause): Handle
2418         OMP_CLAUSE_{IN,EX}CLUSIVE.
2419         (dump_generic_node): Handle OMP_SCAN.
2420         * gimple.def (GIMPLE_OMP_SCAN): New gimple code.
2421         * gimple.h (gomp_scan): New type.
2422         (is_a_helper <gomp_scan *>::test,
2423         is_a_helper <const gomp_scan *>::test): New templates.
2424         (gimple_build_omp_scan): Declare.
2425         (gimple_omp_scan_clauses, gimple_omp_scan_clauses_ptr,
2426         gimple_omp_scan_set_clauses): New inline functions.
2427         (CASE_GIMPLE_OMP): Add case GIMPLE_OMP_SCAN:.
2428         * gimple.c (gimple_build_omp_scan): New function.
2429         (gimple_copy): Handle GIMPLE_OMP_SCAN.
2430         * gimple-walk.c (walk_gimple_op, walk_gimple_stmt): Likewise.
2431         * gimple-pretty-print.c (dump_gimple_omp_block): Don't handle
2432         GIMPLE_OMP_TASKGROUP.
2433         (dump_gimple_omp_scan): New function.
2434         (pp_gimple_stmt_1): Handle GIMPLE_OMP_SCAN.
2435         * gimple-low.c (lower_stmt): Handle GIMPLE_OMP_SCAN.
2436         * tree-inline.c (remap_gimple_stmt, estimate_num_insns): Likewise.
2437         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_REDUCTION_INSCAN.
2438         (is_gimple_stmt): Handle OMP_SCAN.
2439         (gimplify_scan_omp_clauses): Reject inscan reductions on constructs
2440         other than OMP_FOR or OMP_SIMD.  Handle OMP_CLAUSE_{IN,EX}CLUSIVE.
2441         (gimplify_adjust_omp_clauses): Diagnose inscan reductions not
2442         mentioned in nested #pragma omp scan.  Handle
2443         OMP_CLAUSE_{IN,EX}CLUSIVE.
2444         (gimplify_expr): Handle OMP_SCAN.
2445         * omp-low.c (check_omp_nesting_restrictions): For parent context,
2446         look through GIMPLE_OMP_SCAN context.  Allow #pragma omp scan in
2447         simd constructs.
2448         (scan_omp_1_stmt, lower_omp_1, diagnose_sb_1, diagnose_sb_2): Handle
2449         GIMPLE_OMP_SCAN.
2451 2019-06-10  Martin Liska  <mliska@suse.cz>
2453         * ipa-cp.c (ignore_edge_p): New function.
2454         (build_toporder_info): Use it.
2455         * ipa-inline.c (ignore_edge_p): New function.
2456         (inline_small_functions): Use it.
2457         * ipa-pure-const.c (ignore_edge_for_nothrow):
2458         Verify opt_for_fn for caller and callee.
2459         (ignore_edge_for_pure_const): Likewise.
2460         * ipa-reference.c (ignore_edge_p): Extend to check
2461         for opt_for_fn.
2462         * ipa-utils.c (searchc): Refactor.
2463         * ipa-utils.h: Fix coding style.
2465 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
2467         * config/arc/arc.c (arc_rtx_costs): Update costs.
2469 2019-06-10  Claudiu Zissulescu  <claziss@synopsys.com>
2471         * config/arc/arc-protos.h (arc_check_ior_const): Declare.
2472         (arc_split_ior): Likewise.
2473         (arc_check_mov_const): Likewise.
2474         (arc_split_mov_const): Likewise.
2475         * config/arc/arc.c (arc_print_operand): Fix 'z' letter.
2476         (arc_rtx_costs): Replace check Crr with Cax constraint.
2477         (prepare_move_operands): Cleanup, remove unused code.
2478         (arc_split_ior): New function.
2479         (arc_check_ior_const): Likewise.
2480         (arc_split_mov_const): Likewise.
2481         (arc_check_mov_const): Likewise.
2482         * config/arc/arc.md (movsi_insn): Restructure it, and convert it
2483         in define_insn_and_split pattern.
2484         (iorsi3): Likewise.
2485         (mulsi3_v2): Add new matching variant.
2486         (andsi3_i): Cleanup pattern.
2487         (rotrsi3_cnt1): Update pattern.
2488         (rotrsi3_cnt8): New pattern.
2489         (ashlsi2_cnt8): Likewise.
2490         (ashlsi2_cnt16): Likewise.
2491         * config/arc/constraints.md (C0p): Update constraint.
2492         (Crr): Remove it.
2493         (C0x): New pattern.
2494         (Cax): New pattern.
2496 2019-06-10  Martin Liska  <mliska@suse.cz>
2498         * ipa-icf.c (sem_item_optimizer::parse_nonsingleton_classes):
2499         Update coding style.
2500         (sem_item_optimizer::dump_cong_classes):
2501         Print how many items are in a non-singular class.  Improve
2502         coding style.
2504 2019-06-10  Martin Liska  <mliska@suse.cz>
2506         * value-prof.c (dump_histogram_value): Change dump format.
2507         (gimple_mod_subtract_transform): Remove legacy comment.
2509 2019-06-10  Martin Liska  <mliska@suse.cz>
2511         * value-prof.c (dump_histogram_value): Print histogram values
2512         only if present.
2514 2019-06-10  Martin Liska  <mliska@suse.cz>
2516         * gcov-io.h (GCOV_DISK_SINGLE_VALUES): New.
2517         (GCOV_SINGLE_VALUE_COUNTERS): Likewise.
2518         * ipa-profile.c (ipa_profile_generate_summary):
2519         Use get_most_common_single_value.
2520         * tree-profile.c (gimple_init_gcov_profiler):
2521         Instrument with __gcov_one_value_profiler_v2
2522         and __gcov_indirect_call_profiler_v4.
2523         * value-prof.c (dump_histogram_value):
2524         Print all values for HIST_TYPE_SINGLE_VALUE.
2525         (stream_out_histogram_value): Update assert for
2526         N values.
2527         (stream_in_histogram_value): Set number of
2528         counters for HIST_TYPE_SINGLE_VALUE.
2529         (get_most_common_single_value): New.
2530         (gimple_divmod_fixed_value_transform):
2531         Use get_most_common_single_value.
2532         (gimple_ic_transform): Likewise.
2533         (gimple_stringops_transform): Likewise.
2534         (gimple_find_values_to_profile): Set number
2535         of counters for HIST_TYPE_SINGLE_VALUE.
2536         * value-prof.h (get_most_common_single_value):
2537         New.
2539 2019-06-10  Martin Liska  <mliska@suse.cz>
2541         * hash-map.h: Pass default value to hash_table ctor.
2542         * hash-table.h: Add default value to call of a ctor.
2544 2019-06-08  Jonathan Wakely  <jwakely@redhat.com>
2546         * doc/invoke.texi (C Dialect Options): Minor grammatical change.
2547         (x86 Options): Replace all uses of "PCL_MUL" with "PCLMUL"
2549 2019-06-07  John David Anglin  <danglin@gcc.gnu.orig>
2551         PR target/90751
2552         * config/pa/pa-linux.h (ASM_DECLARE_FUNCTION_NAME): Update comment.
2553         Call pa_output_function_label.
2554         (TARGET_ASM_FUNCTION_PROLOGUE): define.
2555         * config/pa/pa-protos.h (pa_output_function_label): Declare.
2556         * config/pa/pa.c (pa_output_function_prologue): Add ATTRIBUTE_UNUSED
2557         to declaration.
2558         (pa_linux_output_function_prologue): Declare.
2559         (TARGET_ASM_FUNCTION_PROLOGUE): Delete define.
2560         (pa_output_function_label): New.
2561         (pa_output_function_prologue): Revise to use pa_output_function_label.
2562         (pa_linux_output_function_prologue): New.
2563         * config/pa/pa.h (TARGET_ASM_FUNCTION_PROLOGUE): Define.
2565 2019-06-07  Aldy Hernandez  <aldyh@redhat.com>
2567         * tree-vrp.h (value_range_base::intersect): New.
2568         (value_range::intersect_helper): Move from here...
2569         (value_range_base::intersect_helper): ...to here.
2570         * tree-vrp.c (value_range::intersect_helper): Rename to...
2571         (value_range_base::intersect_helper): ...this, and rewrite to
2572         return a value instead of modifying THIS in place.
2573         Also, move equivalence handling...
2574         (value_range::intersect): ...here, while calling intersect_helper.
2575         * gimple-fold.c (size_must_be_zero_p): Use value_range_base when
2576         calling intersect.
2577         * gimple-ssa-evrp-analyze.c (ecord_ranges_from_incoming_edge):
2578         Same.
2579         * vr-values.c (vrp_evaluate_conditional_warnv_with_ops): Same.
2581 2019-06-07  Jakub Jelinek  <jakub@redhat.com>
2583         * Makefile.in (genprogerr): Add condmd.
2584         (genprog): Remove it here.
2586 2019-06-07  Andrew Stubbs  <ams@codesourcery.com>
2588         * doc/invoke.texi (AMD GCN Options): Add gfx906.
2590 2019-06-07  Richard Biener  <rguenther@suse.de>
2592         PR debug/90574
2593         * tree-cfg.c (stmt_starts_bb_p): Split blocks at labels
2594         that appear after user labels.
2596 2019-06-07  Martin Liska  <mliska@suse.cz>
2598         * cselib.c (cselib_init): Disable hash table
2599         sanitization.
2600         * hash-set.h: Pass new default argument to m_table.
2601         * hash-table.c: Add global variable with hash table
2602         sanitization limit.
2603         * hash-table.h (Allocator>::hash_table): Add new argument
2604         to ctor.
2605         (hashtab_chk_error): New.
2606         * params.def (PARAM_HASH_TABLE_VERIFICATION_LIMIT): New.
2607         * toplev.c (process_options): Set hash_table_sanitize_eq_limit
2608         from the PARAM_HASH_TABLE_VERIFICATION_LIMIT value.
2610 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
2612         * common.opt (flto-odr-type-merging): Ignore.
2613         * invoke.texi (-flto-odr-type-merging): Remove.
2614         * ipa-devirt.c (odr_vtable_hasher:odr_name_hasher): Remove.
2615         (can_be_vtable_hashed_p): Remove.
2616         (hash_odr_vtable): Remove.
2617         (odr_vtable_hasher::hash): Remove.
2618         (types_same_for_odr): Remove.
2619         (types_odr_comparable): Remove.
2620         (odr_vtable_hasher::equal): Remove.
2621         (odr_vtable_hash_type, odr_vtable_hash): Remove.        
2622         (add_type_duplicate): Do not synchronize vtable and name hashtables.
2623         (get_odr_type): Do not use vtable hash.
2624         (dump_odr_type): Remove commented out code.
2625         (build_type_inheritance_graph): Do not allocate vtable hash.
2626         (rebuild_type_inheritance_graph): Do not delete vtable hash.
2627         * ipa-utils.h (type_with_linkage_p): Drop vtable hash path.
2628         (odr_type_p): Likewise.
2629         * tree.c (need_assembler_name_p): Remove flag_lto_odr_type_mering
2630         test.
2632 2019-06-07  Jan Hubicka  <hubicka@ucw.cz>
2634         * tree-ssa-alias.c (aliasing_component_refs_p): Do not give up
2635         immediately after same_types_for_tbaa_p returns -1 and continue
2636         looking for possible exact match; if matching types are arrays
2637         watch for partial overlaps.
2638         (indirect_ref_may_alias_decl_p): Watch for partial array overlaps.
2639         (indirect_refs_may_alias_p): Do type based disambiguation first;
2640         update comment.
2642 2019-06-07  Richard Sandiford  <richard.sandiford@arm.com>
2644         * fwprop.c (propagate_rtx): Fix call to paradoxical_subreg_p.
2646 2019-06-07  Martin Liska  <mliska@suse.cz>
2648         * doc/invoke.texi: Remove param.
2649         * gcov-counter.def (GCOV_COUNTER_ICALL_TOPNV):
2650         Remove.
2651         * gcov-io.h (GCOV_ICALL_TOPN_VAL): Likewise.
2652         (GCOV_ICALL_TOPN_NCOUNTS): Likewise.
2653         * params.def (PARAM_INDIR_CALL_TOPN_PROFILE): Likewise.
2654         * profile.c (instrument_values): Remove
2655         HIST_TYPE_INDIR_CALL_TOPN.
2656         * tree-profile.c (init_ic_make_global_vars):
2657         Always build __gcov_indirect_call only.
2658         (gimple_init_gcov_profiler): Remove usage
2659         of PARAM_INDIR_CALL_TOPN_PROFILE.
2660         (gimple_gen_ic_profiler): Likewise.
2661         * value-prof.c (dump_histogram_value): Likewise.
2662         (stream_in_histogram_value): Likewise.
2663         (gimple_indirect_call_to_profile): Likewise.
2664         (gimple_find_values_to_profile): Likewise.
2665         * value-prof.h (enum hist_type): Likewise.
2667 2019-06-07  Martin Liska  <mliska@suse.cz>
2669         * tree-ssa-loop.c (get_lsm_tmp_name): Return at the end of the
2670         function.
2672 2019-06-07  Martin Liska  <mliska@suse.cz>
2674         PR tree-optimization/78902
2675         * builtin-attrs.def (ATTR_WARN_UNUSED_RESULT): New.
2676         (ATTR_MALLOC_NOTHROW_LEAF_LIST): Remove.
2677         (ATTR_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
2678         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LEAF_LIST): New.
2679         (ATTR_ALLOC_SIZE_2_NOTHROW_LIST): Remove.
2680         (ATTR_MALLOC_SIZE_1_NOTHROW_LEAF_LIST): Remove.
2681         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_LIST): New.
2682         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LIST): New.
2683         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
2684         (ATTR_ALLOCA_SIZE_1_NOTHROW_LEAF_LIST): Remove.
2685         (ATTR_ALLOCA_WARN_UNUSED_RESULT_SIZE_1_NOTHROW_LEAF_LIST): New.
2686         (ATTR_MALLOC_SIZE_1_2_NOTHROW_LEAF_LIST):  Remove.
2687         (ATTR_MALLOC_WARN_UNUSED_RESULT_SIZE_1_2_NOTHROW_LEAF_LIST):
2688         New.
2689         (ATTR_ALLOC_SIZE_2_NOTHROW_LEAF_LIST): Remove.
2690         (ATTR_ALLOC_WARN_UNUSED_RESULT_SIZE_2_NOTHROW_LEAF_LIST): New.
2691         (ATTR_MALLOC_NOTHROW_NONNULL): Remove.
2692         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
2693         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL): New.
2694         (ATTR_MALLOC_NOTHROW_NONNULL_LEAF): Remove.
2695         (ATTR_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
2696         (ATTR_MALLOC_WARN_UNUSED_RESULT_NOTHROW_NONNULL_LEAF): New.
2697         * builtins.def (BUILT_IN_ALIGNED_ALLOC): Change to use
2698         warn_unused_result attribute.
2699         (BUILT_IN_STRDUP): Likewise.
2700         (BUILT_IN_STRNDUP): Likewise.
2701         (BUILT_IN_ALLOCA): Likewise.
2702         (BUILT_IN_CALLOC): Likewise.
2703         (BUILT_IN_MALLOC): Likewise.
2704         (BUILT_IN_REALLOC): Likewise.
2706 2019-06-06  Jim Wilson  <jimw@sifive.com>
2708         PR target/89955
2709         * config/riscv/riscv.h (STARTFILE_PREFIX_SPEC): Deleted.
2710         * config/riscv/freebsd.h (STARTFILE_PREFIX_SPEC): Added.
2711         * config/riscv/linux.h (STARTFILE_PREFIX_SPEC): Added.
2713 2019-06-06  Martin Sebor  <msebor@redhat.com>
2715         * tree-ssa-strlen.c (adjust_related_strinfos): Avoid trailing article.
2716         (handle_builtin_malloc): Remove trailing spaces.
2717         (handle_builtin_memset): Same.
2718         (handle_builtin_memcmp): Same.
2719         (compute_string_length): Same.
2720         (determine_min_objsize): Same.
2721         (handle_builtin_string_cmp): Same.
2722         (handle_char_store): Same.  Break up excessively long line.
2724 2019-06-06  Martin Jambor  <mjambor@suse.cz>
2726         * tree-sra.c (build_reconstructed_reference): Drop the alignment
2727         check.
2729 2019-06-06  Martin Jambor  <mjambor@suse.cz>
2731         * tree-sra.c (struct access): New field grp_same_access_path.
2732         (dump_access): Dump it.
2733         (build_reconstructed_reference): New function.
2734         (build_ref_for_model): Use it if possible.
2735         (path_comparable_for_same_access): New function.
2736         (same_access_path_p): Likewise.
2737         (sort_and_splice_var_accesses): Set the new flag.
2738         (analyze_access_subtree): Likewise.
2739         (propagate_subaccesses_across_link): Propagate zero value of the new
2740         flag down the access tree.
2742 2019-06-06  Andrew Stubbs  <ams@codesourcery.com>
2744         * config.gcc (amdgcn-*-*): Allow --with-arch=gfx906.
2745         * config/gcn/gcn.opt (gpu_type): Add gfx906.
2746         * config/gcn/t-gcn-hsa (MULTILIB_OPTIONS): Add gfx906 multilib.
2747         (MULTILIB_DIRNAMES): Rename gcn5 to gfx900.
2748         Add gfx906.
2750 2019-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2752         PR tree-optimization/90332
2753         * config/aarch64/aarch64.c (aarch64_expand_vector_init):
2754         Handle VALS containing two vectors.
2755         * config/aarch64/aarch64-simd.md (*aarch64_combinez<mode>): Rename
2756         to...
2757         (@aarch64_combinez<mode>): ... This.
2758         (*aarch64_combinez_be<mode>): Rename to...
2759         (@aarch64_combinez_be<mode>): ... This.
2760         (vec_init<mode><Vhalf>): New define_expand.
2761         * config/aarch64/iterators.md (Vhalf): Handle V8HF.
2763 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2765         * config/msp430/msp430.md (ashlhi3): Use the const_variant of shift
2766         library functions only when not optimizing for size.
2767         (ashlsi3): Likewise.
2768         (ashrhi3): Likewise.
2769         (ashrsi3): Likewise.
2770         (lshrhi3): Likewise.
2771         (lshrsi3): Likewise.
2773 2019-06-06  Andreas Krebbel  <krebbel@linux.ibm.com>
2775         PR rtl-optimization/88751
2776         * ira.c (ira): Use the number of the actually referenced registers
2777         when calculating the threshold.
2779 2019-06-06  Jakub Jelinek  <jakub@redhat.com>
2781         * configure: Regenerate.
2783 2019-06-06  Jozef Lawrynowicz  <jozef.l@mittosystems.com>
2785         * config/msp430/msp430.md (ashlhi3): Force shift src operand into a
2786         register if it is in memory, so the shift can be emulated with a rotate
2787         instruction.
2788         (ashrhi3): Likewise.
2789         (lshrhi3): Likewise.
2791 2019-06-06  Martin Liska  <mliska@suse.cz>
2793         PR tree-optimization/87954
2794         * match.pd: Simplify mult where both arguments are 0 or 1.
2796 2019-06-06  Richard Biener  <rguenther@suse.de>
2798         * vr-values.c (vr_values::extract_range_from_ssa_name): Do not
2799         put equivalences on UNDEFINED ranges.
2800         * gimple-ssa-evrp.c (evrp_dom_walker::before_dom_children):
2801         Make sure to drop defs of stmts added during simplification
2802         to VARYING.
2804 2019-06-06  Richard Biener  <rguenther@suse.de>
2806         * tree-ssa-structalias.c: Include tree-cfg.h.
2807         (make_heapvar): Do not make heap vars artificial.
2808         (find_func_aliases_for_builtin_call): Handle stack allocation
2809         functions.
2810         (find_func_aliases): Delay processing of simple enough returns
2811         in non-IPA mode.
2812         (set_uids_in_ptset): Adjust.
2813         (find_what_var_points_to): Likewise.
2814         (solve_constraints): Do not dump points-to sets here.
2815         (compute_points_to_sets): Post-process return statements,
2816         amending the escaped solution.  Dump points-to sets afterwards.
2817         (ipa_pta_execute): Dump points-to sets.
2819 2019-06-06  Martin Liska  <mliska@suse.cz>
2821         PR web/87933
2822         * doc/install.texi: Fix HTML headers and
2823         titles for 'Installing GCC' pages.
2825 2019-06-06  Martin Liska  <mliska@suse.cz>
2827         * ipa-icf-gimple.h (dump_message_1): Remove.
2828         (dump_message): Likewise.
2829         (return_false_with_message_1): Print also file.
2830         (return_false_with_msg): Likewise.
2831         (return_with_result): Likewise.
2832         (return_with_debug): Likewise.
2833         * ipa-icf.c (sem_function::equals_private): Remove call
2834         to dump_message.
2836 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
2838         * config/i386/sse.md (define_mode_suffix vecmemsuffix): New.
2839         (define_insn "avx512dq_fpclass<mode><mask_scalar_merge_name>"): Enable
2840         memory operand for it.
2841         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>"): Ditto.
2843 2019-06-05  Martin Sebor  <msebor@redhat.com>
2845         * config/i386/i386-features.c (ix86_get_function_versions_dispatcher):
2846         Adjust quoting and hyphenation.
2847         * convert.c (convert_to_real_1): Same.
2848         * gcc.c (driver_wrong_lang_callback): Same.
2849         (driver::handle_unrecognized_options): Same.
2850         * gimple-ssa-nonnull-compare.c (do_warn_nonnull_compare): Same.
2851         * opts-common.c (cmdline_handle_error): Same.
2852         (read_cmdline_option): Same.
2853         * opts-global.c (complain_wrong_lang): Same.
2854         (print_ignored_options): Same.
2855         (handle_common_deferred_options): Same.
2856         * pretty-print.h: Same.
2857         * print-rtl.c (debug_bb_n_slim): Same.
2858         * sched-rgn.c (make_pass_sched_fusion): Same.
2859         * tree-cfg.c (verify_gimple_assign_unary): Same.
2860         (verify_gimple_label): Same.
2861         * tree-ssa-operands.c (verify_ssa_operands): Same.
2862         * varasm.c (do_assemble_alias): Same.
2863         (assemble_alias): Same.
2865 2019-06-05  Richard Henderson  <rth@twiddle.net>
2867         * config/alpha/alpha.c (direct_return): Move down after
2868         struct machine_function definition; use saved frame_size;
2869         return bool.
2870         (struct machine_function): Add sa_mask, sa_size, frame_size.
2871         (alpha_sa_mask, alpha_sa_size, compute_frame_size): Merge into ...
2872         (alpha_compute_frame_layout): ... new function.
2873         (TARGET_COMPUTE_FRAME_LAYOUT): New.
2874         (alpha_initial_elimination_offset): Use saved sa_size.
2875         (alpha_vms_initial_elimination_offset): Likewise.
2876         (alpha_vms_can_eliminate): Remove alpha_sa_size call.
2877         (alpha_expand_prologue): Use saved frame data.  Merge integer
2878         and fp register save loops.
2879         (alpha_expand_epilogue): Likewise.
2880         (alpha_start_function): Use saved frame data.
2881         * config/alpha/alpha-protos.h (direct_return): Update.
2882         (alpha_sa_size): Remove.
2884 2019-06-05  Eric Botcazou  <ebotcazou@adacore.com>
2886         * fold-const.c (extract_muldiv_1) <PLUS_EXPR>: Do not distribute a
2887         multiplication by a power-of-two value.
2888         (fold_plusminus_mult_expr): Use pow2p_hwi to spot a power-of-two value
2889         and turn the modulo operation into a masking operation.
2891 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
2893         PR debug/90733
2894         * var-tracking.c (vt_expand_loc_callback): Don't create raw subregs
2895         with VOIDmode inner operands.
2897 2019-06-05  Richard Biener  <rguenther@suse.de>
2899         PR middle-end/90726
2900         * tree-ssa-loop-niter.c (expand_simple_operations): Do not
2901         turn an expression graph into a tree.
2903 2019-06-05  Jakub Jelinek  <jakub@redhat.com>
2905         * omp-expand.c (struct omp_region): Add has_lastprivate_conditional
2906         member.
2907         (expand_parallel_call): If region->inner->has_lastprivate_conditional,
2908         treat it like explicit monotonic schedule modifier.
2909         (expand_omp_for): Initialize has_lastprivate_conditional.
2910         If fd.lastprivate_conditional != 0, treat it like explicit monotonic
2911         schedule modifier.
2913         * omp-low.c (lower_rec_input_clauses): For lastprivate conditional
2914         references, lookup in in hash map MEM_REF operand instead of the
2915         MEM_REF itself.
2916         (lower_omp_1): When looking for lastprivate conditional assignments,
2917         handle MEM_REFs with REFERENCE_TYPE operands.
2919         * omp-low.c (lower_rec_input_clauses): Force max_vf if is_simd and
2920         on privatization clauses OMP_CLAUSE_DECL is privatized by reference
2921         and references a VLA.  Handle references to non-VLAs if is_simd
2922         all privatization clauses like reductions.
2923         (lower_rec_input_clauses) <case do_private, case do_firstprivate>:
2924         If omp_is_reference, use always omp simd arrays and set
2925         DECL_VALUE_EXPR in that case, if lower_rec_simd_input_clauses
2926         fails, emit reference initialization.
2928 2019-06-05  Hongtao Liu  <hongtao.liu@intel.com>
2930         PR target/89803
2931         * config/i386/avx512dqintrin.h (_mm_mask_fpclass_ss_mask,
2932         _mm_mask_fpclass_sd_mask): New intrinsics.
2933         (_mm_fpclass_ss_mask, _mm_fpclass_sd_mask): Modified, use new builtins.
2934         * config/i386/i386-builtin.def
2935         (__builtin_ia32_fpclassss_mask, __builtin_ia32_fpclasssd_mask):
2936         New builtins.
2937         (__builtin_ia32_fpclassss, __builtin_ia32_fpclasssd): Deleted.
2938         * config/i386/i386-builtin-types.def (DEF_FUNCTION_TYPE (QI, V2DF, INT),
2939         DEF_FUNCTION_TYPE (QI, V4SF, INT)): Deleted.
2940         * config/i386/i386-expand.c (case QI_FTYPE_V4SF_INT,
2941         case QI_FTYPE_V2SF_INT): Ditto.
2942         * config/i386/sse.md
2943         (define_insn "avx512dq_vmfpclass<mode><mask_scalar_merge_name>):
2944         Extended to insnstructions with mask operands.
2946 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
2948         * config/rs6000/constraints.md (define_register_constraint "wp"):
2949         Delete.
2950         (define_register_constraint "wq"): Delete.
2951         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
2952         (rs6000_init_hard_regno_mode_ok): Adjust.
2953         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
2954         RS6000_CONSTRAINT_wp and RS6000_CONSTRAINT_wq.
2955         * config/rs6000/vsx.md (define_mode_attr VSr3): Delete.
2956         (define_mode_attr VSa): Delete.
2957         (define_mode_attr VSisa): New.
2958         (rest of file): Adjust.
2959         * doc/md.texi (Machine Constraints): Adjust.
2961 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
2963         * config/rs6000/rs6000.md (define_attr "isa"): Add p9kf and p9tf.
2964         (define_attr "enabled"): Handle those new isa values.
2966 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
2968         * config/rs6000/vsx.md (define_mode_attr VSr4): Delete.
2969         (define_mode_attr VSr5): Delete.
2970         (define_mode_attr VStype_sqrt): Delete.
2971         (define_mode_iterator VSX_SPDP): Delete.
2972         (define_mode_attr VS_spdp_res): Delete.
2973         (define_mode_attr VS_spdp_insn): Delete.
2974         (define_mode_attr VS_spdp_type): Delete.
2975         (*vsx_sqrt<mode>2): Adjust.
2976         (vsx_<VS_spdp_insn>): Delete, split to...
2977         (vsx_xscvdpsp): ... this.  New.  And...
2978         (vsx_xvcvspdp): ... this.  New.  And...
2979         (vsx_xvcvdpsp): ... this.  New.
2981 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
2983         * config/rs6000/rs6000.md (define_mode_attr sd): Add values for V4SF
2984         and V2DF.
2985         * config/rs6000/vsx.md (define_mode_attr VSs): Delete.
2986         (rest of file): Adjust.
2988 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
2990         * config/rs6000/vsx.md (vsx_<VS_spdp_insn>): Use wa instead of <VSa>.
2991         (vsx_extract_<mode>_var): Ditto.
2993 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
2995         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_TI
2996         with just "wa".
2998 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3000         * config/rs6000/constraints.md (define_register_constraint "ww"):
3001         Delete.
3002         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3003         (rs6000_init_hard_regno_mode_ok): Adjust.
3004         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3005         RS6000_CONSTRAINT_ww.
3006         * config/rs6000/rs6000.md: Adjust.
3007         * config/rs6000/vsx.md: Adjust.
3008         * doc/md.texi (Machine Constraints): Adjust.
3010 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3012         * config/rs6000/rs6000.md (SFDF, SFDF2): Adjust comments.
3013         (define_mode_attr sd): New.
3014         (define_mode_attr s): New.
3015         (define_mode_attr Ftrad): Delete.
3016         (define_mode_attr Fvsx): Delete.
3017         (define_mode_attr Fs): Delete.
3018         (rest of file): Use the new mode attributes.
3019         * config.rs6000/vsx.md: Use the new mode attributes.
3021 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3023         * config/rs6000/vsx.md: Replace all <VSa> that are used with VSX_W
3024         with just "wa".
3026 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3028         * config/rs6000/vsx.md (define_mode_attr VSr2): Delete.
3029         (rest of file): Replace all <VSa>, <VSr>, <VSr2>, and <VSr3> that are
3030         used with VSX_B, VSX_D, or VSX_F, with just "wa".
3032 2019-06-04  Bill Schmidt  <wschmidt@linux.ibm.com>
3034         PR target/78263
3035         * config/rs6000/altivec.h: Don't #define vector, pixel, bool for
3036         C++ with strict ANSI requirements.
3038 2019-06-04  Marc Glisse  <marc.glisse@inria.fr>
3040         * tree-ssa-loop-niter.c (number_of_iterations_ne): Skip
3041         computations when step is 1.
3043 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3045         * config/rs6000/constraints.md (define_register_constraint "wf"):
3046         Delete.
3047         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3048         (rs6000_init_hard_regno_mode_ok): Adjust.
3049         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3050         RS6000_CONSTRAINT_wf.
3051         * config/rs6000/rs6000.md: Adjust.
3052         * config/rs6000/vsx.md: Adjust.
3053         * doc/md.texi (Machine Constraints): Adjust.
3055 2019-06-04  Andrew Pinski  <apinski@marvell.com>
3057         * config/aarch64/aarch64.c (aarch64_asan_shadow_offset):
3058         Fix ILP32 value.
3060 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3062         * config/rs6000/constraints.md (define_register_constraint "wd"):
3063         Delete.
3064         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3065         (rs6000_init_hard_regno_mode_ok): Adjust.
3066         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3067         RS6000_CONSTRAINT_wd.
3068         * config/rs6000/rs6000.md: Adjust.
3069         * config/rs6000/vsx.md: Adjust.
3070         * doc/md.texi (Machine Constraints): Adjust.
3072 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3074         * config/rs6000/rs6000.md (define_mode_attr Fv2): Delete.
3075         (rest of file): Adjust.
3077 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3079         * config/rs6000/vsx.md (define_mode_attr VS_64reg): Delete.
3080         (*vsx_extract_<P:mode>_<VSX_D:mode>_load): Adjust.
3081         (vsx_splat_<mode>_reg): Adjust.
3083 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3085         * config/rs6000/constraints.md (define_register_constraint "ws"):
3086         Delete.
3087         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3088         (rs6000_init_hard_regno_mode_ok): Adjust.
3089         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3090         RS6000_CONSTRAINT_ws.
3091         * config/rs6000/rs6000.md: Adjust.
3092         * config/rs6000/vsx.md: Adjust.
3093         * doc/md.texi (Machine Constraints): Adjust.
3095 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3097         * config/rs6000/constraints.md (define_register_constraint "wv"):
3098         Delete.
3099         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3100         (rs6000_init_hard_regno_mode_ok): Adjust.
3101         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3102         RS6000_CONSTRAINT_wv.
3103         * config/rs6000/rs6000.md: Adjust.
3104         * config/rs6000/vsx.md: Adjust.
3105         * doc/md.texi (Machine Constraints): Adjust.
3107 2019-06-04  Segher Boessenkool  <segher@kernel.crashing.org>
3109         * config/rs6000/constraints.md (define_register_constraint "wi"):
3110         Delete.
3111         (define_register_constraint "wt"): Delete.
3112         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3113         (rs6000_init_hard_regno_mode_ok): Adjust.
3114         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3115         RS6000_CONSTRAINT_wi and RS6000_CONSTRAINT_wt.
3116         * config/rs6000/rs6000.md: Adjust.
3117         * config/rs6000/vsx.md: Adjust.
3118         * doc/md.texi (Machine Constraints): Adjust.
3120 2019-06-04  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3122         * config/aarch64/aarch64-protos.h (aarch64_asm_output_external): Remove
3123         const.
3124         * config/aarch64/aarch64.c (aarch64_asm_output_external): Call
3125         default_elf_asm_output_external.
3127 2019-06-04  Martin Liska  <mliska@suse.cz>
3129         * ipa-icf.c (INCLUDE_LIST): Remove.
3130         (sem_item_optimizer::execute): Remove call to init_wpa.
3131         * ipa-icf.h (init_wpa): Remove.
3133 2019-06-04  Jakub Jelinek  <jakub@redhat.com>
3135         * gimplify.c (gimplify_scan_omp_clauses): Don't sorry_at on lastprivate
3136         conditional on combined for simd.
3137         * omp-low.c (struct omp_context): Add combined_into_simd_safelen0
3138         member.
3139         (lower_rec_input_clauses): For gimple_omp_for_combined_into_p max_vf 1
3140         constructs, don't remove lastprivate_conditional_map, but instead set
3141         ctx->combined_into_simd_safelen0 and adjust hash_map, so that it points
3142         to parent construct temporaries.
3143         (lower_lastprivate_clauses): Handle ctx->combined_into_simd_safelen0
3144         like !ctx->lastprivate_conditional_map.
3145         (lower_omp_1) <case GIMPLE_ASSIGN>: If up->combined_into_simd_safelen0,
3146         use up->outer context instead of up.
3147         * omp-expand.c (expand_omp_for_generic): Perform cond_var bump even if
3148         gimple_omp_for_combined_p.
3149         (expand_omp_for_static_nochunk): Likewise.
3150         (expand_omp_for_static_chunk): Add forgotten cond_var bump that was
3151         probably moved over into expand_omp_for_generic rather than being copied
3152         there.
3154 2019-06-04  Martin Liska  <mliska@suse.cz>
3156         * value-prof.c (dump_histogram_value): Fix typo.
3157         (gimple_mod_subtract_transform): Likewise.
3159 2019-06-04  Richard Biener  <rguenther@suse.de>
3161         PR middle-end/90726
3162         * tree-chrec.c (chrec_contains_symbols): Add to visited.
3163         (tree_contains_chrecs): Likewise.
3164         (chrec_contains_symbols_defined_in_loop): Move here and avoid
3165         exponential behaivor from ...
3166         * tree-scalar-evolution.c (chrec_contains_symbols_defined_in_loop):
3167         ... here.
3168         (expression_expensive_p): Avoid exponential behavior and compute
3169         expanded size, rejecting any expansion.
3170         * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): Remove.
3171         (idx_contains_abnormal_ssa_name_p): Likewise.
3172         (contains_abnormal_ssa_name_p_1): New helper for walk_tree.
3173         (contains_abnormal_ssa_name_p): Simplify and use
3174         walk_tree_without_duplicates.
3176 2019-06-04  Richard Biener  <rguenther@suse.de>
3178         PR tree-optimization/90738
3179         Revert
3180         2019-06-03  Richard Biener  <rguenther@suse.de>
3182         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
3183         full reference tree and record in ref->ref.
3184         (vn_reference_lookup_3): Pass in original ref to
3185         ao_ref_init_from_vn_reference.
3186         (vn_reference_lookup): Likewise.
3187         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
3188         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3189         Handle non-decl bases in the original reference.
3191 2019-06-04  Martin Liska  <mliska@suse.cz>
3193         * ipa-icf.c (sem_item_optimizer::add_item_to_class): Count
3194         number of references.
3195         (sem_item_optimizer::do_congruence_step):
3196         (sem_item_optimizer::worklist_push): Dump how references
3197         a class has.
3198         (sem_item_optimizer::worklist_pop): Use heap.
3199         (sem_item_optimizer::process_cong_reduction): Likewise.
3200         * ipa-icf.h: Use fibonacci_heap insteam of std::list.
3202 2019-06-04  Martin Liska  <mliska@suse.cz>
3204         * ipa-icf.h (struct sem_usage_pair_hash): New.
3205         (sem_usage_pair_hash::hash): Likewise.
3206         (sem_usage_pair_hash::equal): Likewise.
3207         (struct sem_usage_hash): Likewise.
3208         * ipa-icf.c (sem_item::sem_item): Initialize
3209         referenced_by_count.
3210         (sem_item::add_reference): Register a reference
3211         in ref_map and not in target->usages.
3212         (sem_item::setup): Remove initialization of
3213         dead vectors.
3214         (sem_item::~sem_item): Remove usage of dead vectors.
3215         (sem_item::dump): Remove dump of references.
3216         (sem_item_optimizer::sem_item_optimizer): Initialize
3217         m_references.
3218         (sem_item_optimizer::read_section): Remove useless
3219         dump.
3220         (sem_item_optimizer::parse_funcs_and_vars): Likewise here.
3221         (sem_item_optimizer::build_graph): Pass m_references
3222         to ::add_reference.
3223         (sem_item_optimizer::verify_classes): Remove usage of dead
3224         vectors.
3225         (sem_item_optimizer::traverse_congruence_split): Return true
3226         when a class is split.
3227         (sem_item_optimizer::do_congruence_step_for_index): Use
3228         hash_map for look up of (sem_item *, index). That brings
3229         significant speed up.
3230         (sem_item_optimizer::do_congruence_step): Return true
3231         when a split is done.
3232         (congruence_class::is_class_used): Use referenced_by_count.
3234 2019-06-04  Alan Modra  <amodra@gmail.com>
3236         PR target/90689
3237         * config/rs6000/rs6000.c (rs6000_call_aix): Correct r271753 merge
3238         error.
3240 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
3242         * config/rs6000/rs6000.h (MASK_MFPGPR): Delete.
3243         * config/rs6000/rs6000.c (direct_move_p): Adjust.
3244         (rs6000_secondary_reload_simple_move): Adjust.
3245         (rs6000_opt_masks): Neuter the "mfpgpr" option.
3246         * config/rs6000/rs6000-c.c (rs6000_target_modify_macros): Adjust.
3247         * config/rs6000/rs6000-cpus.def (ISA_2_5_MASKS_EMBEDDED): Adjust
3248         comment.
3249         (power6x): Adjust.
3250         * config/rs6000/rs6000.md (floatsi<mode>2_lfiwax): Adjust.
3251         (floatunssi<mode>2_lfiwzx): Adjust.
3252         (fix_trunc<mode>si2_stfiwx): Adjust.
3253         (fixuns_trunc<mode>si2_stfiwx): Adjust.
3254         * config/rs6000/rs6000.opt (mno-mfpgpr): New.
3255         (mfpgpr): Mark as deprecated.
3256         * doc/extend.texi (PowerPC Function Attributes): Delete mfpgpr.
3257         (Basic PowerPC Built-in Functions Available on ISA 2.05): Adjust.
3258         * doc/invoke.texi (RS/6000 and PowerPC Options): Delete -mmfpgpr.
3260 2019-06-03  Segher Boessenkool  <segher@kernel.crashing.org>
3262         * config/rs6000/constraints.md (define_register_constraint "wg"):
3263         Delete.
3264         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
3265         RS6000_CONSTRAINT_wg.
3266         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
3267         (rs6000_init_hard_regno_mode_ok): Adjust.
3268         * config/rs6000/rs6000.md (*mov<mode>_softfloat32, *movdi_internal64):
3269         Delete "wg" alternatives.
3270         * doc/md.texi (Machine Constraints): Adjust.
3272 2019-06-03  Alan Modra  <amodra@gmail.com>
3274         * bb-reorder.c (copy_bb_p): Don't overflow size calculation.
3275         (get_uncond_jump_length): Assert length less than INT_MAX and
3276         non-negative.
3278 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
3280         PR middle-end/64242
3281         * builtins.c (expand_builtin_longjmp): Add frame clobbers and schedule
3282         block.
3283         (expand_builtin_nonlocal_goto): Likewise.
3285 2019-06-03  Szabolcs Nagy  <szabolcs.nagy@arm.com>
3287         * config/aarch64/aarch64-protos.h (aarch64_asm_output_alias): Declare.
3288         (aarch64_asm_output_external): Declare.
3289         * config/aarch64/aarch64.c (aarch64_asm_output_variant_pcs): New.
3290         (aarch64_declare_function_name): Call aarch64_asm_output_variant_pcs.
3291         (aarch64_asm_output_alias): New.
3292         (aarch64_asm_output_external): New.
3293         * config/aarch64/aarch64.h (ASM_OUTPUT_DEF_FROM_DECLS): Define.
3294         (ASM_OUTPUT_EXTERNAL): Define.
3296 2019-06-03  Aldy Hernandez  <aldyh@redhat.com>
3297         * tree-vrp.h (value_range_base::nonzero_p): New.
3298         (value_range_base::set_nonnull): Rename to...
3299         (value_range_base::set_nonzero): ...this.
3300         (value_range_base::set_null): Rename to...
3301         (value_range_base::set_zero): ...this.
3302         (value_range::set_nonnull): Remove.
3303         (value_range::set_null): Remove.
3304         * tree-vrp.c (range_is_null): Remove.
3305         (range_is_nonnull): Remove.
3306         (extract_range_from_binary_expr): Use value_range_base::*zero_p
3307         instead of range_is_*null.
3308         (extract_range_from_unary_expr): Same.
3309         (value_range_base::set_nonnull): Rename to...
3310         (value_range_base::set_nonzero): ...this.
3311         (value_range::set_nonnull): Remove.
3312         (value_range_base::set_null): Rename to...
3313         (value_range_base::set_zero): ...this.
3314         (value_range::set_null): Remove.
3315         (extract_range_from_binary_expr): Rename set_*null uses to
3316         set_*zero.
3317         (extract_range_from_unary_expr): Same.
3318         (union_helper): Same.
3319         * vr-values.c (get_value_range): Use set_*zero instead of
3320         set_*null.
3321         (vr_values::extract_range_from_binary_expr): Same.
3322         (vr_values::extract_range_basic): Same.
3324 2019-06-03  Wilco Dijkstra  <wdijkstr@arm.com>
3326         PR driver/90684
3327         * opts.c (parse_and_check_align_values): Allow 4 alignment values.
3329 2019-06-03  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
3331         * config/aarch64/iterators.md (MAX_OPP): New code attr.
3332         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Rename to...
3333         (aarch64_<su>abd<mode>_3): ... This.
3334         (<sur>sadv16qi): Add TARGET_DOTPROD expansion.
3336 2019-06-03  Richard Biener  <rguenther@suse.de>
3338         * tree-ssa-sccvn.c (ao_ref_init_from_vn_reference): Get original
3339         full reference tree and record in ref->ref.
3340         (vn_reference_lookup_3): Pass in original ref to
3341         ao_ref_init_from_vn_reference.
3342         (vn_reference_lookup): Likewise.
3343         * tree-ssa-sccvn.h (ao_ref_init_from_vn_reference): Adjust prototype.
3344         * tree-ssa-alias.c (nonoverlapping_component_refs_of_decl_p):
3345         Handle non-decl bases in the original reference.
3347 2019-06-03  Martin Liska  <mliska@suse.cz>
3349         * doc/generic.texi: Remove Java Trees.
3351 2019-06-03  Martin Liska  <mliska@suse.cz>
3353         * fold-const.c (operand_equal_p): Fix typo as compare_tree_int
3354         returns 0 when operands are equal.
3356 2019-06-03  Richard Biener  <rguenther@suse.de>
3358         PR tree-optimization/90716
3359         * tree-loop-distribution.c (destroy_loop): Process blocks in
3360         correct order.
3362 2019-06-03  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
3364         PR target/88837
3365         * vector-builder.h (vector_builder::count_dups): New method.
3366         * config/aarch64/aarch64-protos.h (aarch64_expand_sve_vector_init):
3367         Declare prototype.
3368         * config/aarch64/aarch64/sve.md (aarch64_sve_rev64<mode>): Use @.
3369         (vec_init<mode><Vel>): New pattern.
3370         * config/aarch64/aarch64.c (emit_insr): New function.
3371         (aarch64_sve_expand_vector_init_handle_trailing_constants): Likewise.
3372         (aarch64_sve_expand_vector_init_insert_elems): Likewise.
3373         (aarch64_sve_expand_vector_init_handle_trailing_same_elem): Likewise.
3374         (aarch64_sve_expand_vector_init): Define two overloaded functions.
3376 2019-06-03  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
3378         PR tree-optimization/90681
3379         * internal-fn.c (mask_load_direct): Mark as non-vectorizable again.
3380         * tree-vect-slp.c (vect_build_slp_tree_1): Add masked loads as a
3381         special case for SLP, but fail on non-groupped loads.
3383 2019-06-03  Martin Liska  <mliska@suse.cz>
3385         * cfg.c (debug): Use TDF_DETAILS for debug and
3386         print edge info only once.
3388 2019-06-02  Thomas Koenig  <tkoenig@gcc.gnu.org>
3390         PR fortran/90539
3391         * predict.def (PRED_FORTRAN_CONTIGUOUS): New predictor.
3393 2019-06-01  Martin Sebor  <msebor@redhat.com>
3395         PR middle-end/90694
3396         * tree-pretty-print.c (dump_generic_node): Add parentheses.
3398 2019-05-31  Jan Hubicka  <jh@suse.cz>
3400         * alias.c: Include ipa-utils.h.
3401         (get_alias_set): Try to complete ODR type via ODR type hash lookup.
3402         * ipa-devirt.c (prevailing_odr_type): New.
3403         * ipa-utils.h (previaling_odr_type): Declare.
3405 2019-05-31  H.J. Lu  <hongjiu.lu@intel.com>
3406             Hongtao Liu  <hongtao.liu@intel.com>
3408         PR target/89355
3409         * config/i386/i386-features.c (rest_of_insert_endbranch): Remove
3410         NOTE_INSN_DELETED_LABEL check.
3412 2019-05-31  Prachi Godbole  <prachi.godbole@imgtec.com>
3413             Robert Suchanek  <robert.suchanek@mips.com>
3415         * config/mips/mips.c (mips_expand_builtin_insn): Swap the 1st
3416         and 3rd operands of the fmadd/fmsub/maddv builtin.
3418 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
3420         * tree.h (OMP_CLAUSE__CONDTEMP__ITER): Define.
3421         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
3422         on OMP_SIMD if not nested inside of worksharing loop that also has
3423         lastprivate conditional clause for the same decl.
3424         (gimplify_omp_for): Add _condtemp_ clauses to OMP_SIMD if needed.
3425         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_ also
3426         on simd.
3427         (lower_rec_input_clauses): Likewise.  Handle lastprivate conditional
3428         on simd construct.
3429         (lower_lastprivate_conditional_clauses): Handle lastprivate conditional
3430         on simd construct.
3431         (lower_lastprivate_clauses): Likewise.
3432         (lower_omp_sections): Call lower_lastprivate_conditional_clauses before
3433         calling lower_rec_input_clauses.
3434         (lower_omp_for): Likewise.
3435         (lower_omp_1): Use first rather than second OMP_CLAUSE__CONDTEMP_
3436         clause on simd construct.
3437         * omp-expand.c (expand_omp_simd): Initialize cond_var if
3438         OMP_CLAUSE__CONDTEMP_ clause is present.
3440         * omp-low.c (lower_rec_simd_input_clauses): Set TREE_THIS_NOTRAP on
3441         ivar and lvar.
3443 2019-05-31  Xiong Hu Luo  <luoxhu@linux.ibm.com>
3445         PR c/43673
3446         * c-format.c (print_char_table, scanf_char_table): Replace BADLEN with
3447         TEX_D32, TEX_D64 or TEX_D128.
3449 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
3451         * match.pd (~(vec?cst1:cst2)): New transformation.
3453 2019-05-31  Marc Glisse  <marc.glisse@inria.fr>
3455         * match.pd (X/[ex]D<Y/[ex]D): Handle negative denominator.
3456         ((size_t)(A /[ex] B) CMP C): New transformation.
3458 2019-05-31  Richard Sandiford  <richard.sandiford@arm.com>
3460         * doc/md.texi: Document define_insn_and_rewrite.
3461         * rtl.def (DEFINE_INSN_AND_REWRITE): New rtx code.
3462         * gensupport.c (queue_elem): Update comment.
3463         (replace_operands_with_dups): New function.
3464         (gen_rewrite_sequence): Likewise.
3465         (process_rtx): Handle DEFINE_INSN_AND_REWRITE.
3466         * read-rtl.c (apply_subst_iterator): Likewise.
3467         (add_condition_to_rtx, named_rtx_p): Likewise.
3468         (rtx_reader::read_rtx_operand): Likewise.
3469         * config/aarch64/aarch64-sve.md
3470         (while_ult<GPI:mode><PRED_ALL:mode>_cc): Rename to...
3471         (*while_ult<GPI:mode><PRED_ALL:mode>_cc): ...this and use
3472         define_insn_and_rewrite.
3473         (*cond_<optab><mode>_any): Turn into define_insn_and_rewrites.
3474         Remove separate define_split.
3476 2019-05-31  Jan Hubicka  <jh@suse.cz>
3478         * tree-ssa-alias.c (type_has_components_p): New function.
3479         (aliasing_component_refs_p): Use it.
3481 2019-05-31  Martin Liska  <mliska@suse.cz>
3483         * gdbhooks.py: Add const_tree to TreePrinter.
3485 2019-05-31  Thomas De Schampheleire  <thomas.de_schampheleire@nokia.com>
3487         PR debug/86964
3488         * common.opt (feliminate-unused-debug-symbols): Enable by default.
3489         * doc/invoke.texi (Debugging Options): Document new default of
3490         -feliminate-unused-debug-symbols and remove restriction to 'stabs'.
3492 2019-05-31  Jakub Jelinek  <jakub@redhat.com>
3494         PR tree-optimization/90671
3495         * tree-ssa-threadupdate.c (ssa_create_duplicates): If
3496         template_block used to be empty on the first call, don't use
3497         gsi_split_seq_after and gsi_insert_seq_after, but remember whole
3498         seq with bb_seq and set it with set_bb_seq.
3500 2019-05-31  Iain Sandoe  <iain@sandoe.co.uk>
3502         * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
3504 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
3505             Michael Meissner  <meissner@linux.ibm.com>
3507         * config/rs6000/predicates.md (pcrel_address): New define_predicate.
3508         (prefixed_mem_operand): Likewise.
3509         (non_prefixed_mem_operand): Likewise.
3510         * config/rs6000/rs6000-protos.h (rs6000_prefixed_address): New
3511         prototype.
3512         * config/rs6000/rs6000.c (print_operand_address): Handle
3513         PC-relative addresses.
3514         (mode_supports_prefixed_address_p): New function.
3515         (rs6000_prefixed_address): New function.
3516         * config/rs6000/rs6000.h (SYMBOL_FLAG_PCREL): New #define.
3517         (SYMBOL_REF_PCREL_P): Likewise.
3519 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
3521         * gimplify.c (enum gimplify_omp_var_data): Add GOVD_CONDTEMP.
3522         (gimplify_adjust_omp_clauses_1): Handle GOVD_CONDTEMP.
3523         (gimplify_omp_for): If worksharing loop with lastprivate conditional
3524         is nested inside of parallel region, add _condtemp_ clause to both.
3525         * tree-nested.c (convert_nonlocal_omp_clauses,
3526         convert_local_omp_clauses): Ignore OMP_CLAUSE__CONDTEMP_ instead of
3527         assertion failure.
3528         * omp-general.h (struct omp_for_data): Add have_pointer_condtemp
3529         member.
3530         * omp-general.c (omp_extract_for_data): Compute it.
3531         * omp-low.c (scan_sharing_clauses): Handle OMP_CLAUSE__CONDTEMP_.
3532         (lower_rec_input_clauses): Likewise.
3533         (lower_lastprivate_conditional_clauses): If OMP_CLAUSE__CONDTEMP_
3534         clause is already present, just add one further one after it.
3535         (lower_lastprivate_clauses): Handle cond_ptr with array type.
3536         (lower_send_shared_vars): Clear _condtemp_ vars.
3537         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle target data like critical
3538         or section or taskgroup.
3539         * omp-expand.c (determine_parallel_type): Disallow combining only if
3540         first OMP_CLAUSE__CONDTEMP_ has pointer type.  Disallow combining
3541         of parallel sections if OMP_CLAUSE__CONDTEMP_ is present.
3542         (expand_omp_for_generic, expand_omp_for_static_nochunk,
3543         expand_omp_for_static_chunk, expand_omp_for): Use
3544         fd->have_pointer_condtemp instead of fd->lastprivate_conditional to
3545         determine if a special set of API routines are needed and if condtemp
3546         needs to be initialized, while always initialize cond_var if
3547         fd->lastprivate_conditional is non-zero.
3549 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
3550             Michael Meissner  <meissner@linux.ibm.com>
3552         * config/rs6000/constraints.md (eI): New constraint.
3553         * config/rs6000/predicates.md (cint34_operand): New predicate.
3554         * config/rs6000/rs6000.h (SIGNED_16BIT_OFFSET_P): New #define.
3555         (SIGNED_34BIT_OFFSET_P): Likewise.
3556         * doc/md.texi (eI): Document constraint.
3558 2019-05-30  Sylvia Taylor  <sylvia.taylor@arm.com>
3560         * config/aarch64/aarch64-sve.md (*fabd<mode>3): New.
3562 2019-05-30  Bill Schmidt  <wschmidt@linux.ibm.com>
3563             Michael Meissner  <meissner@linux.ibm.com>
3565         * rs6000-cpus.def (OTHER_FUSION_MASKS): New #define.
3566         (ISA_3_0_MASKS_SERVER): Mask off OTHER_FUSION_MASKS.
3567         (ISA_3_0_MASKS_IEEE): Remove OPTION_MASK_DIRECT_MOVE.
3568         (ISA_FUTURE_MASKS_SERVER): Add OPTION_MASK_PREFIXED_ADDR.
3569         (OTHER_FUTURE_MASKS): Likewise.
3570         (POWERPC_MASKS): Likewise.
3571         * rs6000.c (rs6000_option_override_internal): Error if -mpcrel is
3572         specified without -mprefixed-addr or -mcpu=future.  Error if
3573         -mprefixed-addr is specified without -mcpu=future.
3574         (rs6000_opt_masks): Add entry for prefixed-addr.
3575         * rs6000.opt (mprefixed-addr): New option.
3577 2019-05-30  Sam Tebbs  <sam.tebbs@arm.com>
3579         * aarch64/aarch64.c (aarch64_post_cfi_startproc): Add 
3580         cfun->is_thunk check.
3582 2019-05-30  Jakub Jelinek  <jakub@redhat.com>
3584         * tree-predcom.c (is_inv_store_elimination_chain): Fix a typo - lenght
3585         to length.
3587 2019-05-30  Martin Liska  <mliska@suse.cz>
3589         * gdbinit.in: Fix 'ptc' command.  Add trt
3590         that prints TREE_TYPE($).
3592 2019-05-29  Bill Schmidt  <wschmidt@linux.ibm.com>
3593             Alan Modra  <amodra@gmail.com>
3595         * config/rs6000/rs6000.c (rs6000_call_template_1): Handle pcrel
3596         calls here...
3597         (rs6000_indirect_call_template_1): ...and here.
3598         (rs6000_pltseq_template): Handle plt_pcrel34.  Rework tocsave,
3599         plt16_ha, plt16_lo, mtctr indirect calls.  Use
3600         rs6000_pltseq_enum.
3601         (rs6000_decl_ok_for_sibcall): New function.
3602         (rs6000_function_ok_for_sibcall): Refactor.
3603         (rs6000_longcall_ref): Use UNSPEC_PLT_PCREL when pcrel.
3604         (rs6000_call_aix): Don't emit toc restore rtl for indirect calls
3605         when pcrel.  Reorganize.
3606         (rs6000_sibcall_aix): Don't add r2 to function usage when pcrel.
3607         * rs6000.h (rs6000_pltseq_enum): New enum.
3608         * rs6000.md (UNSPEC_PLT_PCREL): New unspec.
3609         (*pltseq_tocsave): Use rs6000_pltseq_enum.
3610         (*pltseq_plt16_ha): Likewise.
3611         (*pltseq_plt16_lo): Likewise.
3612         (*pltseq_mtctr): Likewise.
3613         (*pltseq_plt_pcrel): New insn.
3614         (*call_local_aix): Handle @notoc calls.
3615         (*call_value_local_aix): Likewise.
3616         (*call_nonlocal_aix): Adjust lengths for pcrel calls.
3617         (*call_value_nonlocal_aix): Likewise.
3618         (*call_indirect_pcrel): New insn.
3619         (*call_value_indirect_pcrel): Likewise.
3622 2019-05-29  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3624         * config/i386/sse.md (*save_multiple<mode>): Rename from
3625         save_multiple<mode>.
3626         (*restore_multiple<mode>): Rename from restore_multiple<mode>.
3627         (*restore_multiple_and_return<mode>): Rename from
3628         restore_multiple_and_return<mode>.
3629         (*restore_multiple_leave_return<mode>): Rename from
3630         restore_multiple_leave_return<mode>.
3632 2019-05-29  Yoshinori Sato  <ysato@users.sourceforge.jp>
3634         * config.gcc (rx-*-linux*): New target.
3635         * config/rx/elf.opt: New file.
3636         * config/rx/linux.h: Likewise.
3637         * config/rx/t-linux: Likewise.
3638         * config/rx/rx.c (TARGET_SAVE_ACC_REGISTER): If not defined,
3639         make it zero.
3640         * config/rx/rx.h (ASM_APP_ON): Allow to be overridden.
3641         (ASM_APP_OFF): Likewise.
3642         * config/rx/rx.opt: Drop -msim and -mas100-syntax, they were
3643         moved elsewhere.
3645 2019-05-29  Jan Hubicka  <jh@suse.cz>
3647         * tree-ssa-alias.c (same_type_for_tbaa): Return ture if main
3648         variants are pointer equivalent.
3650 2019-05-29  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
3652         * config/aarch64/aarch64-c.c: Added TARGET_SVE2.
3653         * config/aarch64/aarch64-sve2.md: New file.
3654         (<u>avg<mode>3_floor): New pattern.
3655         (<u>avg<mode>3_ceil): Likewise.
3656         (*<sur>h<addsub><mode>): Likewise.
3657         * config/aarch64/aarch64.h: Added AARCH64_ISA_SVE2 and TARGET_SVE2.
3658         * config/aarch64/aarch64.md: Include aarch64-sve2.md.
3660 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
3662         PR bootstrap/90543
3663         * optc-save-gen.awk: In cl_optimization_print, use correct condition
3664         for var_opt_string printing.  In cl_optimization_print_diff, print
3665         (null) instead of invoking undefined behavior if one of the
3666         var_opt_string pointers is NULL and use && instead of first || in the
3667         guarding condition.  For var_target_other options, handle const char *
3668         target variables similarly to const char * optimize node variables.
3670 2019-05-29  Sam Tebbs  <sam.tebbs@arm.com>
3672         * config/aarch64/aarch64-builtins.c (aarch64_builtins): Add
3673         AARCH64_PAUTH_BUILTIN_AUTIB1716 and AARCH64_PAUTH_BUILTIN_PACIB1716.
3674         * config/aarch64/aarch64-builtins.c (aarch64_init_pauth_hint_builtins):
3675         Add autib1716 and pacib1716 initialisation.
3676         * config/aarch64/aarch64-builtins.c (aarch64_expand_builtin): Add checks
3677         for autib1716 and pacib1716.
3678         * config/aarch64/aarch64-protos.h (aarch64_key_type,
3679         aarch64_post_cfi_startproc): Define.
3680         * config/aarch64/aarch64-protos.h (aarch64_ra_sign_key): Define extern.
3681         * config/aarch64/aarch64.c (aarch64_handle_standard_branch_protection,
3682         aarch64_handle_pac_ret_protection): Set default sign key to A.
3683         * config/aarch64/aarch64.c (aarch64_expand_epilogue,
3684         aarch64_expand_prologue): Add check for b-key.
3685         * config/aarch64/aarch64.c (aarch64_ra_sign_key,
3686         aarch64_post_cfi_startproc, aarch64_handle_pac_ret_b_key): Define.
3687         * config/aarch64/aarch64.h (TARGET_ASM_POST_CFI_STARTPROC): Define.
3688         * config/aarch64/aarch64.c (aarch64_pac_ret_subtypes): Add "b-key".
3689         * config/aarch64/aarch64.md (unspec): Add UNSPEC_AUTIA1716,
3690         UNSPEC_AUTIB1716, UNSPEC_AUTIASP, UNSPEC_AUTIBSP, UNSPEC_PACIA1716,
3691         UNSPEC_PACIB1716, UNSPEC_PACIASP, UNSPEC_PACIBSP.
3692         * config/aarch64/aarch64.md (do_return): Add check for b-key.
3693         * config/aarch64/aarch64.md (<pauth_mnem_prefix>sp): Replace
3694         pauth_hint_num_a with pauth_hint_num.
3695         * config/aarch64/aarch64.md (<pauth_mnem_prefix>1716): Replace
3696         pauth_hint_num_a with pauth_hint_num.
3697         * config/aarch64/aarch64.opt (msign-return-address=): Deprecate.
3698         * config/aarch64/iterators.md (PAUTH_LR_SP): Add UNSPEC_AUTIASP,
3699         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
3700         * config/aarch64/iterators.md (PAUTH_17_16): Add UNSPEC_AUTIA1716,
3701         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716.
3702         * config/aarch64/iterators.md (pauth_mnem_prefix): Add UNSPEC_AUTIA1716,
3703         UNSPEC_AUTIB1716, UNSPEC_PACIA1716, UNSPEC_PACIB1716, UNSPEC_AUTIASP,
3704         UNSPEC_AUTIBSP, UNSPEC_PACIASP, UNSPEC_PACIBSP.
3705         * config/aarch64/iterators.md (pauth_hint_num_a): Replace
3706         UNSPEC_PACI1716 and UNSPEC_AUTI1716 with UNSPEC_PACIA1716 and
3707         UNSPEC_AUTIA1716 respectively.
3708         * config/aarch64/iterators.md (pauth_hint_num_a): Rename to pauth_hint_num
3709         and add UNSPEC_PACIBSP, UNSPEC_AUTIBSP, UNSPEC_PACIB1716, UNSPEC_AUTIB1716.
3710         * doc/invoke.texi (-mbranch-protection): Add b-key type.
3711         * config/aarch64/aarch64-bti-insert.c (aarch64_pac_insn_p): Rename
3712         UNSPEC_PACISP to UNSPEC_PACIASP and UNSPEC_PACIBSP.
3714 2019-05-29  Jakub Jelinek  <jakub@redhat.com>
3716         * gimplify.c (struct gimplify_omp_ctx): Add clauses member.
3717         (gimplify_scan_omp_clauses): Initialize ctx->clauses.
3718         (gimplify_adjust_omp_clauses_1): Transform lastprivate conditional
3719         explicit clause on combined parallel into implicit shared clause.
3720         (gimplify_adjust_omp_clauses): Move lastprivate conditional clause
3721         and firstprivate if the decl has one too from combined parallel to
3722         the worksharing construct.
3724 2019-05-28  Bill Schmidt  <wschmidt@linux.ibm.com>
3725             Michael Meissner  <meissner@linux.ibm.com>
3727         * config/rs6000/rs6000-cpus.def (OTHER_FUTURES_MASK): New #define.
3729 2019-05-28  Michael Meissner  <meissner@linux.ibm.com>
3731         * rtl.h (LABEL_REF_P): New #define.
3733 2019-05-28  John David Anglin  <danglin@gcc.gnu.org>
3735         * config/pa/pa.c (hppa_profile_hook): Remove offset adjustment.
3737 2019-05-28  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
3739         * internal-fn.c: Marked mask_load_direct as vectorizable.
3740         * tree-data-ref.c (data_ref_compare_tree): Fixed comment typo.
3741         * tree-vect-data-refs.c (can_group_stmts_p): Allow masked loads to be
3742         combined even if masks different with allow_slp_p param.
3743         (vect_analyze_data_ref_accesses): Mark SLP only vectorizable groups.
3744         * tree-vect-loop.c (vect_dissolve_slp_only_groups): New function to
3745         dissolve SLP-only vectorizable groups when SLP has been discarded.
3746         (vect_analyze_loop_2): Call vect_dissolve_slp_only_groups when needed.
3747         * tree-vect-slp.c (vect_get_and_check_slp_defs): Check masked loads
3748         masks.
3749         (vect_build_slp_tree_1): Fixed comment typo.
3750         (vect_build_slp_tree_2): Include masks from masked loads in SLP tree.
3751         * tree-vect-stmts.c (vectorizable_load): Allow vectorizaion of masked
3752         loads for SLP only.
3753         * tree-vectorizer.h (_stmt_vec_info): Added flag for SLP-only
3754         vectorizable.
3755         * tree-vectorizer.c (vec_info::new_stmt_vec_info): Likewise.
3757 2019-05-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3759         * config/alpha/alpha.c [TARGET_ABI_OSF] (alpha_output_mi_thunk_osf):
3760         Remove obsolete use_thunk reference.
3761         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
3762         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
3763         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
3764         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
3765         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
3766         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
3767         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
3768         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
3769         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
3771 2019-05-28  Nathan Sidwell  <nathan@acm.org>
3773         * tree.h (IDENTIFIER_ANON_P): New.
3774         (anon_aggrname_format, anon_aggname_p): Don't declare.
3775         (make_anon_name): Declare.
3776         * lto-streamer-out.c (DFS::DFS_write_tree_body): Use IDENTIFIER_ANON_P.
3777         (hash_tree): Likewise.
3778         * tree-streamer-out.c (write_ts_decl_minimal_tree): Likewise.
3779         * tree.c (anon_aggrname_p, anon_aggrname_format): Delete.
3780         (anon_cnt, make_anon_name): New.
3782 2019-05-28  Martin Liska  <mliska@suse.cz>
3784         PR other/90315
3785         * opts-global.c (decode_options): Print help for all
3786         help_option_arguments.
3787         * opts.c (print_help): Add new argument.
3788         (common_handle_option): Remember all values into
3789         help_option_arguments.
3790         * opts.h (print_help): Add new argument.
3792 2019-05-28  Martin Liska  <mliska@suse.cz>
3794         PR ipa/90555
3795         * ipa-icf-gimple.c (func_checker::compare_loops): New function.
3796         * ipa-icf-gimple.h (func_checker::compare_loops): Likewise.
3797         (func_checker::compare_bb): Call compare_loops.
3799 2019-05-27  Jakub Jelinek  <jakub@redhat.com>
3801         * gimplify.c (gimplify_scan_omp_clauses): Allow lastprivate conditional
3802         on sections construct.
3803         * omp-low.c (lower_lastprivate_conditional_clauses): Handle sections
3804         construct.
3805         (lower_omp_sections): Handle lastprivate conditional.
3806         (lower_omp_1) <case GIMPLE_ASSIGN>: Handle sections construct with
3807         lastprivate_conditional_map.
3808         * omp-expand.c (expand_omp_sections): Handle lastprivate conditional.
3810         * omp-low.c (lower_omp_1) <case GIMPLE_ASSIGN>: Look through ordered,
3811         critical, taskgroup and section regions when looking for a region
3812         with non-NULL lastprivate_conditional_map.
3814 2019-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3816         * config/i386/i386.c (ix86_gen_add3): Remove indirect function.
3817         (*ix86_gen_sub3): Ditto.
3818         (*ix86_gen_sub3_carry): Ditto.
3819         (*ix86_gen_one_cmpl2): Ditto.
3820         (*ix86_gen_andsp): Ditto.
3821         (ix86_init_large_pic_reg): Use gen_add2_insn instead of ix86_gen_add3.
3822         (gen_and2_insn): New static function.
3823         (ix86_expand_prologue): Use gen_and2_insn instead of ix86_gen_andsp.
3824         Use gen_add3_insn instead of ix86_gen_add3.
3825         (ix86_expand_split_stack_prologue): Use gen_add2_insn
3826         instead of ix86_gen_add3.
3827         (legitimize_tls_address): Use gen_add2_insn instead of ix86_gen_add3.
3828         Use gen_sub3_insn instead of ix86_gen_sub3.
3829         * config/i386-expand.c (ix86_split_long_move): Use gen_add2_insn
3830         instead of ix86_gen_add3.
3831         (ix86_expand_strlensi_unroll_1): Use gen_add2_insn instead of
3832         ix86_gen_add3.  Use gen_sub3_insn instead of ix86_gen_sub3.
3833         (construct_plt_address): Use gen_add2_insn instead of ix86_gen_add3.
3834         * config/i386/i386-options.c (ix86_option_override_internal):
3835         Do not initialize ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
3836         ix86_gen_one_cmpl2 and ix86_gen_andsp.
3838 2019-05-27  Eric Botcazou  <ebotcazou@adacore.com>
3840         * dwarf2out.c (resolve_args_picking_1): Deal with DW_OP_GNU_addr_index
3841         and DW_OP_GNU_const_index opcodes.
3843 2019-05-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3845         * config/i386/i386.h (STACK_SIZE_MODE): Define.
3847 2019-05-27  Richard Biener  <rguenther@suse.de>
3849         PR tree-optimization/90637
3850         * tree-ssa-sink.c (statement_sink_location): Honor the
3851         computed sink location for single-uses.
3853 2019-05-27  Richard Biener  <rguenther@suse.de>
3855         PR middle-end/90610
3856         * match.pd (vec_perm): Avoid clobbering op0 when not generating
3857         a bit-insert.
3859 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3861         * config/i386/i386.md (@sub<mode>3_carry): Rename
3862         from sub<mode>3_carry.
3863         (@leave_<mode>): New expander.
3864         (*leave): Rename from leave.
3865         (*leave_rex64): Rename from leave_rex64.
3866         (@monitorx_<mode>): Rename from monitorx_<mode>.
3867         (@clzero_<mode>): Rename from clzero_<mode>.
3868         * config/i386/sse.md (@sse3_monitor_<mode>): Rename
3869         from sse3_monitor_<mode>.
3870         * config/i386/i386.c (ix86_gen_sub3_carry): Remove indirect function.
3871         (*ix86_gen_leave): Ditto.
3872         (*ix86_gen_monitor): Ditto.
3873         (*ix86_gen_monitorx): Ditto.
3874         (*ix86_gen_clzero): Ditto.
3875         (ix86_emit_leave): Use gen_leave instead of ix86_gen_leave.
3876         * config/i386/i386-expand.c (ix86_expand_strlensi_unroll_1):
3877         Use gen_sub3_carry instead of ix86_gen_sub3_carry.
3878         (ix86_expand_builtin) <case IX86_BUILTIN_MONITOR>:
3879         Use gen_sse3_monitor instead of ix86_gen_monitor.
3880         <case IX86_BUILTIN_MONITORX>: Use gen_monitorx
3881         instead of ix86_gen_monitorx.
3882         <case IX86_BUILTIN_CLZERO>: Use gen_clzero
3883         instead of ix86_gen_clzero.
3884         * config/i386/i386-options.c (ix86_option_override_internal):
3885         Do not initialize ix86_gen_leave, ix86_gen_sub3_carry,
3886         ix86_gen_monitor, ix86_gen_monitorx and ix86_gen_clzero.
3888 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3890         * config/i386/i386.md (@tls_global_dynamic_64_<mode>):
3891         Rename from tls_global_dynamic_64_<mode>.
3892         (@tls_local_dynamic_base_64_<mode>): Rename from
3893         tls_local_dynamic_base_64_<mode>.
3894         * config/i386/i386.c (*ix86_gen_tls_global_dynamic_64):
3895         Remove indirect function.
3896         (*ix86_gen_tls_local_dynamic_base_64): Ditto.
3897         (legitimize_tls_address): Use gen_tls_global_dynamic_64 function
3898         instead of ix86_gen_tls_global_dynamic_64.
3899         Use gen_tls_local_dynamic_base_64 instead of
3900         ix86_gen_tls_local_dynamic_base_64.
3901         * config/i386/i386-options.c (ix86_option_override_internal):
3902         Do not initialize ix86_gen_tls_global_dynamic_64 and
3903         ix86_gen_tls_local_dynamic_base_64.
3905 2019-05-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
3907         * config/i386/i386.md (@pro_epilogue_adjust_stack_add_<mode>)
3908         Rename from pro_epilogue_adjust_stack_<mode>_add.
3909         (@pro_epilogue_adjust_stack_sub_<mode>)
3910         Rename from pro_epilogue_adjust_stack_<mode>_sub.
3911         (@allocate_stack_worker_probe_<mode>):
3912         Rename from allocate_stack_worker_probe_<mode>.
3913         (allocate_stack): Use gen_allocate_stack_worker_probe.
3914         (probe_stack): Use gen_probe_stack_1.
3915         (@probe_stack_1_<mode>): Rename from probe_stack_<mode>.
3916         (@adjust_stack_and_probe_<mode>): Rename from
3917         adjust_stack_and_probe<mode>.
3918         (@probe_stack_range_<mode>): Rename from probe_stack_range<mode>.
3919         (stack_protect_set): Use gen_stack_protect_set_1.
3920         (@stack_protect_set_1_<mode>): Rename from stack_protect_set_<mode>.
3921         (stack_protect_test): Use gen_stack_protect_test_1.
3922         (@stack_protect_test_1_<mode>): Rename from stack_protect_test_<mode>.
3923         * config/i386/i386.c (*ix86_gen_allocate_stack_worker):
3924         Remove indirect function.
3925         (*ix86_gen_adjust_stack_and_probe): Ditto.
3926         (*ix86_gen_probe_stack_range): Ditto.
3927         (pro_epilogue_adjust_stack): Use gen_pro_epilogue_adjust_stack_add
3928         instead of gen_pro_epilogue_adjust_stack_{si,di}_add.
3929         (ix86_adjust_stack_and_probe_stack_clash): Use
3930         gen_adjust_stack_and_probe instead of ix86_gen_adjust_stack_and_probe.
3931         (ix86_adjust_stack_and_probe): Ditto.
3932         (ix86_emit_probe_stack_range): Use gen_probe_stack_range instead
3933         of ix86_gen_probe_stack_range.
3934         (ix86_expand_prologue):  Use gen_pro_epilogue_adjust_stack_sub
3935         instead of gen_pro_epilogue_adjust_stack_{si,di}_sub.
3936         * config/i386/x86-tune-sched.c (ix86_macro_fusion_pair_p):
3937         Include insn-opinit.h.  Use code_for_stack_protect_test_1 instead of
3938         CODE_FOR_stack_protect_test_{si,di}.
3939         * config/i386/i386-options.c (ix86_option_override_internal):
3940         Do not initialize ix86_gen_allocate_stack_worker,
3941         ix86_gen_adjust_stack_and_probe and ix86_gen_probe_stack_range.
3943 2019-05-26  Gerald Pfeifer  <gerald@pfeifer.com>
3945         * doc/invoke.texi (Link Options): Many editorial changes around
3946         -flinker-output.
3948 2019-05-26  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
3950         * doc/invoke.texi (x86 Options, -mvect8-ret-in-mem): Remove
3951         pre-Solaris 11 referene and most Studio compiler details.
3953 2019-05-24  John David Anglin  <danglin@gcc.gnu.org>
3955         PR target/90530
3956         * config/pa/pa.c (pa_can_change_mode_class): Accept mode changes from
3957         DImode to SImode in floating-point registers on 64-bit target.
3958         * config/pa/pa.md (umulsidi3): Change nonimmediate_operand to
3959         register_operand in xmpyu patterns.
3961 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
3963         * tree-core.h (enum omp_clause_code): Add OMP_CLAUSE__CONDTEMP_.
3964         * tree.h (OMP_CLAUSE_DECL): Use OMP_CLAUSE__CONDTEMP_ instead of
3965         OMP_CLAUSE__REDUCTEMP_.
3966         * tree.c (omp_clause_num_ops, omp_clause_code_name): Add
3967         OMP_CLAUSE__CONDTEMP_.
3968         (walk_tree_1): Handle OMP_CLAUSE__CONDTEMP_.
3969         * tree-pretty-print.c (dump_omp_clause): Likewise.
3970         * tree-nested.c (convert_nonlocal_omp_clauses,
3971         convert_local_omp_clauses): Likewise.
3972         * gimplify.c (enum gimplify_omp_var_data): Use hexadecimal constants
3973         instead of decimal.  Add GOVD_LASTPRIVATE_CONDITIONAL.
3974         (gimplify_scan_omp_clauses): Don't reject lastprivate conditional
3975         on OMP_FOR.
3976         (gimplify_omp_for): Warn and disable conditional modifier from
3977         lastprivate on loop iterators.
3978         * omp-general.h (struct omp_for_data): Add lastprivate_conditional
3979         member.
3980         * omp-general.c (omp_extract_for_data): Initialize it.
3981         * omp-low.c (struct omp_context): Add lastprivate_conditional_map
3982         member.
3983         (delete_omp_context): Delete it.
3984         (lower_lastprivate_conditional_clauses): New function.
3985         (lower_lastprivate_clauses): Add BODY_P and CSTMT_LIST arguments,
3986         handle lastprivate conditional clauses.
3987         (lower_reduction_clauses): Add CLIST argument, emit it into
3988         the critical section if any.
3989         (lower_omp_sections): Adjust lower_lastprivate_clauses and
3990         lower_reduction_clauses callers.
3991         (lower_omp_for_lastprivate): Add CLIST argument, pass it through
3992         to lower_lastprivate_clauses.
3993         (lower_omp_for): Call lower_lastprivate_conditional_clauses, adjust
3994         lower_omp_for_lastprivate and lower_reduction_clauses callers, emit
3995         clist into a critical section if not emitted there already by
3996         lower_reduction_clauses.
3997         (lower_omp_taskreg, lower_omp_teams): Adjust lower_reduction_clauses
3998         callers.
3999         (lower_omp_1): Handle GIMPLE_ASSIGNs storing into lastprivate
4000         conditional variables.
4001         * omp-expand.c (determine_parallel_type): Punt if OMP_CLAUSE__CONDTEMP_
4002         clause is present.
4003         (expand_omp_for_generic, expand_omp_for_static_nochunk,
4004         expand_omp_for_static_chunk): Handle lastprivate conditional.
4005         (expand_omp_for): Handle fd.lastprivate_conditional like
4006         fd.have_reductemp.
4008 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
4010         * config/gcn/gcn-run.c (main): Set a non-zero return value if the
4011         kernel does not exit cleanly.
4012         * config/gcn/gcn.md (gcn_return): Insert s_waitcnt before s_dcache_wb.
4014 2019-05-24  Jason Merrill  <jason@redhat.com>
4016         Revert:
4017         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
4019 2019-05-24  Richard Biener  <rguenther@suse.de>
4021         PR testsuite/90607
4022         * tree-loop-distribution.c (struct partition): Add location
4023         member.
4024         (partition_alloc): Initialize all fields.
4025         (generate_memset_builtin): Use the location recorded in the
4026         partition for the generated call.
4027         (generate_memcpy_builtin): Likewise.
4028         (classify_partition): Record the location of a single store
4029         as location for the partition.
4031 2019-05-24  Andrew Stubbs  <ams@codesourcery.com>
4033         * config/gcn/gcn.c (gcn_expand_prologue): Use gen_addsi3_scalar_carry
4034         for lo-part.
4036 2019-05-24  Matthew Malcomson  <matthew.malcomson@arm.com>
4038         PR target/90588
4039         * common/config/aarch64/aarch64-common.c
4040         (aarch64_rewrite_selected_cpu): Change local temporary variable
4041         type from unsigned long to uint64_t.
4042         * config/aarch64/aarch64-protos.h (aarch64_parse_extension,
4043         aarch64_get_extension_string_for_isa_flags): Change declaration to
4044         match new definition by replacing unsigned long with uint64_t.
4046 2019-05-24  Jakub Jelinek  <jakub@redhat.com>
4048         PR target/90568
4049         * config/i386/x86-tune-sched.c (ix86_macro_funsion_pair_p): Call
4050         gen_attr_type just once instead of 4-7 times.  Formatting fixes.
4051         Handle stack_protect_test_<mode> codegen similarly to corresponding
4052         sub instruction.
4054 2019-05-23  Iain Sandoe  <iain@sandoe.co.uk>
4056        * config/i386/darwin.h: Reject -mfentry*.
4057        * doc/sourcebuild.texi: Document mfentry target support.
4059 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
4061         * config/rs6000/rs6000.c (rs6000_global_entry_point_needed_p):
4062         Rename to rs6000_global_entry_point_prologue_needed_p.  Return
4063         false for PC-relative functions.
4064         (rs6000_output_function_prologue): Change called function name to
4065         rs6000_global_entry_point_prologue_needed_p.  Emit ".localentry
4066         name,1" for PC-relative functions.
4067         (rs6000_elf_declare_function_name): Change called function name to
4068         rs6000_global_entry_point_prologue_needed_p.
4070 2019-05-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4072         PR target/90552
4073         * config/i386/i386.c (gen_rtx_cost):
4074         Use ix86_tune_cost instead of ix86_cost.
4076 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
4077             Michael Meissner  <meissner@linux.ibm.com>
4078             Segher Boessenkool  <segher@kernel.crashing.org>
4080         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): Add
4081         OPTION_MASK_PCREL.
4082         (POWERPC_MASKS): Add OPTION_MASK_PCREL.
4083         * config/rs6000/rs6000-protos.h (rs6000_pcrel_p): New prototype.
4084         (rs6000_fndecl_pcrel_p): Likewise.
4085         * config/rs6000/rs6000.c (rs6000_option_override_internal): Report
4086         error if -mpcrel is requested without -mcpu=future.
4087         (rs6000_opt_masks): Add entry for pcrel.
4088         (rs6000_fndecl_pcrel_p): New function.
4089         (rs6000_pcrel_p): Likewise.
4090         * config/rs6000/rs6000.opt (mpcrel): New option.
4091         * doc/invoke.texi: Document -mpcrel and -mno-pcrel.
4093 2019-05-23  Jan Hubicka  <jh@suse.cz>
4094             Martin Liska  <mliska@suse.cz>
4096         PR tree-optimization/90576
4097         * tree-ssa-alias.c (compare_sizes): Remove dead calls to
4098         poly_int_tree_p.
4099         (aliasing_component_refs_p): Fix three way size compare conditional;
4100         give up earlier in case we can not decide on equivalence.
4102 2019-05-23  Bill Schmidt  <wschmidt@linux.ibm.com>
4103             Michael Meissner  <meissner@linux.ibm.com>
4104             Segher Boessenkool  <segher@kernel.crashing.org>
4106         * config.gcc: Add future cpu.
4107         * config/rs6000/driver-rs6000.c (asm_names): Add future cpu.
4108         * config/rs6000/rs6000-cpus.def (ISA_FUTURE_MASKS_SERVER): New
4109         #define.
4110         (POWERPC_MASKS): Add OPTION_MASK_FUTURE.
4111         (RS6000_CPU): New instantiation for future cpu.
4112         * config/rs6000/rs6000-opts.h (enum processor_type): Add
4113         PROCESSOR_FUTURE.
4114         * config/rs6000/rs6000-string.c (expand_compare_loop): Treat
4115         PROCESSOR_FUTURE like PROCESSOR_POWER9 for now.
4116         * config/rs6000/rs6000-tables.opt: Regenerate.
4117         * config/rs6000/rs6000.c (rs6000_option_override_internal): Treat
4118         PROCESSOR_FUTURE similarly to PROCESSOR_POWER9 for now.
4119         (rs6000_machine_from_flags): Handle future cpu.
4120         (rs6000_reassociation_width): Treat PROCESSOR_FUTURE like
4121         PROCESSOR_POWER9 for now.
4122         (rs6000_adjust_cost): Likewise.
4123         (rs6000_issue_rate): Likewise.
4124         (rs6000_register_move_cost): Likewise.
4125         (rs6000_opt_masks): Add entry for future.
4126         * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add future cpu.
4127         (MASK_FUTURE): New #define.
4128         * config/rs6000/rs6000.md (define_attr "cpu"): Add future cpu.
4129         * config/rs6000/rs6000.opt (mfuture): New target option.
4130         * doc/invoke.texi (mcpu): Add future cpu.
4132 2019-05-23  Martin Liska  <mliska@suse.cz>
4134         PR c++/90587
4135         * tree-ssa-uninit.c (value_sat_pred_p): The result of &
4136         operation points to a temporary (pointed via tree_to_wide_ref)
4137         that is out of scope after the &.
4139 2019-05-23  Jonathan Wakely  <jwakely@redhat.com>
4141         PR c++/90592
4142         * doc/extend.texi (Function Names): Add missing word.
4144 2019-05-23  Richard Biener  <rguenther@suse.de>
4146         PR tree-optimization/88440
4147         * opts.c (default_options_table): Enable -ftree-loop-distribute-patterns
4148         at -O[2s]+.
4149         * tree-loop-distribution.c (generate_memset_builtin): Fold the
4150         generated call.
4151         (generate_memcpy_builtin): Likewise.
4152         (distribute_loop): Pass in whether to only distribute patterns.
4153         (prepare_perfect_loop_nest): Also allow size optimization.
4154         (pass_loop_distribution::execute): When optimizing a loop
4155         nest for size allow pattern replacement.
4157 2019-05-23  Jakub Jelinek  <jakub@redhat.com>
4159         PR target/90568
4160         * config/i386/i386.md (stack_protect_test_<mode>): Use sub instead
4161         of xor.
4163 2019-05-23  Martin Liska  <mliska@suse.cz>
4165         PR sanitizer/90570
4166         * gimplify.c (gimplify_target_expr): Skip TREE_STATIC target
4167         expression similarly to gimplify_decl_expr.
4169 2019-05-23  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
4171         * cse.c (cse_dump_path): s/dump_file/f.
4173 2019-05-22  David Malcolm  <dmalcolm@redhat.com>
4175         PR c++/90462
4176         * diagnostic-format-json.cc: Include "selftest.h".
4177         (json_from_expanded_location): Only add "file" key for non-NULL
4178         file strings.
4179         (json_from_location_range): Don't add "start" and "finish"
4180         children if they are UNKNOWN_LOCATION.
4181         (selftest::test_unknown_location): New selftest.
4182         (selftest::test_bad_endpoints): New selftest.
4183         (selftest::diagnostic_format_json_cc_tests): New function.
4184         * json.cc (json::object::get): New function.
4185         (selftest::test_object_get): New selftest.
4186         (selftest::json_cc_tests): Call it.
4187         * json.h (json::object::get): New decl.
4188         * selftest-run-tests.c (selftest::run_tests): Call
4189         selftest::diagnostic_format_json_cc_tests.
4190         * selftest.h (selftest::diagnostic_format_json_cc_tests): New
4191         decl.
4193 2019-05-22  Kwok Cheung Yeung  <kcy@codesourcery.com>
4194             Andrew Stubbs  <amd@codesourcery.com>
4196         * config.gcc (gcc_cv_initfini_array): Set for AMD GCN.
4197         * config/gcn/gcn-run.c (init_array_kernel, fini_array_kernel): New.
4198         (kernel): Rename to...
4199         (main_kernel): ... this.
4200         (load_image): Load _init_array and _fini_array kernels.
4201         (run): Add argument for kernel to run.
4202         (main): Run init_array_kernel before main_kernel, and
4203         fini_array_kernel after.
4204         * config/gcn/gcn.c (gcn_handle_amdgpu_hsa_kernel_attribute): Allow
4205         amdgpu_hsa_kernel attribute on functions.
4206         (gcn_disable_constructors): Delete.
4207         (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): Delete.
4208         * config/gcn/crt0.c (size_t): Define.
4209         (_init_array, _fini_array): New.
4210         (__preinit_array_start, __preinit_array_end,
4211         __init_array_start, __init_array_end,
4212         __fini_array_start, __fini_array_end): Declare weak references.
4214 2019-05-22  Andrew Stubbs  <ams@codesourcery.com>
4216         * config/gcn/gcn.c (gcn_trampoline_init): Call "sorry" on GCN5.
4218 2019-05-22  Jason Merrill  <jason@redhat.com>
4220         * gimplify.c (gimplify_cond_expr): Don't check TREE_ADDRESSABLE.
4222 2019-05-22  H.J. Lu  <hongjiu.lu@intel.com>
4224         PR target/88483
4225         * config/i386/i386-options.c (ix86_init_machine_status): Set
4226         stack_frame_required to true.
4227         * config/i386/i386.c (ix86_get_frame_size): New function.
4228         (ix86_frame_pointer_required): Replace get_frame_size with
4229         ix86_get_frame_size.
4230         (ix86_compute_frame_layout): Likewise.
4231         (ix86_find_max_used_stack_alignment): Changed to void.  Set
4232         stack_frame_required.
4233         (ix86_finalize_stack_frame_flags): Always call
4234         ix86_find_max_used_stack_alignment.  Replace get_frame_size with
4235         ix86_get_frame_size.
4236         * config/i386/i386.h (machine_function): Add stack_frame_required.
4238 2019-05-22  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4240         * config/i386/sse.md (sse_cvtpi2ps): Use TARGET_MMX in insn condition.
4242 2019-05-22  Matthew Malcomson  <matthew.malcomson@arm.com>
4244         * common/config/aarch64/aarch64-common.c
4245         (struct aarch64_option_extension, struct processor_name_to_arch,
4246         struct arch_to_arch_name, aarch64_parse_extension, opt_ext_cmp,
4247         aarch64_contains_opt,
4248         aarch64_get_extension_string_for_isa_flags): Change type of
4249         variables storing flags to uint64_t.
4250         * config/aarch64/aarch64-option-extensions.def (sve2, sve2-sm4,
4251         sve2-aes, sve2-sha3, bitperm): New optional SVE2 extension flags.
4252         * config/aarch64/aarch64.c (struct processor,
4253         aarch64_parse_arch, aarch64_parse_cpu, aarch64_validate_mcpu,
4254         aarch64_validate_march, aarch64_override_options,
4255         aarch64_option_print, aarch64_handle_attr_isa_flags,
4256         aarch64_declare_function_name, aarch64_start_file): Make flag
4257         variables uint64_t.
4258         * config/aarch64/aarch64.h (AARCH64_FL_SVE2, AARCH64_FL_SVE2_AES,
4259         AARCH64_FL_SVE2_SM4, AARCH64_FL_SVE2_SHA3,
4260         AARCH64_FL_SVE2_BITPERM): New macro feature flags.
4261         * config/aarch64/aarch64.opt (aarch64_isa_flags): Make uint64_t.
4262         * config/aarch64/driver-aarch64.c
4263         (struct aarch64_arch_extension, struct aarch64_core_data,
4264         struct aarch64_arch_driver_info, host_detect_local_cpu): Make
4265         flag variables uint64_t.
4266         * doc/invoke.texi: Add documentation for new arguments.
4268 2019-05-22  Richard Biener  <rguenther@suse.de>
4270         * alias.c (ao_ref_from_mem): Move stack-slot sharing
4271         rewrite ...
4272         * emit-rtl.c (set_mem_attributes_minus_bitpos): ... here.
4274 2019-05-22  Martin Liska  <mliska@suse.cz>
4276         PR lto/90500
4277         * doc/extend.texi: Document the change.
4279 2019-05-22  Richard Biener  <rguenther@suse.de>
4281         PR tree-optimization/90450
4282         * tree-ssa-loop-im.c (struct im_mem_ref): Add ref_decomposed.
4283         (mem_ref_hasher::equal): Check it.
4284         (mem_ref_alloc): Initialize it.
4285         (gather_mem_refs_stmt): Set it.
4287 2019-05-22  Richard Biener  <rguenther@suse.de>
4289         * gimple-fold.c (arith_code_with_undefined_signed_overflow):
4290         Add ABS_EXPR.
4291         (rewrite_to_defined_overflow): Handle rewriting ABS_EXPR
4292         as ABSU_EXPR.
4294 2019-05-22  Alan Modra  <amodra@gmail.com>
4296         * config/rs6000/rs6000.h (ASM_OPT_ANY): Define.
4297         (ASM_CPU_SPEC): Conditionally add -many.
4298         * config/rs6000/rs6000.c (rs6000_machine): New static var.
4299         (rs6000_machine_from_flags, emit_asm_machine): New functions..
4300         (rs6000_file_start): ..extracted from here, and modified to
4301         test all ISA bits.
4302         (rs6000_output_function_prologue): Emit .machine as necessary.
4303         * testsuite/gcc.target/powerpc/ppc32-abi-dfp-1.c: Don't use
4304         power mnemonics.
4305         * testsuite/gcc.dg/vect/O3-pr70130.c: Disable default options
4306         added by check_vect_support_and_set_flags.
4307         * testsuite/gcc.dg/vect/pr48765.c: Likewise.
4308         * testsuite/gfortran.dg/vect/pr45714-b.f: Likewise.
4310 2019-05-22  Hans-Peter Nilsson  <hp@axis.com>
4312         PR middle-end/90553
4313         * ira-lives.c (process_bb_node_lives): Consider defs
4314         for a call insn to be die before the call, not after.
4316         * function.c (assign_parm_setup_block): Raise alignment of
4317         stacked parameter only for STRICT_ALIGNMENT targets.
4319 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
4321         * config/rs6000/constraints.md (define_register_constraint "wz"):
4322         Delete.
4323         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4324         RS6000_CONSTRAINT_wz.
4325         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4326         (rs6000_init_hard_regno_mode_ok): Adjust.
4327         * config/rs6000/rs6000.md: Replace "wz" constraint by "d" with "p7".
4328         * doc/md.texi (Machine Constraints): Adjust.
4330 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
4332         * config/rs6000/constraints.md (define_register_constraint "wl"):
4333         Delete.
4334         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4335         RS6000_CONSTRAINT_wl.
4336         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4337         (rs6000_init_hard_regno_mode_ok): Adjust.
4338         * config/rs6000/rs6000.md: Replace "wl" constraint by "d" with "p6".
4339         * doc/md.texi (Machine Constraints): Adjust.
4341 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
4343         * config/rs6000/constraints.md (define_register_constraint "wm"):
4344         Delete.
4345         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4346         RS6000_CONSTRAINT_wm.
4347         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4348         (rs6000_init_hard_regno_mode_ok): Adjust.
4349         * config/rs6000/vsx.md: Replace "wm" constraint by "wa" with "p8v".
4350         * doc/md.texi (Machine Constraints): Adjust.
4352 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
4354         * config/rs6000/constraints.md (define_register_constraint "wk"):
4355         Delete.
4356         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4357         RS6000_CONSTRAINT_wk.
4358         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4359         (rs6000_init_hard_regno_mode_ok): Adjust.
4360         * config/rs6000/rs6000.md: Replace "wk" constraint by "ws" with "p8v".
4361         * doc/md.texi (Machine Constraints): Adjust.
4363 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
4365         * config/rs6000/constraints.md (define_register_constraint "wj"):
4366         Delete.
4367         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4368         RS6000_CONSTRAINT_wj.
4369         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4370         (rs6000_init_hard_regno_mode_ok): Adjust.
4371         * config/rs6000/rs6000.md: Replace "wj" constraint by "wi" with "p8v".
4372         (VS_64dm): Delete.
4373         * config/rs6000/vsx.md: Ditto.
4374         * doc/md.texi (Machine Constraints): Adjust.
4376 2019-05-21  Segher Boessenkool  <segher@kernel.crashing.org>
4378         * config/rs6000/constraints.md (define_register_constraint "wh"):
4379         Delete.
4380         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4381         RS6000_CONSTRAINT_wh.
4382         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4383         (rs6000_init_hard_regno_mode_ok): Adjust.
4384         * config/rs6000/rs6000.md: Replace "wh" constraint by "wa" with "p8v".
4385         * doc/md.texi (Machine Constraints): Adjust.
4387 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4389         PR target/90547
4390         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
4391         Avoid calling gen_lowpart with CONST operand.
4393 2019-05-21  Alexandre Oliva <aoliva@redhat.com>
4395         * tree-ssa-threadupdate.c (struct ssa_local_info_t): Add
4396         field template_last_to_copy.
4397         (ssa_create_duplicates): Set it, and use it.  Attempt to
4398         preserve more debug stmts.
4400 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4402         * config/i386/sse.md (VF1_AVX2): New mode iterator.
4403         (signbit<mode>2): New expander
4405 2019-05-21  James Clarke  <jrtc27@jrtc27.com>
4407         PR bootstrap/87338
4408         * dwarf2out.c (dwarf2out_inline_entry): Use ASM_OUTPUT_DEBUG_LABEL
4409         instead of ASM_GENERATE_INTERNAL_LABEL and ASM_OUTPUT_LABEL.
4411 2019-05-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
4413         * config/i386/cpuid.h (__cpuid): For 32bit targets, zero
4414         %ebx and %ecx bafore calling cpuid with leaf 1 or
4415         non-constant leaf argument.
4417 2019-05-21  Alan Modra  <amodra@gmail.com>
4419         PR target/90545
4420         * config/rs6000/rs6000.c (rs6000_register_move_cost): Increase
4421         power9 direct move cost.
4422         * testsuite/gcc.target/powerpc/fold-vec-splats-floatdouble.c:
4423         Correct comments and rename functions to suit parameters.
4425 2019-05-21  Richard Biener  <rguenther@suse.de>
4427         PR middle-end/90510
4428         * fold-const.c (fold_read_from_vector): New function.
4429         * fold-const.h (fold_read_from_vector): Declare.
4430         * match.pd (VEC_PERM_EXPR): Build BIT_INSERT_EXPRs for
4431         single-element insert permutations.  Canonicalize selector
4432         further and fix issue with last commit.
4434 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
4436         * tree-cfg.h (split_critical_edges): Add for_edge_insertion_p
4437         parameter with default value false to declaration.
4438         (split_edges_for_insertion): New inline function.  Wrapper for
4439         split_critical_edges with for_edge_insertion_p = true.
4440         * tree-cfg.c (split_critical_edges): Don't split non-critical
4441         edges if for_edge_insertion_p is false.  Fix whitespace.
4442         * tree-ssa-pre.c (pass_pre::execute): Call
4443         split_edges_for_insertion instead of split_critical_edges.
4444         * gcc/tree-ssa-tail-merge.c (tail_merge_optimize): Ditto.
4445         * gcc/tree-ssa-sink.c (pass_sink_code::execute): Ditto.
4446         (pass_data_sink_code): Update function name in the comment.
4448 2019-05-21  Vladislav Ivanishin  <vlad@ispras.ru>
4450         * tree-ssa-uninit.c (value_sat_pred_p): This new function is a wrapper
4451         around is_value_included_in that knows how to handle BIT_AND_EXPR.
4452         (is_pred_expr_subset_of): Use the new function.  Handle more cases where
4453         code1 == EQ_EXPR and where code1 == BIT_AND_EXPR and thus fix some false
4454         positives.
4456 2019-05-21  Martin Liska  <mliska@suse.cz>
4458         * config/rs6000/driver-rs6000.c (elf_platform): Do not use
4459         an extra newline.
4460         * config/rs6000/rs6000-c.c (rs6000_pragma_longcal): Wrap pragma in %<%>.
4461         (altivec_resolve_overloaded_builtin): Likewise for vec_lvsl and
4462         vec_lvsr.
4463         * config/rs6000/rs6000.c (rs6000_option_override_internal):
4464         Quote a C type.
4465         (rs6000_function_arg): Likewise.
4466         (rs6000_expand_set_fpscr_drn_builtin): Remove trailing dot.
4467         (rs6000_expand_ternop_builtin): Use interval syntax.
4468         (get_element_number): Likewise.
4469         (altivec_expand_builtin): Likewise.
4470         (rs6000_get_function_versions_dispatcher): Quote target_clones.
4472 Fix test-suite.
4474 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
4476         PR c++/59813
4477         PR target/90418
4478         * function.h (struct function): Add calls_eh_return member.
4479         * gimplify.c (gimplify_call_expr): Set cfun->calls_eh_return when
4480         gimplifying __builtin_eh_return call.
4481         * tree-inline.c (initialize_cfun): Copy calls_eh_return from src_cfun
4482         to cfun.
4483         (expand_call_inline): Or in src_cfun->calls_eh_return into
4484         dst_cfun->calls_eh_return.
4485         * tree-tailcall.c (suitable_for_tail_call_opt_p): Return false if
4486         cfun->calls_eh_return.
4487         * lto-streamer-in.c (input_struct_function_base): Read calls_eh_return.
4488         * lto-streamer-out.c (output_struct_function_base): Write
4489         calls_eh_return.
4491 2019-05-20  Marc Glisse  <marc.glisse@inria.fr>
4493         PR rtl-optimization/43147
4494         * config/i386/i386.c (ix86_gimple_fold_builtin): Handle
4495         IX86_BUILTIN_SHUFPD.
4497 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
4499         * tree-ssa-alias.c (refs_may_alias_p_2): Break out from ...
4500         (refs_may_alias_p_1): ... here; update stats.
4501         (refs_may_alias_p): Do not update stats here.
4503 2019-05-20  Richard Biener  <rguenther@suse.de>
4505         * tree-ssa-structalias.c (find_func_aliases): POINTER_DIFF_EXPR
4506         doesn't produce pointers.
4507         {TRUNC,CEIL,FLOOR,ROUND,EXACT}_{DIV,MOD}_EXPR points to what
4508         the first operand points to.
4510 2019-05-20  Jan Hubicka  <hubicka@ucw.cz>
4512         * tree-ssa-alias.c (compare_sizes): New function.
4513         (sompare_type_sizes): New function
4514         (aliasing_component_refs_p): Use it.
4515         (indirect_ref_may_alias_decl_p): Likewise.
4517 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4519         * config/i386/sol2.h (CC1_SPEC): Reject -mx32.
4521 2019-05-20  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
4523         * config/sol2.h (LIBTSAN_EARLY_SPEC): Remove : after %e.
4524         (LIBLSAN_EARLY_SPEC): Likewise.
4525         * config/i386/sol2.h (ASAN_REJECT_SPEC): Likewise.
4527 2019-05-20  Martin Liska  <mliska@suse.cz>
4529         * config/i386/i386.c (ix86_libc_has_fast_function):
4530         Add ATTRIBUTE_UNUSED for the argument.
4532 2019-05-20  Richard Biener  <rguenther@suse.de>
4534         * gimple-match-head.c: Include vec-perm-indices.h.
4535         * generic-match-head.c: Likewise.
4536         * fold-const.h (fold_vec_perm): Declare when vec-perm-indices.h
4537         is included.
4538         * fold-const.c (fold_vec_perm): Export.
4539         (fold_ternary_loc): Move non-constant folding of VEC_PERM_EXPR...
4540         (match.pd): ...here.
4542 2019-05-20  Jakub Jelinek  <jakub@redhat.com>
4544         * cfgloop.h (struct loop): Add simdlen member.
4545         * cfgloopmanip.c (copy_loop_info): Copy simdlen as well.
4546         * omp-expand.c (expand_omp_simd): Set it if simdlen clause is present.
4547         * tree-vect-loop.c (vect_analyze_loop): Pass loop->simdlen != 0
4548         as new argument to autovectorize_vector_sizes target hook.  If
4549         loop->simdlen, pick up vector size where the vectorization factor
4550         is equal to loop->simd, and if there is none, fall back to the first
4551         successful one.
4552         (vect_transform_loop): Adjust autovectorize_vector_sizes target hook
4553         caller.
4554         * omp-low.c (omp_clause_aligned_alignment): Likewise.
4555         * omp-general.c (omp_max_vf): Likewise.
4556         * optabs-query.c (can_vec_mask_load_store_p): Likewise.
4557         * tree-vect-slp.c (vect_slp_bb): Likewise.
4558         * target.def (autovectorize_vector_sizes): Add ALL argument and
4559         document it.
4560         * doc/tm.texi: Adjust documentation.
4561         * targhooks.c (default_autovectorize_vector_sizes): Add bool argument.
4562         * targhooks.h (default_autovectorize_vector_sizes): Likewise.
4563         * config/aarch64/aarch64.c (aarch64_autovectorize_vector_sizes): Add
4564         bool argument.
4565         * config/arc/arc.c (arc_autovectorize_vector_sizes): Likewise.
4566         * config/arm/arm.c (arm_autovectorize_vector_sizes): Likewise.
4567         * config/mips/mips.c (mips_autovectorize_vector_sizes): Likewise.
4568         * config/i386/i386.c (ix86_autovectorize_vector_sizes): Likewise.  If
4569         true and TARGET_AVX512F or TARGET_AVX, push 3 or 2 sizes even if
4570         preferred vector size is not 512-bit or 256-bit, just put those
4571         unpreferred ones last.
4573 2019-05-20  Martin Liska  <mliska@suse.cz>
4575         * targhooks.c (default_libc_has_fast_function): New function.
4576         * targhooks.h (default_libc_has_fast_function): Likewise.
4578 2019-05-20  Martin Liska  <mliska@suse.cz>
4580         PR middle-end/90263
4581         * builtins.c (expand_builtin_memory_copy_args): When having a
4582         target with fast mempcpy implementation do now use memcpy.
4583         * config/i386/i386.c (ix86_libc_has_fast_function): New.
4584         (TARGET_LIBC_HAS_FAST_FUNCTION): Likewise.
4585         * doc/tm.texi: Likewise.
4586         * doc/tm.texi.in: Likewise.
4587         * target.def:
4588         * expr.c (emit_block_move_hints): Add 2 new arguments.
4589         * expr.h (emit_block_move_hints): Bail out when libcall
4590         to memcpy would be used.
4592 2019-05-20  Martin Liska  <mliska@suse.cz>
4594         * profile-count.c: Add vertical spacing in order
4595         to separate functions.
4596         * profile-count.h: Likewise.
4598 2019-05-20  Martin Liska  <mliska@suse.cz>
4600         * profile-count.h: Do not use full qualified
4601         names if possible.
4602         * profile-count.c (profile_count::to_frequency): Likewise.
4604 2019-05-20  Martin Liska  <mliska@suse.cz>
4606         * profile-count.h (enum profile_quality): Use capital letters
4607         for enum value names.  Use the adjusted names.
4608         * profile-count.c: Use the adjusted names.
4610 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4612         * config/rs6000/constraints.md (define_register_constraint "wH"):
4613         Delete.
4614         (define_register_constraint "wI"): Delete.
4615         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4616         RS6000_CONSTRAINT_wH and RS6000_CONSTRAINT_wI.
4617         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4618         (rs6000_init_hard_regno_mode_ok): Adjust.
4619         * config/rs6000/rs6000.md: Replace "wH" and "wI" constraints by "v"
4620         resp. "d", or with "wa" as appropriate, all with "p8v".
4621         * config/rs6000/vsx.md: Ditto.
4622         * doc/md.texi (Machine Constraints): Adjust.
4624 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4626         * config/rs6000/constraints.md (define_register_constraint "wy"):
4627         Delete.
4628         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4629         RS6000_CONSTRAINT_wy.
4630         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4631         (rs6000_init_hard_regno_mode_ok): Adjust.
4632         * config/rs6000/rs6000.md: Replace "wy" constraint by "wa" with "p8v".
4633         Use "<Fisa>" as "isa" in all alternatives that use "<Fv2>".
4634         (define_mode_attr Fisa): New.
4635         * config/rs6000/vsx.md: Replace "wy" constraint by "wa" with "p8v".
4636         * doc/md.texi (Machine Constraints): Adjust.
4638 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4640         * config/rs6000/constraints.md (define_register_constraint "wu"):
4641         Delete.
4642         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4643         RS6000_CONSTRAINT_wu.
4644         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4645         (rs6000_init_hard_regno_mode_ok): Adjust.
4646         * config/rs6000/rs6000.md: Replace "wu" constraint by "v" or "wa",
4647         both with "p8v".
4648         (define_mode_attr Fa): Delete.
4649         * config/rs6000/vsx.md: Ditto.
4650         * doc/md.texi (Machine Constraints): Adjust.
4652 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4654         * config/rs6000/constraints.md (define_register_constraint "wJ"):
4655         Delete.
4656         (define_register_constraint "wK"): Delete.
4657         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4658         RS6000_CONSTRAINT_wJ and RS6000_CONSTRAINT_wK.
4659         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4660         (rs6000_init_hard_regno_mode_ok): Adjust.
4661         * config/rs6000/rs6000.md: Replace "wJ" constraint by "wI" with "p9v".
4662         Replace "wK" constraint by "wH" with "p9v".
4663         * config/rs6000/vsx.md: Ditto.
4664         * doc/md.texi (Machine Constraints): Adjust.
4666 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4668         * config/rs6000/constraints.md (define_register_constraint "wb"):
4669         Delete.
4670         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4671         RS6000_CONSTRAINT_wb.
4672         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4673         (rs6000_init_hard_regno_mode_ok): Adjust.
4674         * config/rs6000/rs6000.md: Replace "wb" constraint by "v" with "p9v".
4675         * config/rs6000/vsx.md: Ditto.
4676         * doc/md.texi (Machine Constraints): Adjust.
4678 2019-05-19  Segher Boessenkool  <segher@kernel.crashing.org>
4680         * config/rs6000/constraints.md (define_register_constraint "wo"):
4681         Delete.
4682         * config/rs6000/rs6000.h (enum r6000_reg_class_enum): Delete
4683         RS6000_CONSTRAINT_wo.
4684         * config/rs6000/rs6000.c (rs6000_debug_reg_global): Adjust.
4685         (rs6000_init_hard_regno_mode_ok): Adjust.
4686         * config/rs6000/rs6000.md: Replace "wo" constraint by "wa" with "p9v".
4687         * config/rs6000/altivec.md: Ditto.
4688         * doc/md.texi (Machine Constraints): Adjust.
4690 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
4692         * config/darwin-c.c (darwin_register_objc_includes): Do not
4693         prepend the sysroot when building gnu-runtime header search
4694         paths.
4696 2019-05-18  Iain Sandoe  <iain@sandoe.co.uk>
4698         * config/darwin.c (darwin_file_end): Use switch_to_section ()
4699         instead of direct output of the asm.
4701 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
4703         * config/rs6000/rs6000.c (restore_saved_cr): Change a boolean
4704         argument to be type bool (was int before).
4705         (rs6000_emit_epilogue): Simplify some code.  Declare some variables
4706         at first use.  Use type bool for some variables.  Fix a theoretical
4707         eh_return bug for svr4.
4709 2019-05-17  Segher Boessenkool  <segher@kernel.crashing.org>
4711         * config/rs6000/rs6000.md (isa): New attribute.
4712         (enabled): New attribute.
4714 2019-05-17  Max Filippov  <jcmvbkbc@gmail.com>
4716         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Call
4717         assemble_start_function and assemble_end_function.
4719 2019-05-17  Thomas Schwinge  <thomas@codesourcery.com>
4721         PR middle-end/89433
4722         * omp-general.c (oacc_verify_routine_clauses): Change formal
4723         parameters.  Add checking if already marked with an OpenACC
4724         'routine' directive.  Adjust all users.
4726         PR middle-end/89433
4727         * omp-general.c (oacc_build_routine_dims): Move some of its
4728         processing into...
4729         (oacc_verify_routine_clauses): ... this new function.
4730         * omp-general.h (oacc_verify_routine_clauses): New prototype.
4732 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
4734         * config/rs6000/rs6000.c (machopic_output_stub): Adjust the
4735         formating of picbase labels to match other ports.
4737 2019-05-17  Iain Sandoe  <iain@sandoe.co.uk>
4739         * config/rs6000/rs6000.c (macho_branch_islands): Fix bad indent
4740         in the generated code.
4742 2019-05-16  Martin Sebor  <msebor@redhat.com>
4744         * builtins.c (expand_builtin_atomic_always_lock_free): Quote
4745         identifiers, keywords, operators, and types in diagnostics.  Correct
4746         quoting, spelling, and sentence capitalization issues.
4747         (expand_builtin_atomic_is_lock_free): Same.
4748         (fold_builtin_next_arg): Same.
4749         * cfgexpand.c (expand_one_var): Same.
4750         (tree_conflicts_with_clobbers_p): Same.
4751         (expand_asm_stmt): Same.
4752         (verify_loop_structure): Same.
4753         * cgraphunit.c (process_function_and_variable_attributes): Same.
4754         * collect-utils.c (collect_execute): Same.
4755         * collect2.c (maybe_run_lto_and_relink): Same.
4756         (is_lto_object_file): Same.
4757         (scan_prog_file): Same.
4758         * convert.c (convert_to_real_1): Same.
4759         * dwarf2out.c (dwarf2out_begin_prologue): Same.
4760         * except.c (verify_eh_tree): Same.
4761         * gcc.c (execute): Same.
4762         (eval_spec_function): Same.
4763         (run_attempt): Same.
4764         (driver::set_up_specs): Same.
4765         (compare_debug_auxbase_opt_spec_function): Same.
4766         * gcov-tool.c (unlink_gcda_file): Same.
4767         (do_merge): Same.
4768         (do_rewrite): Same.
4769         * gcse.c (gcse_or_cprop_is_too_expensive): Same.
4770         * gimplify.c (gimplify_asm_expr): Same.
4771         (gimplify_adjust_omp_clauses): Same.
4772         * hsa-gen.c (gen_hsa_addr_insns): Same.
4773         (gen_hsa_insns_for_load): Same.
4774         (gen_hsa_cmp_insn_from_gimple): Same.
4775         (gen_hsa_insns_for_operation_assignment): Same.
4776         (gen_get_level): Same.
4777         (gen_hsa_alloca): Same.
4778         (omp_simple_builtin::generate): Same.
4779         (gen_hsa_atomic_for_builtin): Same.
4780         (gen_hsa_insns_for_call): Same.
4781         * input.c (dump_location_info): Same.
4782         * ipa-devirt.c (compare_virtual_tables): Same.
4783         * ira.c (ira_setup_eliminable_regset): Same.
4784         * lra-assigns.c (lra_assign): Same.
4785         * lra-constraints.c (lra_constraints): Same.
4786         * lto-streamer-in.c (lto_input_mode_table): Same.
4787         * lto-wrapper.c (get_options_from_collect_gcc_options): Same.
4788         (merge_and_complain): Same.
4789         (compile_offload_image): Same.
4790         (compile_images_for_offload_targets): Same.
4791         (debug_objcopy): Same.
4792         (run_gcc): Same.
4793         (main): Same.
4794         * opts.c (print_specific_help): Same.
4795         (parse_no_sanitize_attribute): Same.
4796         (print_help): Same.
4797         (handle_param): Same.
4798         * plugin.c (add_new_plugin): Same.
4799         (parse_plugin_arg_opt): Same.
4800         (try_init_one_plugin): Same.
4801         * print-rtl.c (debug_bb_n_slim): Quote identifiers, keywords,
4802         operators, and types in diagnostics.  Correct quoting and spelling
4803         issues.
4804         * read-rtl-function.c (parse_edge_flag_token): Same.
4805         (function_reader::parse_enum_value): Same.
4806         * reg-stack.c (check_asm_stack_operands): Same.
4807         * regcprop.c (validate_value_data): Same.
4808         * sched-rgn.c (make_pass_sched_fusion): Same.
4809         * stmt.c (check_unique_operand_names): Same.
4810         * targhooks.c (default_target_option_pragma_parse): Same.
4811         * tlink.c (recompile_files): Same.
4812         * toplev.c (process_options): Same.
4813         (do_compile): Same.
4814         * trans-mem.c (diagnose_tm_1): Same.
4815         (ipa_tm_scan_irr_block): Same.
4816         (ipa_tm_diagnose_transaction): Same.
4817         * tree-cfg.c (verify_address): Same.  Use get_tree_code_name to
4818         format a tree code name in a diagnostic.
4819         (verify_types_in_gimple_min_lval): Same.
4820         (verify_types_in_gimple_reference): Same.
4821         (verify_gimple_call): Same.
4822         (verify_gimple_assign_unary): Same.
4823         (verify_gimple_assign_binary): Same.
4824         (verify_gimple_assign_ternary): Same.
4825         (verify_gimple_assign_single): Same.
4826         (verify_gimple_switch): Same.
4827         (verify_gimple_label): Same.
4828         (verify_gimple_phi): Same.
4829         (verify_gimple_in_seq): Same.
4830         (verify_eh_throw_stmt_node): Same.
4831         (collect_subblocks): Same.
4832         (gimple_verify_flow_info): Same.
4833         (do_warn_unused_result): Same.
4834         * tree-inline.c (expand_call_inline): Same.
4835         * tree-into-ssa.c (update_ssa): Same.
4836         * tree.c (tree_int_cst_elt_check_failed): Same.
4837         (tree_vec_elt_check_failed): Same.
4838         (omp_clause_operand_check_failed): Same.
4839         (verify_type_variant): Same.
4840         (verify_type): Same.
4841         * value-prof.c (verify_histograms): Same.
4842         * varasm.c (assemble_start_function): Same.
4844 2019-05-16  Martin Sebor  <msebor@redhat.com>
4846         * config/i386/i386-expand.c (get_element_number): Quote keywords
4847         and other internal names in diagnostics.  Adjust other diagnostic
4848         formatting issues noted by -Wformat-diag.
4849         * config/i386/i386-features.c
4850         (ix86_mangle_function_version_assembler_name): Same.
4851         * config/i386/i386-options.c (ix86_handle_abi_attribute): Same.
4852         * config/i386/i386.c (ix86_function_type_abi): Same.
4853         (ix86_function_ms_hook_prologue): Same.
4854         (classify_argument): Same.
4855         (ix86_expand_prologue): Same.
4856         (ix86_md_asm_adjust): Same.
4857         (ix86_memmodel_check): Same.
4859 2019-05-17  Dragan Mladjenovic  <dmladjenovic@wavecomp.com>
4861         * config/mips/mips.c (mips_dwarf_frame_reg_mode): Replace
4862         TARGET_FLOAT64 with !TARGET_FLOAT32, thus handling both fp64
4863         and fpxx modes.
4865 2019-05-17  H.J. Lu  <hongjiu.lu@intel.com>
4867         PR target/90497
4868         * config/i386/i386-expand.c (ix86_expand_builtin): Enable MMX
4869         intrinsics without SSE/SSE2/SSSE3.
4870         * config/i386/mmx.md (mmx_uavgv8qi3): Restore TARGET_3DNOW
4871         check.
4872         (*mmx_uavgv8qi3): Likewise.
4874 2019-05-17  Richard Biener  <rguenther@suse.de>
4876         * gimple-pretty-print.c (dump_ternary_rhs): Handle dumping
4877         VEC_PERM_EXPR as __VEC_PERM with -gimple.
4879 2019-05-17  Andreas Krebbel  <krebbel@linux.ibm.com>
4881         * config/s390/s390-builtins.def (s390_vec_sldw_*): Use the
4882         vec_sldw insn pattern.
4884 2019-05-17  Richard Biener  <rguenther@suse.de>
4886         * ccmp.c (expand_ccmp_expr_1): Do not use gimple_assign_rhs_to_tree.
4888 2019-05-17  Martin Liska  <mliska@suse.cz>
4890         PR driver/90496
4891         * toplev.c (output_stack_usage): With LTO and sanitizer it
4892         happens that a global ctor (_GLOBAL__sub_I_00099_0_main)
4893         has no file location.
4895 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
4897         PR c++/90484
4898         * tree-ssa-scopedtables.c (equal_mem_array_ref_p): Don't assert that
4899         sz0 is equal to sz1, instead return false in that case.
4901         * omp-low.c (lower_rec_input_clauses): If OMP_CLAUSE_IF
4902         has non-constant expression, force sctx.lane and use two
4903         argument IFN_GOMP_SIMD_LANE instead of single argument.
4904         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Don't DCE
4905         two argument IFN_GOMP_SIMD_LANE without lhs.
4906         * tree-vectorizer.h (struct _loop_vec_info): Add simd_if_cond
4907         member.
4908         (LOOP_VINFO_SIMD_IF_COND, LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND):
4909         Define.
4910         (LOOP_REQUIRES_VERSIONING): Or in
4911         LOOP_REQUIRES_VERSIONING_FOR_SIMD_IF_COND.
4912         * tree-vect-loop.c (_loop_vec_info::_loop_vec_info): Initialize
4913         simd_if_cond.
4914         (vect_analyze_loop_2): Punt if LOOP_VINFO_SIMD_IF_COND is constant 0.
4915         * tree-vect-loop-manip.c (vect_loop_versioning): Add runtime check
4916         from simd if clause if needed.
4918 2019-05-16  Richard Biener  <rguenther@suse.de>
4920         * tree-affine.c (expr_to_aff_combination): New function split
4921         out from...
4922         (tree_to_aff_combination): ... here.
4923         (aff_combination_expand): Avoid building a GENERIC tree.
4925 2019-05-16  Max Filippov  <jcmvbkbc@gmail.com>
4927         * cgraphunit.c (cgraph_node::expand_thunk): Remove
4928         assemble_start_function and assemble_end_function calls.
4929         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call
4930         assemble_start_function and assemble_end_function.
4931         * config/arc/arc.c (arc_output_mi_thunk): Likewise.
4932         * config/arm/arm.c (arm_output_mi_thunk): Likewise.
4933         * config/bfin/bfin.c (bfin_output_mi_thunk): Likewise.
4934         * config/c6x/c6x.c (c6x_output_mi_thunk): Likewise.
4935         * config/cris/cris.c (cris_asm_output_mi_thunk): Likewise.
4936         * config/csky/csky.c (csky_output_mi_thunk): Likewise.
4937         * config/epiphany/epiphany.c (epiphany_output_mi_thunk): Likewise.
4938         * config/frv/frv.c (frv_asm_output_mi_thunk): Likewise.
4939         * config/i386/i386.c (x86_output_mi_thunk): Likewise.
4940         * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise.
4941         * config/m68k/m68k.c (m68k_output_mi_thunk): Likewise.
4942         * config/microblaze/microblaze.c (microblaze_asm_output_mi_thunk):
4943         Likewise.
4944         * config/mips/mips.c (mips_output_mi_thunk): Likewise.
4945         * config/mmix/mmix.c (mmix_asm_output_mi_thunk): Likewise.
4946         * config/mn10300/mn10300.c (mn10300_asm_output_mi_thunk): Likewise.
4947         * config/nds32/nds32.c (nds32_asm_output_mi_thunk): Likewise.
4948         * config/nios2/nios2.c (nios2_asm_output_mi_thunk): Likewise.
4949         * config/or1k/or1k.c (or1k_output_mi_thunk): Likewise.
4950         * config/pa/pa.c (pa_asm_output_mi_thunk): Likewise.
4951         * config/riscv/riscv.c (riscv_output_mi_thunk): Likewise.
4952         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
4953         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
4954         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
4955         * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise.
4956         * config/spu/spu.c (spu_output_mi_thunk): Likewise.
4957         * config/stormy16/stormy16.c (xstormy16_asm_output_mi_thunk):
4958         Likewise.
4959         * config/tilegx/tilegx.c (tilegx_output_mi_thunk): Likewise.
4960         * config/tilepro/tilepro.c (tilepro_asm_output_mi_thunk): Likewise.
4961         * config/vax/vax.c (vax_output_mi_thunk): Likewise.
4963 2019-05-16  Jan Hubicka  <hubicka@ucw.cz>
4965         * tree-ssa-alias.c (alias_stats): Add
4966         aliasing_component_refs_p_may_alias and
4967         aliasing_component_refs_p_no_alias.
4968         (dump_alias_stats): Print aliasing_component_refs_p stats.
4969         (aliasing_component_refs_p): Update stats.
4971 2019-05-16  Martin Liska  <mliska@suse.cz>
4973         PR lto/90500
4974         * multiple_target.c (expand_target_clones): Do not allow
4975         target_clones being used with a symbol that is an alias.
4977 2019-05-16  Vladislav Ivanishin  <vlad@ispras.ru>
4979         PR tree-optimization/90394
4980         * tree-ssa-uninit.c (is_pred_expr_subset_of): Potentially give false
4981         positives rather than ICE for cases where (code2 == NE_EXPR
4982         && code1 == BIT_AND_EXPR).
4984 2019-05-16  Jakub Jelinek  <jakub@redhat.com>
4986         PR fortran/90329
4987         * tree-core.h (struct tree_decl_common): Document
4988         decl_nonshareable_flag for PARM_DECLs.
4989         * tree.h (DECL_HIDDEN_STRING_LENGTH): Define.
4990         * calls.c (expand_call): Don't try tail call if caller
4991         has any DECL_HIDDEN_STRING_LENGTH PARM_DECLs that are or might be
4992         passed on the stack and callee needs to pass any arguments on the
4993         stack.
4994         * tree-streamer-in.c (unpack_ts_decl_common_value_fields): Use
4995         else if instead of series of mutually exclusive ifs.  Handle
4996         DECL_HIDDEN_STRING_LENGTH for PARM_DECLs.
4997         * tree-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
4999         * lto-streamer.h (LTO_major_version): Bump to 9.
5001 2019-05-16  Jun Ma <JunMa@linux.alibaba.com>
5003         PR tree-optimization/90106
5004         * tree-call-cdce.c (shrink_wrap_one_built_in_call_with_conds): Add
5005         new parameter as new internal function call, also move it to new
5006         basic block.
5007         (use_internal_fn): Pass internal function call to
5008         shrink_wrap_one_built_in_call_with_conds.
5010 2019-05-15  Jakub Jelinek  <jakub@redhat.com>
5012         * omp-low.c (lower_rec_input_clauses): For if (0) or simdlen (1) set
5013         max_vf to 1.
5014         * omp-expand.c (expand_omp_simd): For if (0) or simdlen (1) clear
5015         safelen_int and set loop->dont_vectorize.
5017 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5019         PR target/89021
5020         * config/i386/i386-builtin.def: Enable MMX intrinsics with
5021         SSE/SSE2/SSSE3.
5022         * config/i386/i386-builtins.c (ix86_init_mmx_sse_builtins):
5023         Likewise.
5024         * config/i386/i386-expand.c (ix86_expand_builtin): Allow
5025         SSE/SSE2/SSSE3 to emulate MMX intrinsics with TARGET_MMX_WITH_SSE.
5026         * config/i386/mmintrin.h: Only require SSE2 if __MMX_WITH_SSE__
5027         is defined.
5029 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5031         PR target/89021
5032         * config/i386/mmx.md (*vec_dupv2sf): Changed to
5033         define_insn_and_split to support SSE emulation.
5034         (*vec_extractv2sf_0): Likewise.
5035         (*vec_extractv2sf_1): Likewise.
5036         (*vec_extractv2si_0): Likewise.
5037         (*vec_extractv2si_1): Likewise.
5038         (*vec_extractv2si_zext_mem): Likewise.
5039         (vec_setv2sf): Also allow TARGET_MMX_WITH_SSE.
5040         (vec_extractv2sf_1 splitter): Likewise.
5041         (vec_extractv2sfsf): Likewise.
5042         (vec_setv2si): Likewise.
5043         (vec_extractv2si_1 splitter): Likewise.
5044         (vec_extractv2sisi): Likewise.
5045         (vec_setv4hi): Likewise.
5046         (vec_extractv4hihi): Likewise.
5047         (vec_setv8qi): Likewise.
5048         (vec_extractv8qiqi): Likewise.
5049         (vec_extractv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
5050         TARGET_MMX_WITH_SSE ix86_expand_vector_extract.
5051         (vec_extractv2sisi): Likewise.
5052         (vec_extractv4hihi): Likewise.
5053         (vec_extractv8qiqi): Likewise.
5054         (vec_initv2sfsf): Also allow TARGET_MMX_WITH_SSE.  Pass
5055         TARGET_MMX_WITH_SSE to ix86_expand_vector_init.
5056         (vec_initv2sisi): Likewise.
5057         (vec_initv4hihi): Likewise.
5058         (vec_initv8qiqi): Likewise.
5059         (vec_setv2si): Also allow TARGET_MMX_WITH_SSE.  Pass
5060         TARGET_MMX_WITH_SSE to ix86_expand_vector_set.
5061         (vec_setv4hi): Likewise.
5062         (vec_setv8qi): Likewise.
5064 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5066         PR target/89021
5067         * config/i386/mmx.md (MMXMODE:mov<mode>): Also allow
5068         TARGET_MMX_WITH_SSE.
5069         (MMXMODE:*mov<mode>_internal): Likewise.
5070         (MMXMODE:movmisalign<mode>): Likewise.
5072 2019-05-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5074         PR target/89021
5075         * config/i386/i386.md (*zero_extendsidi2): Add mmx_isa attribute.
5076         * config/i386/sse.md (sse2_cvtpi2pd): Ditto.
5077         (sse2_cvtpd2pi): Ditto.
5078         (sse2_cvttpd2pi): Ditto.
5079         (*vec_concatv2sf_sse4_1): Ditto.
5080         (*vec_concatv2sf_sse): Ditto.
5081         (*vec_concatv2si_sse4_1): Ditto.
5082         (*vec_concatv2si): Ditto.
5083         (*vec_concatv4si_0): Ditto.
5084         (*vec_concatv2di_0): Ditto.
5086 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5088         PR target/89021
5089         * config/i386/sse.md (abs<mode>2): Add SSE emulation.
5091 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5093         PR target/89021
5094         * config/i386/sse.md (ssse3_palignrdi): Changed to
5095         define_insn_and_split to support SSE emulation.
5097 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5099         PR target/89021
5100         * config/i386/sse.md (ssse3_psign<mode>3): Add SSE emulation.
5102 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5104         PR target/89021
5105         * config/i386/sse.md (ssse3_pshufbv8qi3): Changed to
5106         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
5107         SSE emulation.
5109 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5111         PR target/89021
5112         * config/i386/sse.md (ssse3_pmulhrswv4hi3): Require TARGET_MMX
5113         or TARGET_MMX_WITH_SSE.
5114         (*ssse3_pmulhrswv4hi3): Add SSE emulation.
5116 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5118         PR target/89021
5119         * config/i386/sse.md (ssse3_pmaddubsw): Add SSE emulation.
5121 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5123         PR target/89021
5124         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>dv2si3):
5125         Changed to define_insn_and_split to support SSE emulation.
5127 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5129         PR target/89021
5130         * config/i386/sse.md (ssse3_ph<plusminus_mnemonic>wv4hi3):
5131         Changed to define_insn_and_split to support SSE emulation.
5133 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5135         PR target/89021
5136         * config/i386/mmx.md (mmx_<emms>): Renamed to ...
5137         (*mmx_<emms>): This.
5138         (mmx_<emms>): New expander.
5140 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5142         PR target/89021
5143         * config/i386/mmx.md (sse2_umulv1siv1di3): Add SSE emulation
5144         support.
5145         (*sse2_umulv1siv1di3): Add SSE2 emulation.
5147 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5149         PR target/89021
5150         * config/i386/mmx.md (sse_movntq): Add SSE2 emulation.
5152 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5154         PR target/89021
5155         * config/i386/mmx.md (mmx_psadbw): Add SSE emulation.
5157 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5159         PR target/89021
5160         * config/i386/mmx.md (mmx_uavgv4hi3): Also check TARGET_MMX and
5161         TARGET_MMX_WITH_SSE.
5162         (*mmx_uavgv4hi3): Add SSE emulation.
5164 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5166         PR target/89021
5167         * config/i386/mmx.md (mmx_uavgv8qi3): Also check TARGET_MMX
5168         and TARGET_MMX_WITH_SSE.
5169         (*mmx_uavgv8qi3): Add SSE emulation.
5171 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5173         PR target/89021
5174         * config/i386/xmmintrin.h: Emulate MMX maskmovq with SSE2
5175         maskmovdqu for __MMX_WITH_SSE__.
5177 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5179         PR target/89021
5180         * config/i386/mmx.md (mmx_umulv4hi3_highpart): Also check
5181         TARGET_MMX and TARGET_MMX_WITH_SSE.
5182         (*mmx_umulv4hi3_highpart): Add SSE emulation.
5184 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5186         PR target/89021
5187         * config/i386/mmx.md (mmx_pmovmskb): Changed to
5188         define_insn_and_split to support SSE emulation.
5190 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5192         PR target/89021
5193         * config/i386/mmx.md (mmx_<code>v4hi3): Also check TARGET_MMX
5194         and TARGET_MMX_WITH_SSE.
5195         (mmx_<code>v8qi3): Likewise.
5196         (smaxmin:<code>v4hi3): New.
5197         (umaxmin:<code>v8qi3): Likewise.
5198         (smaxmin:*mmx_<code>v4hi3): Add SSE emulation.
5199         (umaxmin:*mmx_<code>v8qi3): Likewise.
5201 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5203         PR target/89021
5204         * config/i386/mmx.md (mmx_pinsrw): Also check TARGET_MMX and
5205         TARGET_MMX_WITH_SSE.
5206         (*mmx_pinsrw): Add SSE emulation.
5208 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5210         PR target/89021
5211         * config/i386/mmx.md (mmx_pextrw): Add SSE emulation.
5213 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5215         PR target/89021
5216         * config/i386/sse.md (sse_cvtpi2ps): Changed to
5217         define_insn_and_split.  Also allow TARGET_MMX_WITH_SSE.  Add
5218         SSE emulation.
5220 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5222         PR target/89021
5223         * config/i386/sse.md (sse_cvtps2pi): Add SSE emulation.
5224         (sse_cvttps2pi): Likewise.
5226 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5228         PR target/89021
5229         * config/i386/mmx.md (mmx_pshufw): Also check TARGET_MMX and
5230         TARGET_MMX_WITH_SSE.
5231         (mmx_pshufw_1): Add SSE emulation.
5232         (*vec_dupv4hi): Changed to define_insn_and_split and also allow
5233         TARGET_MMX_WITH_SSE to support SSE emulation.
5235 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5237         PR target/89021
5238         * config/i386/constraints.md (Yw): New constraint.
5239         * config/i386/mmx.md (*vec_dupv2si): Changed to
5240         define_insn_and_split and also allow TARGET_MMX_WITH_SSE to
5241         support SSE emulation.
5243 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5245         PR target/89021
5246         * config/i386/mmx.md (mmx_eq<mode>3): Also allow
5247         TARGET_MMX_WITH_SSE.
5248         (*mmx_eq<mode>3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
5249         support.
5250         (mmx_gt<mode>3): Likewise.
5252 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5254         PR target/89021
5255         * config/i386/mmx.md (mmx_andnot<mode>3): Also allow
5256         TARGET_MMX_WITH_SSE.  Add SSE support.
5258 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5260         PR target/89021
5261         * config/i386/mmx.md (any_logic:mmx_<code><mode>3): Also allow
5262         TARGET_MMX_WITH_SSE.
5263         (any_logic:<code><mode>3): New.
5264         (any_logic:*mmx_<code><mode>3): Also allow TARGET_MMX_WITH_SSE.
5265         Add SSE support.
5267 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5269         PR target/89021
5270         * config/i386/mmx.md (mmx_ashr<mode>3): Also allow
5271         TARGET_MMX_WITH_SSE.  Add SSE emulation.
5272         (mmx_<shift_insn><mode>3): Likewise.
5273         (ashr<mode>3): New.
5274         (<shift_insn><mode>3): Likewise.
5276 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5278         PR target/89021
5279         * config/i386/mmx.md (mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.
5280         (*mmx_pmaddwd): Also allow TARGET_MMX_WITH_SSE.  Add SSE support.
5282 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5284         PR target/89021
5285         * config/i386/mmx.md (mmx_smulv4hi3_highpart): Also allow
5286         TARGET_MMX_WITH_SSE.
5287         (*mmx_smulv4hi3_highpart): Also allow TARGET_MMX_WITH_SSE. Add
5288         SSE support.
5290 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5292         PR target/89021
5293         * config/i386/mmx.md (mmx_mulv4hi3): Also allow
5294         TARGET_MMX_WITH_SSE.
5295         (mulv4hi3): New.
5296         (*mmx_mulv4hi3): Also allow TARGET_MMX_WITH_SSE.  Add SSE
5297         support.
5299 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5301         PR target/89021
5302         * config/i386/mmx.md (MMXMODEI8): Require TARGET_SSE2 for V1DI.
5303         (plusminus:mmx_<plusminus_insn><mode>3): Check
5304         TARGET_MMX_WITH_SSE.
5305         (sat_plusminus:mmx_<plusminus_insn><mode>3): Likewise.
5306         (<plusminus_insn><mode>3): New.
5307         (*mmx_<plusminus_insn><mode>3): Add SSE emulation.
5308         (*mmx_<plusminus_insn><mode>3): Likewise.
5310 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5312         PR target/89021
5313         * config/i386/i386-expand.c (ix86_split_mmx_punpck): New function.
5314         * config/i386/i386-protos.h (ix86_split_mmx_punpck): New
5315         prototype.
5316         * config/i386/mmx.m (mmx_punpckhbw): Changed to
5317         define_insn_and_split to support SSE emulation.
5318         (mmx_punpcklbw): Likewise.
5319         (mmx_punpckhwd): Likewise.
5320         (mmx_punpcklwd): Likewise.
5321         (mmx_punpckhdq): Likewise.
5322         (mmx_punpckldq): Likewise.
5324 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5325             Uros Bizjak  <ubizjak@gmail.com>
5327         PR target/89021
5328         * config/i386/i386-expand.c (ix86_move_vector_high_sse_to_mmx):
5329         New function.
5330         (ix86_split_mmx_pack): Likewise.
5331         * config/i386/i386-protos.h (ix86_move_vector_high_sse_to_mmx):
5332         New prototype.
5333         (ix86_split_mmx_pack): Likewise.
5334         * config/i386/i386.md (mmx_isa): New.
5335         (enabled): Also check mmx_isa.
5336         * config/i386/mmx.md (any_s_truncate): New code iterator.
5337         (s_trunsuffix): New code attr.
5338         (mmx_packsswb): Removed.
5339         (mmx_packssdw): Likewise.
5340         (mmx_packuswb): Likewise.
5341         (mmx_pack<s_trunsuffix>swb): New define_insn_and_split to emulate
5342         MMX packsswb/packuswb with SSE2.
5343         (mmx_packssdw): Likewise.
5344         * config/i386/predicates.md (register_mmxmem_operand): New.
5346 2019-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5348         PR target/89021
5349         * config/i386/i386-c.c (ix86_target_macros_internal): Define
5350         __MMX_WITH_SSE__ for TARGET_MMX_WITH_SSE.
5351         * config/i386/i386.c (ix86_set_reg_reg_cost): Add support for
5352         TARGET_MMX_WITH_SSE with VALID_MMX_REG_MODE.
5353         (ix86_vector_mode_supported_p): Likewise.
5354         * config/i386/i386.h (TARGET_MMX_WITH_SSE): New.
5356 2019-05-15  Martin Liska  <mliska@suse.cz>
5358         PR middle-end/90478
5359         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
5360         Check for overflow.
5362 2019-05-15  Richard Biener  <rguenther@suse.de>
5364         * tree-into-ssa.c (pass_build_ssa::execute): Run
5365         update_address_taken before going into SSA.
5367 2019-05-15  Richard Biener  <rguenther@suse.de>
5369         * tree-pretty-print.c (dump_generic_node): Dump BIT_FIELD_REF
5370         as __BIT_FIELD_REF with type with -gimple.
5372 2019-05-15  Vladislav Ivanishin  <vlad@ispras.ru>
5374         * tree-ssa-uninit.c (is_value_included_in): Remove is_unsigned and merge
5375         semantically equivalent branches (left over after prior refactorings).
5377 2019-05-15  Richard Biener  <rguenther@suse.de>
5379         PR tree-optimization/88828
5380         * tree-ssa-forwprop.c (simplify_vector_constructor): Fix
5381         bogus check.
5383 2019-05-14  Richard Biener  <rguenther@suse.de>
5385         * tree-pretty-print.c (dump_generic_node): Dump VIEW_CONVERT_EXPR
5386         as __VIEW_CONVERT with -gimple.
5388 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
5390         PR target/82920
5391         * config/i386/darwin.h (CC1_SPEC): Report -mx32 as an error for
5392         Darwin.
5394 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
5396         * config/rs6000/rs6000.md (eh_set_lr_<mode>): Merge with following
5397         define_split to become a define_insn_and_split.
5399 2019-05-14  Segher Boessenkool  <segher@kernel.crashing.org>
5401         * config/rs6000/rs6000-protos.h (rs6000_emit_epilogue): Change
5402         arguments.
5403         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Change arguments.
5404         * config/rs6000/rs6000.md (epilogue_type): New define_enum.
5405         (sibcall_epilogue): Adjust.
5406         (epilogue): Adjust.
5408 2019-05-14  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
5410         * config.gcc: Move *-*-solaris2.10* from obsolete configurations
5411         to unsupported ones.
5412         Simplify x86_64-*-solaris2.1[0-9]* to x86_64-*-solaris2*.
5413         * config.host: Likewise.
5414         * config/i386/sol2.h (ASM_COMMENT_START): Remove.
5415         * config/sparc/driver-sparc.c (host_detect_local_cpu) [__sun__ &&
5416         __svr4__]: Remove "brand" fallback.
5417         [!KSTAT_DATA_STRING]: Remove.
5418         * configure.ac (gcc_cv_ld_hidden): Simplify *-*-solaris2.1[0-9]*
5419         to *-*-solaris2*.
5420         (comdat_group): Likewise.
5421         (set_have_as_tls): Likewise.
5422         (gcc_cv_target_dl_iterate_phdr): Likewise.
5423         (gcc_cv_as_shf_merge): Remove Solaris 10/x86 workaround.
5424         (gcc_cv_ld_aligned_shf_merge): Remove Solaris 10/SPARC workaround.
5425         * configure: Regenerate.
5426         * doc/install.texi: Simplify Solaris target triplets.
5427         (Specific, i?86-*-solaris2*): Remove Solaris 10 references.
5428         (Specific, *-*-solaris2*): Document Solaris 10 removal.
5429         Remove Solaris 10 references.
5430         Remove obsolete Solaris bug reference.
5431         (Specific, sparc-sun-solaris2.10): Remove.
5433 2019-05-14  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5435         * config/i386/i386.md (any_div): New code iterator.
5436         (paired_mod): New code attribute.
5437         (sgnprefix): Handle DIV and UDIV RTXes.
5438         (u): Ditto.
5439         (<u>divmod<mode>4): Macroize expander from divmod<mode>4
5440         and udivmod<mode>4 patterns using any_div code iterator.
5441         (divmod splitters): Macroize splitters using any_div code iterator.
5442         (*udivmodsi4_pow2_zext_1): Use exactl_log2 in insn condition.
5443         (*udivmodsi4_pow2_zext_2): Ditto.
5444         (*<u>divmod<mode>4_noext): Macroize insn from *divmod<mode>4_noext
5445         and *udivmod<mode>4_noext patterns using any_div code iterator.
5446         (*<u>divmod<mode>4_noext_zext_1): Macroize insn from
5447         *divmod<mode>4_noext_zext_1 and *udivmod<mode>4_noext_zext_1
5448         patterns using any_div code iterator.
5449         (*<u>divmod<mode>4_noext_zext_2): Macroize insn from
5450         *divmod<mode>4_noext_zext_2 and *udivmod<mode>4_noext_zext_2
5451         patterns using any_div code iterator.
5452         (<u>divmodhiqi3): Macroize insn from divmodhiqi3 and
5453         udivmodhiqi3 patterns using any_extend code iterator.
5455 2019-05-14  Richard Biener  <rguenther@suse.de>
5456             H.J. Lu  <hongjiu.lu@intel.com>
5458         PR tree-optimization/88828
5459         * tree-ssa-forwprop.c (simplify_vector_constructor): Handle
5460         permuting in a single non-constant element not extracted
5461         from a vector.
5463 2019-05-14  Przemyslaw Wirkus  <przemyslaw.wirkus@arm.com>
5465         * internal-fn.def (SIGNBIT): New.
5466         * config/aarch64/aarch64-simd.md (signbitv2sf2): New expand
5467         defined.
5468         (signbitv4sf2): Likewise.
5470 2019-05-14  Chenghua Xu  <paul.hua.gm@gmail.com>
5472         PR target/90357
5473         * config/mips/mips.c (mips_split_move): Skip forward SRC into
5474         next insn when the SRC reg is dead.
5476 2019-05-14  Bin Cheng  <bin.cheng@linux.alibaba.com>
5478         * gimple-ssa-strength-reduction.c (lookup_cand): Adjust index by 1.
5479         (alloc_cand_and_find_basis): Ditto.
5480         (backtrace_base_for_ref, create_mul_ssa_cand): Remove if-then-else.
5481         (create_mul_imm_cand, create_add_ssa_cand): Ditto.
5482         (create_add_imm_cand, slsr_process_cast): Ditto.
5483         (slsr_process_copy, replace_mult_candidate): Ditto.
5484         (replace_rhs_if_not_dup, replace_one_candidate): Ditto.
5485         (dump_cand_vec, analyze_candidates_and_replace): Skip NULL element.
5486         (pass_strength_reduction::execute): Init the first NULL element.
5488 2019-05-13  Nathan Sidwell  <nathan@acm.org>
5490         * gcc.c (execute): Simplify cond-expr into if.  Reformat comment.
5491         (run_attempt): Reformat line break.
5493 2019-05-13  David Edelsohn  <dje.gcc@gmail.com>
5495         PR target/90418
5496         * config/rs6000/rs6000.c (rs6000_emit_epilogue): Don't load EH
5497         data registers in sibcall epilogues.
5498         Don't add EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
5500 2019-05-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5502         PR target/89221
5503         * configure.ac (--enable-frame-pointer):
5504         Disable by default for cygwin and mingw.
5505         * configure: Regenerate.
5507 2019-05-13  Nathan Sidwell  <nathan@acm.org>
5509         * dwarf2out.c (breakout_comdat_types): Move comment to correct
5510         piece of code.
5511         (const_ok_for_output_1): Balance parens around #if/#else/#endif
5512         (gen_member_die): Move abstract origin check earlier.  Only VARs
5513         can be static_inline_p.  Simplify splicing control flow.
5515 2019-05-13  Richard Biener  <rguenther@suse.de>
5517         * tree-vect-slp.c (vect_get_and_check_slp_defs): Handle
5518         VIEW_CONVERT_EXPR.
5519         (vect_build_slp_tree_1): Likewise.
5521 2019-05-13  Richard Biener  <rguenther@suse.de>
5523         PR tree-optimization/90402
5524         * tree-if-conv.c (tree_if_conversion): Value number only
5525         the loop body by making the latch an exit of the region
5526         as well.
5527         * tree-ssa-sccvn.c (process_bb): Add flag whether to skip
5528         processing PHIs.
5529         (do_rpo_vn): Deal with multiple edges into the entry block
5530         that are not backedges inside the region by skipping PHIs
5531         of the entry block.
5533 2019-05-13  Richard Biener  <rguenther@suse.de>
5535         PR tree-optimization/90316
5536         * tree-ssa-pre.c (insert_aux): Fold into ...
5537         (insert): ... this function.  Use a RPO walk to reduce the
5538         number of required iterations.
5540 2019-05-13  Martin Liska  <mliska@suse.cz>
5542         PR tree-optimization/90416
5543         * tree-vect-stmts.c (vect_check_load_store_mask): Concatenate
5544         string instead of passing the second part as va_arg argument.
5546 2019-05-13  Martin Liska  <mliska@suse.cz>
5548         PR gcov-profile/90380
5549         * gcov.c (handle_cycle): Do not support zero cycle count,
5550         it should not be possible.
5551         (path_contains_zero_cycle_arc): New function.
5552         (circuit): Ignore zero cycle arc counts.
5554 2019-05-13  Martin Liska  <mliska@suse.cz>
5556         PR gcov-profile/90380
5557         * gcov.c (enum loop_type): Remove the enum and
5558         the operator.
5559         (handle_cycle): Assert that we should not reach
5560         a negative count.
5561         (circuit): Use loop_found instead of a tri-state loop_type.
5562         (get_cycles_count): Do not handle NEGATIVE_LOOP as it can't
5563         happen.
5565 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
5567         PR target/82920
5568         * config/i386/i386.c (ix86_output_jmp_thunk_or_indirect): New.
5569         (ix86_output_indirect_branch_via_reg): Use output mechanism
5570         accounting for __USER_LABEL_PREFIX__.
5571         (ix86_output_indirect_branch_via_push): Likewise.
5572         (ix86_output_function_return): Likewise.
5573         (ix86_output_indirect_function_return): Likewise.
5575 2019-05-12  Richard Sandiford  <richard.sandiford@arm.com>
5577         * doc/md.texi: Document use of code attributes in rtx patterns.
5578         * read-md.h (rtx_reader::rtx_alloc_for_name): New member function.
5579         * read-rtl.c (find_code): Split out search loops into...
5580         (maybe_find_code): ...this new function.
5581         (check_code_iterator): Make the error message more informative.
5582         (check_code_attribute): New function.
5583         (rtx_reader::rtx_alloc_for_name): Likewise.
5584         (rtx_reader::read_rtx_code): Use rtx_alloc_for_name.
5585         * config/aarch64/predicates.md (aarch64_smin, aarch64_umin): Delete.
5586         * config/aarch64/aarch64-simd.md (*aarch64_<su>abd<mode>_3): Use
5587         <max_opp> directly as an rtx code instead of via a match_operator.
5588         * config/aarch64/aarch64-sve.md (aarch64_<su>abd<mode>_3): Likewise.
5589         (<su>abd<mode>_3): Update accordingly.
5591 2019-05-12  Iain Sandoe  <iain@sandoe.co.uk>
5593         * config/rs6000/rs6000.c (debug_stack_info): When -mdebug=stack
5594         is given, print the state of the EH "save world" computation for
5595         Darwin.
5597 2019-05-11  Jakub Jelinek  <jakub@redhat.com>
5599         PR c++/59813
5600         * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't add
5601         EH_RETURN_STACKADJ_RTX to sp in sibcall epilogues.
5603 2019-05-11  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5605         * config/i386/i386.md (floatdi<X87MODEF:mode>2_i387_with_xmm):
5606         Use pinsrd for TARGET_SSE4_1.
5607         * config/i386/sse.md (movdi_to_sse): Ditto.
5609 2019-05-10  Richard Biener  <rguenther@suse.de>
5611         * tree-ssa-sccvn.c (visit_reference_op_call): Initialize value-id.
5612         (do_rpo_vn): Initialize next_value_id.
5614 2019-05-10  Martin Liska  <mliska@suse.cz>
5616         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
5617         Fix plural form.
5619 2019-05-10  Jakub Jelinek  <jakub@redhat.com>
5621         PR tree-optimization/90385
5622         * tree-parloops.c (try_create_reduction_list): Punt on non-SSA_NAME
5623         arguments of the exit phis.
5625         PR c++/90383
5626         * tree-inline.h (struct copy_body_data): Add do_not_fold member.
5627         * tree-inline.c (remap_gimple_op_r): Avoid folding expressions if
5628         id->do_not_fold.
5629         (copy_tree_body_r): Likewise.
5630         (copy_fn): Set id.do_not_fold to true.
5632 2019-05-10  Martin Liska  <mliska@suse.cz>
5634         * config/i386/i386-expand.c (ix86_expand_floorceildf_32):
5635         Reapply changes from r269790.
5637 2019-05-10  Martin Liska  <mliska@suse.cz>
5639         PR middle-end/90340
5640         * doc/invoke.texi: New params.
5641         * params.def (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SIZE): New.
5642         (PARAM_JUMP_TABLE_MAX_GROWTH_RATIO_FOR_SPEED): Likewise.
5643         * tree-switch-conversion.c (jump_table_cluster::can_be_handled):
5644         Use it.
5645         * tree-switch-conversion.h (struct jump_table_cluster):
5646         Likewise.
5648 2019-05-09  Segher Boessenkool  <segher@kernel.crashing.org>
5650         * combine.c (combine_simplify_rtx): Don't make IF_THEN_ELSE RTL.
5652 2019-05-09  Bill Schmidt  <wschmidt@linux.ibm.com>
5654         * doc/loop.texi: Remove reference to FOR_EACH_LOOP_BREAK.
5656 2019-05-09  Alexander Monakov  <amonakov@ispras.ru>
5658         PR rtl-optimization/88879
5659         * sel-sched.c (sel_target_adjust_priority): Remove assert.
5661 2019-05-09  Richard Earnshaw  <rearnsha@arm.com>
5663         PR target/90405
5664         * config/arm/arm.c (callee_saved_reg_p): Move before
5665         thumb_find_work_register.
5666         (thumb1_prologue_unused_call_clobbered_lo_regs): Move before
5667         thumb_find_work_register.  Only call df_get_live_out once.
5668         (thumb1_epilogue_unused_call_clobbered_lo_regs): Likewise.
5669         (thumb_find_work_register): Use
5670         thumb1_prologue_unused_call_clobbered_lo_regs instead of ad hoc
5671         algorithms to locate a spare call clobbered reg.
5673 2019-05-09  Martin Liska  <mliska@suse.cz>
5675         * gimple-pretty-print.c (dump_binary_rhs): Dump MIN_EXPR
5676         and MAX_EXPR in GIMPLE FE format.
5678 2019-05-09  Martin Liska  <mliska@suse.cz>
5680         * tree-cfg.c (dump_function_to_file): Dump entry BB count.
5681         * gimple-pretty-print.c (dump_gimple_bb_header):
5682         Dump BB count.
5683         (pp_cfg_jump): Dump edge probability.
5684         * profile-count.c (profile_quality_as_string): Simplify
5685         with a static array.
5686         (parse_profile_quality): New function.
5687         (profile_count::dump): Simplify with a static array.
5688         (profile_count::from_gcov_type): Add new argument.
5689         * profile-count.h (parse_profile_quality): Likewise.
5690         * predict.h (set_hot_bb_threshold): New.
5691         * params.def (PARAM_GIMPLE_FE_COMPUTED_HOT_BB_THRESHOLD):
5692         New param.
5693         * predict.c (get_hot_bb_threshold): Set from the new param.
5694         (set_hot_bb_threshold): New.
5696 2019-05-09  Richard Biener  <rguenther@suse.de>
5698         PR tree-optimization/90395
5699         * tree-ssa-forwprop.c (pass_forwprop::execute): Do not
5700         rewrite vector stores that throw internally.
5702 2019-05-09  Thomas Schwinge  <thomas@codesourcery.com>
5704         * cif-code.def (CHKP): Remove.
5706         PR target/89221
5707         * configure.ac (--enable-frame-pointer): Disable by default for
5708         GNU systems.
5709         * configure: Regenerate.
5711 2019-05-09  Alan Modra  <amodra@gmail.com>
5713         PR target/89271
5714         * config/rs6000/rs6000.h (enum reg_class, REG_CLASS_NAMES),
5715         (REG_CLASS_CONTENTS): Add GEN_OR_VSX_REGS class.
5716         * config/rs6000/rs6000.c (rs6000_register_move_cost): Correct
5717         cost for general <-> vsx when direct moves are available.
5718         Cost union classes at minimal cost for any reg in the class.
5719         Correct calculation for moves between vsx, float, and altivec.
5720         Don't return a low cost for moves between special regs.  Don't
5721         use hard coded register numbers.
5722         (TARGET_IRA_CHANGE_PSEUDO_ALLOCNO_CLASS): Define.
5723         (rs6000_ira_change_pseudo_allocno_class): New function.
5724         * config/rs6000/rs6000.md (movsi_internal1, mov<mode>_internal),
5725         (movdi_internal32, movdi_internal64): Remove '*' from vsx register
5726         alternatives.
5727         (movsi_internal1): Don't disparage vector alternatives.
5728         (mov<mode>_internal): Likewise, excepting alternative that
5729         will be split.
5730         * config/rs6000/vsx.md (vsx_splat_<mode>_reg): Don't disparage
5731         we <- b alternative.
5733 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
5735         PR c++/59813
5736         PR tree-optimization/89060
5737         * tree-ssa-live.h (live_vars_map): New typedef.
5738         (compute_live_vars, live_vars_at_stmt, destroy_live_vars): Declare.
5739         * tree-ssa-live.c: Include gimple-walk.h and cfganal.h.
5740         (struct compute_live_vars_data): New type.
5741         (compute_live_vars_visit, compute_live_vars_1, compute_live_vars,
5742         live_vars_at_stmt, destroy_live_vars): New functions.
5743         * tree-tailcall.c: Include tree-ssa-live.h.
5744         (live_vars, live_vars_vec): New global variables.
5745         (find_tail_calls): Perform variable life analysis before punting.
5746         (tree_optimize_tail_calls_1): Clean up live_vars and live_vars_vec.
5747         * tree-inline.h (struct copy_body_data): Add eh_landing_pad_dest
5748         member.
5749         * tree-inline.c (add_clobbers_to_eh_landing_pad): Remove BB argument.
5750         Perform variable life analysis to select variables that really need
5751         clobbers added.
5752         (copy_edges_for_bb): Don't call add_clobbers_to_eh_landing_pad here,
5753         instead set id->eh_landing_pad_dest and assert it is the same.
5754         (copy_cfg_body): Call it here if id->eh_landing_pad_dest is non-NULL.
5756 2019-05-08  Mihail Ionescu  <mihail.ionescu@arm.com>
5757             Richard Earnshaw  <rearnsha@arm.com>
5759         PR target/88167
5760         * config/arm/arm.c (thumb1_prologue_unused_call_clobbered_lo_regs): New
5761         function.
5762         (thumb1_epilogue_unused_call_clobbered_lo_regs): New function.
5763         (thumb1_compute_save_core_reg_mask): Don't force a spare work
5764         register if both the epilogue and prologue can use call-clobbered
5765         regs.
5766         (thumb1_unexpanded_epilogue): Use
5767         thumb1_epilogue_unused_call_clobbered_lo_regs.  Reverse the logic for
5768         picking temporaries for restoring high regs to match that of the
5769         prologue where possible.
5770         (thumb1_expand_prologue): Add any usable call-clobbered low registers to
5771         the list of work registers.  Detect if the return address is still live
5772         at the end of the prologue and avoid using it for a work register if so.
5773         If the return address is not live, add LR to the list of pushable regs
5774         after the first pass.
5776 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
5778         PR tree-optimization/90078
5779         * tree-ssa-loop-ivopts.c (inttypes.h): Include new header file.
5780         (INFTY): Increase the value for infinite cost.
5781         (struct comp_cost): Promote type of members to int64_t.
5782         (infinite_cost): Don't set complexity in initialization.
5783         (comp_cost::operator +,-,+=,-+,/=,*=): Assert when cost computation
5784         overflows to infinite_cost.
5785         (adjust_setup_cost): Promote type of parameter and cost computation
5786         to int64_t.
5787         (struct ainc_cost_data, struct iv_ca): Promote type of member to
5788         int64_t.
5789         (get_scaled_computation_cost_at, determine_iv_cost): Promote type of
5790         cost computation to int64_t.
5791         (determine_group_iv_costs, iv_ca_dump, find_optimal_iv_set): Use
5792         int64_t's format specifier in dump.
5794 2019-05-08  Bin Cheng  <bin.cheng@linux.alibaba.com>
5796         PR tree-optimization/90240
5797         * tree-ssa-loop-ivopts.c (get_scaled_computation_cost_at): Scale cost
5798         with respect to scaling factor pre-computed for each basic block.
5799         (try_improve_iv_set): Return bool if best_cost equals to iv_ca cost.
5800         (find_optimal_iv_set_1): Free iv_ca set if it has infinite_cost.
5801         (COST_SCALING_FACTOR_BOUND, determine_scaling_factor): New.
5802         (tree_ssa_iv_optimize_loop): Call determine_scaling_factor.  Extend
5803         live range for array of loop's basic blocks.  Cleanup aux field of
5804         loop's basic blocks.
5806 2019-05-08  Jakub Jelinek  <jakub@redhat.com>
5808         PR tree-optimization/90356
5809         * match.pd ((X +/- 0.0) +/- 0.0): Optimize into X +/- 0.0 if possible.
5811 2019-05-07  Wei Xiao  <wei3.xiao@intel.com>
5813         * common/config/i386/i386-common.c (OPTION_MASK_ISA_AVX512BF16_SET
5814         OPTION_MASK_ISA_AVX512BF16_UNSET, OPTION_MASK_ISA2_AVX512BW_UNSET): New.
5815         (OPTION_MASK_ISA2_AVX512F_UNSET): Add OPTION_MASK_ISA_AVX512BF16_UNSET.
5816         (ix86_handle_option): Handle -mavx512bf16.
5817         * config.gcc: Add avx512bf16vlintrin.h and avx512bf16intrin.h
5818         to extra_headers.
5819         * config/i386/avx512bf16vlintrin.h: New.
5820         * config/i386/avx512bf16intrin.h: New.
5821         * config/i386/cpuid.h (bit_AVX512BF16): New.
5822         * config/i386/driver-i386.c (host_detect_local_cpu): Detect BF16.
5823         * config/i386/i386-builtin-types.def: Add new types.
5824         * config/i386/i386-builtin.def: Add new builtins.
5825         * config/i386/i386-c.c (ix86_target_macros_internal): Define
5826         __AVX512BF16__.
5827         * config/i386/i386-option.c (ix86_target_string): Add -mavx512bf16.
5828         (ix86_option_override_internal): Handle BF16.
5829         (ix86_valid_target_attribute_inner_p): Ditto.
5830         * config/i386/i386-expand.c (ix86_expand_args_builtin): Ditto.
5831         * config/i386/i386-builtin.c (enum processor_features): Add
5832         F_AVX512BF16.
5833         (static const _isa_names_table isa_names_table): Ditto.
5834         * config/i386/i386.h (TARGET_AVX512BF16, TARGET_AVX512BF16_P): New.
5835         (PTA_AVX512BF16): Ditto.
5836         * config/i386/i386.opt: Add -mavx512bf16.
5837         * config/i386/immintrin.h: Include avx512bf16intrin.h
5838         and avx512bf16vlintrin.h.
5839         * config/i386/sse.md (avx512f_cvtne2ps2bf16_<mode><mask_name>,
5840         avx512f_cvtneps2bf16_<mode><mask_name>,
5841         avx512f_dpbf16ps_<mode><mask_half_name>): New define_insn patterns.
5842         * config/i386/subst.md (mask_half): Add new subst.
5843         * doc/invoke.texi: Document -mavx512bf16.
5845 2019-05-07  Segher Boessenkool  <segher@kernel.crashing.org>
5847         * config/rs6000/rs6000-protos.h (rs6000_legitimize_reload_address_ptr):
5848         Delete declaration.
5849         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Delete.
5850         (rs6000_debug_legitimize_reload_address): Delete.
5851         (rs6000_legitimize_reload_address_ptr): Delete.
5852         (rs6000_option_override_internal): Adjust.
5853         (mem_operand_gpr): Adjust comment.
5854         (legitimate_lo_sum_address_p): Ditto.
5855         (rs6000_legitimize_reload_address): Delete.
5856         (rs6000_debug_legitimize_reload_address): Delete.
5857         * config/rs6000/rs6000.h (LEGITIMIZE_RELOAD_ADDRESS): Delete.
5859 2019-05-07  Kelvin Nilsen  <kelvin@gcc.gnu.org>
5861         PR target/89765
5862         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
5863         In handling of ALTIVEC_BUILTIN_VEC_INSERT, use modular arithmetic
5864         to compute vector element selector for both constant and variable
5865         operands.
5867 2019-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5869         * config/i386/i386.md (cvt_mnemonic): New mode attribute.
5870         (ashr<mode>3_cvt): Merge insn pattern from ashrsi3_cvt and
5871         ashrdi3_cvt using SWI48 mode iterator.
5873 2019-05-07  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
5875         * config/aarch64/aarch64-sve.md (<su>abd<mode>_3): New define_expand.
5876         (aarch64_<su>abd<mode>_3): Likewise.
5877         (*aarch64_<su>abd<mode>_3): New define_insn.
5878         (<sur>sad<vsi2qi>): New define_expand.
5879         * config/aarch64/iterators.md: Added MAX_OPP attribute.
5880         * tree-vect-loop.c (use_mask_by_cond_expr_p): Add SAD_EXPR.
5881         (build_vect_cond_expr): Likewise.
5883 2019-05-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
5885         * cfgexpand.c (asm_clobber_reg_is_valid): Reject
5886         clobbers outside of accessible_reg_set.
5887         * config/i386/i386.c (ix86_conditional_register_usage):
5888         Disable register sets by clearing corresponding bits in
5889         accessible_reg_set.  Do not set corresponding bits in fixed_regs,
5890         call_used_regs and don't clear corresponding reg_names array members.
5892 2019-05-07  Richard Biener  <rguenther@suse.de>
5894         * tree-vect-stmts.c (vect_is_simple_cond): When vectype is
5895         not specified still compute a comp_vectype for invariant
5896         compares.
5898 2019-05-07  Richard Biener  <rguenther@suse.de>
5900         PR tree-optimization/90316
5901         * tree-ssa-pre.c (translate_vuse_through_block): When
5902         same_valid is NULL do not bother to search for a virtual
5903         PHI continuation.
5904         (phi_translate_1): When operands changed we cannot keep
5905         the same value-number so do not bother to ask whether
5906         that's possible from translate_vuse_through_block.
5908 2019-05-07  Martin Liska  <mliska@suse.cz>
5910         * bitmap.c (bitmap_register): Come up with
5911         alloc_descriptor_max_uid and assign it for
5912         a new bitmap.
5913         (register_overhead): Use get_descriptor as
5914         a descriptor.
5915         (release_overhead): New.
5916         (bitmap_elem_to_freelist): Call it.
5917         (bitmap_elt_clear_from): Likewise.
5918         (bitmap_obstack_free): Likewise.
5919         (bitmap_move): Sensitively release memory.
5920         * bitmap.h (struct GTY): Add alloc_descriptor and padding.
5921         (bitmap_initialize): Initialize alloc_descriptor to zero.
5922         * tree-ssa-pre.c (do_hoist_insertion): Use bitmap_move.
5924 2019-05-07  Richard Biener  <rguenther@suse.de>
5926         * tree-vect-slp.c (vect_build_slp_tree_2): Bump size whenever
5927         we build a SLP node.  Remove max_size and limiting.
5928         (vect_analyze_slp_instance): Record and dump size of the SLP graph.
5930 2019-05-07  Richard Biener  <rguenther@suse.de>
5932         PR tree-optimization/90316
5933         * tree-ssa-alias.h (get_continuation_for_phi): Take walking
5934         limit by reference.
5935         (walk_non_aliased_vuses): Take walking limit argument.
5936         * tree-ssa-alias.c (maybe_skip_until): Take limit and abort
5937         walking if it is reached instead of just counting.
5938         (get_continuation_for_phi): Likewise.
5939         (walk_non_aliased_vuses): Likewise, instead of leaving counter
5940         limiting to the callback.
5941         * tree-ssa-sccvn.c (vn_reference_lookup_2): Adjust.
5942         (vn_reference_lookup_3): Likewise.
5943         (vn_reference_lookup_pieces): Likewise.
5944         (vn_reference_lookup): Likewise.
5945         * tree-ssa-pre.c (translate_vuse_through_block): Limit walking.
5946         * tree-ssa-scopedtables.c (vuse_eq): Adjust.
5947         (avail_exprs_stack::lookup_avail_expr): Likewise.
5949 2019-05-07  Jan Hubicka  <hubicka@ucw.cz>
5951         * tree-ssa-alias.c (aliasing_component_refs_p): Continue looking
5952         for comparaible types in the second direction even if first one
5953         hits incomparable type.
5955 2019-05-07  Richard Biener  <rguenther@suse.de>
5957         PR lto/90369
5958         * lto-wrapper.c (debug_objcopy): Use the original filename
5959         including archive offset for the filename used for -save-temps.
5961 2019-05-07  Li Jia He  <helijia@linux.ibm.com>
5963         * tree-ssa-phiopt.c (two_value_replacement): Fix a typo in parameter
5964         detection.
5966 2019-05-06  H.J. Lu  <hongjiu.lu@intel.com>
5967             Hongtao Liu  <hongtao.liu@intel.com>
5969         PR target/89750
5970         PR target/86444
5971         * config/i386/i386-expand.c (ix86_expand_sse_comi_round):
5972         Modified, original implementation isn't correct.
5974 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
5976         * config/rs6000/rs6000.md (FIRST_ALTIVEC_REGNO, LAST_ALTIVEC_REGNO)
5977         (LR_REGNO, CTR_REGNO, CA_REGNO, ARG_POINTER_REGNUM, CR0_REGNO)
5978         (CR1_REGNO, CR2_REGNO, CR3_REGNO, CR4_REGNO, CR5_REGNO, CR6_REGNO)
5979         (CR7_REGNO, MAX_CR_REGNO, VRSAVE_REGNO, VSCR_REGNO)
5980         (FRAME_POINTER_REGNUM): Change numbering.
5981         * config/rs6000/rs6000.c (rs6000_reg_names): Adjust.
5982         (alt_reg_names): Adjust.
5983         (rs6000_conditional_register_usage): Don't mark hard register 64 as
5984         fixed.
5985         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
5986         (DWARF_FRAME_REGISTERS): Delete.
5987         (DWARF2_FRAME_REG_OUT): Fix whitespace.
5988         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
5989         Adjust.
5990         (REG_ALLOC_ORDER): Adjust.
5991         (FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM): Adjust.
5992         (REG_CLASS_CONTENTS): Adjust.
5993         (RETURN_ADDR_RTX): Change comment.
5994         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use ARG_POINTER_REGNUM
5995         instead of 67.
5996         (REGISTER_NAMES): Adjust.
5997         (ADDITIONAL_REGISTER_NAMES): Adjust.
5998         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
6000 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
6002         * config/rs6000/rs6000.md (TFHAR_REGNO, TFIAR_REGNO, TEXASR_REGNO):
6003         Delete.
6004         * config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Adjust.
6005         (DWARF_FRAME_REGISTERS): Adjust.
6006         (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS):
6007         Adjust.
6008         (REG_ALLOC_ORDER): Adjust.
6009         (enum reg_class): Delete SPR_REGS.
6010         (REG_CLASS_NAMES): Delete SPR_REGS.
6011         (REG_CLASS_CONTENTS): Delete SPR_REGS.  Adjust for deleted TM regs.
6012         (REGISTER_NAMES): Adjust.
6013         (ADDITIONAL_REGISTER_NAMES): Adjust.
6014         * config/rs6000/darwin.h (REGISTER_NAMES): Adjust.
6015         * config/rs6000/htm.md (htm_mfspr_<mode>, htm_mtspr_<mode>): Adjust.
6016         * config/rs6000/predicates.md (htm_spr_reg_operand): Delete.
6017         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Adjust.
6018         (htm_spr_regno): Delete.
6019         (htm_expand_builtin): Adjust: the HTM builtins now have one fewer
6020         argument.
6021         (rs6000_dbx_register_number): Adjust.
6023 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
6025         * config/rs6000/rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): Delete.
6027 2019-05-06  Segher Boessenkool  <segher@kernel.crashing.org>
6029         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Handle
6030         FRAME_POINTER_REGNUM, ARG_POINTER_REGNUM, and 64 (which was MQ).
6032 2019-05-06  Jakub Jelinek  <jakub@redhat.com>
6034         PR tree-optimization/88709
6035         PR tree-optimization/90271
6036         * params.def (PARAM_STORE_MERGING_MAX_SIZE): New parameter.
6037         * gimple-ssa-store-merging.c (encode_tree_to_bitpos): Handle
6038         non-clobber CONSTRUCTORs with no elts.  Remove useless tmp_int
6039         variable.
6040         (imm_store_chain_info::coalesce_immediate_stores): Punt if the size
6041         of the store merging group is larger than
6042         PARAM_STORE_MERGING_MAX_SIZE parameter.
6043         (split_group): Add bzero_first argument.  If set, always emit first
6044         the first store which must be = {} of the whole area and then for the
6045         rest of the stores consider all zero bytes as paddings.
6046         (imm_store_chain_info::output_merged_store): Check if first store
6047         is = {} of the whole area and if yes, determine which setting of
6048         bzero_first for split_group gives smaller number of stores.  Adjust
6049         split_group callers.
6050         (lhs_valid_for_store_merging_p): Allow decls.
6051         (rhs_valid_for_store_merging_p): Allow non-clobber CONTRUCTORs with
6052         no elts.
6053         (pass_store_merging::process_store): Likewise.
6055 2019-05-06  Kelvin Nilsen  <kelvin@gcc.gnu.org>
6057         PR target/89424
6058         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Add
6059         handling of V1TImode.
6061 2019-05-06  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6063         PR target/89221
6064         * config.gcc (i[34567]86-*-*, x86_64-*-*): Move tests for enable_cld
6065         and enable_frame_pointer ...
6066         * configure.ac: ... here.  Update help strings for
6067         --enable-frame-pointer.
6068         * configure: Regenerate.
6069         * config/i386/i386-options.c (ix86_option_override_internal): Remove
6070         USE_X86_64_FRAME_POINTER define, use USE_IX86_FRAME_POINTER instead.
6071         * config/i386/sol2.h (USE_IX86_FRAME_POINTER): Remove.
6072         (USE_X86_64_FRAME_POINTER): Ditto.
6074 2019-05-06  Martin Liska  <mliska@suse.cz>
6076         * config.gcc: Append to target_gtfiles and fix indentation.
6078 2019-05-06  Richard Biener  <rguenther@suse.de>
6080         PR tree-optimization/90358
6081         * tree-vect-stmts.c (get_group_load_store_type): Properly
6082         detect unused upper half of load.
6083         (vectorizable_load): Likewise.
6085 2019-05-06  Richard Biener  <rguenther@suse.de>
6087         PR tree-optimization/88828
6088         * tree-ssa-forwprop.c (get_bit_field_ref_def): Split out from...
6089         (simplify_vector_constructor): ...here.  Handle constants in
6090         the constructor.
6092 2019-05-06  Richard Biener  <rguenther@suse.de>
6094         PR tree-optimization/90328
6095         * tree-data-ref.h (dr_may_alias_p): Pass in the actual loop nest.
6096         * tree-data-ref.c (dr_may_alias_p): Check whether the clique
6097         is valid in the loop nest before using it.
6098         (initialize_data_dependence_relation): Adjust.
6099         * graphite-scop-detection.c (build_alias_set): Pass the SCOP enclosing
6100         loop as loop-nest to dr_may_alias_p.
6102 2019-05-06  Richard Biener  <rguenther@suse.de>
6104         * dwarf2out.c (mem_loc_descriptor): Initialize int_mode.
6106 2019-05-06  Richard Biener  <rguenther@suse.de>
6108         PR tree-optimization/90316
6109         * tree-ssa-alias.c (maybe_skip_until): Pass in target BB,
6110         compute target on demand.
6111         (get_continuation_for_phi): Remove code walking stmts to
6112         get to a target virtual operand which could end up being
6113         quadratic.
6115 2019-05-06  Martin Liska  <mliska@suse.cz>
6117         PR sanitizer/90312
6118         * config/i386/i386-options.c (ix86_option_override_internal): Error only
6119         when -mabi is selected to a non-default version.
6121 2019-05-06  Hrishikesh Kulkarni  <hrishikeshparag@gmail.com>
6122             Martin Liska  <mliska@suse.cz>
6124         * Makefile.in: Add lto-dump.texi.
6125         * cgraph.h: Add new functions get_visibility_string and
6126         get_symtab_type_string.
6127         * doc/gcc.texi: Include lto-dump section.
6128         * doc/lto-dump.texi: New file.
6129         * dumpfile.c (dump_switch_p_1): Use parse_dump_option.
6130         (parse_dump_option): Factor out this function.
6131         * dumpfile.h (enum dump_flag): Add new value TDF_ERROR.
6132         (parse_dump_option): Export the function.
6133         * symtab.c (symtab_node::get_visibility_string): New function.
6134         (symtab_node::get_symtab_type_string): Likewise.
6136 2019-05-06  Martin Liska  <mliska@suse.cz>
6138         * config/i386/i386-builtins.c: New file.
6139         * config/i386/i386-builtins.h: New file.
6140         * config/i386/i386-expand.c: New file.
6141         * config/i386/i386-expand.h: New file.
6142         * config/i386/i386-features.c: New file.
6143         * config/i386/i386-features.h: New file.
6144         * config/i386/i386-options.c: New file.
6145         * config/i386/i386-options.h: New file.
6146         * config.gcc: Add new files into extra_objs and
6147         target_gtfiles.
6148         * config/i386/i386.c: Split content of the file
6149         into newly introduced files.
6150         * config/i386/i386.h: Declare common variables
6151         and macros.
6152         * config/i386/t-i386: Define dependencies for new files.
6154 2019-05-03  Richard Earnshaw  <rearnsha@arm.com>
6156         PR target/89400
6157         * config/arm/arm.md (unaligned_loadsi): Add variant for thumb1.
6158         Restrict 'all' variant to 32-bit configurations.
6159         (unaligned_loadhiu): Likewise.
6160         (unaligned_storehi): Likewise.
6161         (unaligned_storesi): Likewise.
6162         (unaligned_loadhis): Disable when compiling for thumb1.
6164 2019-05-03  Marc Glisse  <marc.glisse@inria.fr>
6166         PR tree-optimization/90269
6167         * tree-loop-distribution.c (find_seed_stmts_for_distribution):
6168         Ignore clobbers.
6170 2019-05-03  Martin Liska  <mliska@suse.cz>
6172         * hash-map.h: Add is_empty function.
6173         * hash-set.h: Likewise.
6174         * hash-table.h: Likewise.
6175         * dwarf2out.c (dwarf2out_finish): Use is_empty instead of
6176         elements () == 0 (and similar usages).
6177         * gimple-ssa-store-merging.c (pass_store_merging::terminate_and_process_all_chains): Likewise.
6178         * gimplify.c (gimplify_bind_expr): Likewise.
6179         (gimplify_switch_expr): Likewise.
6180         * hash-map-tests.c (test_map_of_strings_to_int): Likewise.
6181         * ipa-icf.c (sem_item_optimizer::remove_symtab_node): Likewise.
6182         * postreload-gcse.c (dump_hash_table): Likewise.
6183         (gcse_after_reload_main): Likewise.
6184         * predict.c (combine_predictions_for_bb): Likewise.
6185         * tree-parloops.c (reduction_phi): Likewise.
6186         (separate_decls_in_region): Likewise.
6187         (transform_to_exit_first_loop): Likewise.
6188         (gen_parallel_loop): Likewise.
6189         (gather_scalar_reductions): Likewise.
6190         (try_create_reduction_list): Likewise.
6191         * var-tracking.c (dump_vars): Likewise.
6192         (emit_notes_for_changes): Likewise.
6193         (vt_emit_notes): Likewise.
6195 2019-05-03  Richard Biener  <rguenther@suse.de>
6197         PR tree-optimization/90316
6198         * tree-ssa-pre.c (pass_pre::execute): Re-compute DOM fast queries
6199         before running VN.
6201 2019-05-03  Richard Biener  <rguenther@suse.de>
6203         * tree-vect-stmts.c (get_group_load_store_type): Avoid
6204         peeling for gaps by loading only lower halves of vectors
6205         if possible.
6206         (vectorizable_load): Likewise.
6208 2019-05-03  Richard Biener  <rguenther@suse.de>
6210         PR middle-end/89518
6211         * match.pd: Add pattern to optimize (A / B) * B + (A % B) to A.
6213 2019-05-03  Richard Biener  <rguenther@suse.de>
6215         PR middle-end/87314
6216         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)):
6217         Handle STRING_CST vs DECL or STRING_CST.
6219 2019-05-03  Richard Biener  <rguenther@suse.de>
6221         PR tree-optimization/88963
6222         * tree-ssa-forwprop.c (pass_forwprop::execute): Rewrite
6223         vector loads feeding only BIT_FIELD_REFs to component
6224         loads.  Rewrite stores fed by CONSTRUCTORs to component
6225         stores.
6227 2019-05-03  Jakub Jelinek  <jakub@redhat.com>
6229         * opts.h (finish_options): Remove lang_mask argument.
6230         (print_help, help_option_argument): Declare.
6231         * opts.c (print_help): Remove forward declaration, no longer static.
6232         (finish_options): Remove lang_mask argument, don't call print_help
6233         here.
6234         * opts-global.c (decode_options): Adjust finish_option caller, call
6235         print_help here.
6237         PR tree-optimization/90303
6238         * ipa-devirt.c (obj_type_ref_class, get_odr_type): Don't use
6239         TYPE_CANONICAL for TYPE_STRUCTURAL_EQUALITY_P types in !in_lto_p mode.
6241 2019-05-03  Richard Biener  <rguenther@suse.de>
6243         PR tree-optimization/89698
6244         * gimple-fold.c (canonicalize_constructor_val): Early out
6245         for constants, handle unfolded INTEGER_CSTs as they appear in
6246         C++ virtual table ctors.
6248 2019-05-03  Richard Biener  <rguenther@suse.de>
6250         * passes.c (execute_function_todo): Remove dead code.
6252 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
6254         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Do not use
6255         the internal register number, for any "real" register.
6257 2019-05-02  Segher Boessenkool  <segher@kernel.crashing.org>
6259         * config/rs6000/rs6000.c (rs6000_dbx_register_number): Return the
6260         correct numbers for TFHAR, TFIAR, TEXASR.
6262 2019-05-02  Richard Biener  <rguenther@suse.de>
6264         PR tree-optimization/89653
6265         * tree-ssa-loop.c (pass_data_tree_loop_init): Execute
6266         update-address-taken before the pass.
6267         * passes.def (pass_tree_loop_init): Put comment before it.
6269 2019-05-02  Richard Biener  <rguenther@suse.de>
6271         PR tree-optimization/89509
6272         * tree-ssa-structalias.c (compute_dependence_clique): Look
6273         at the first subvar when determining whether it is restrict.
6275 2019-05-02  Richard Biener  <rguenther@suse.de>
6277         PR tree-optimization/90273
6278         * tree-ssa-dce.c (eliminate_unnecessary_stmts): Eliminate
6279         useless debug stmts.
6281 2019-05-02  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
6283         * config/aarch64/aarch64-sve.md (<sur>dot_prod<vsi2qi>): Taken from SVE
6284         ACLE branch.
6285         * config/aarch64/iterators.md: Copied Vetype_fourth, VSI2QI and vsi2qi from
6286         SVE ACLE branch.
6287         * tree-vect-loop.c (use_mask_by_cond_expr_p): New function to check if a
6288         VEC_COND_EXPR be inserted to emulate a conditional internal function.
6289         (build_vect_cond_expr): Emit the VEC_COND_EXPR.
6290         (vectorizable_reduction): Use the functions above to vectorize in a
6291         fully masked loop codes that don't have a conditional internal
6292         function.
6294 2019-05-02  Martin Liska  <mliska@suse.cz>
6296         * cgraphclones.c: Call valid_attribute_p with 1 for
6297         target_clone.
6298         * config/i386/i386-c.c (ix86_pragma_target_parse): Use 0 as
6299         it's for target attribute.
6300         * config/i386/i386-protos.h (ix86_valid_target_attribute_tree):
6301         Add new boolean argument.
6302         * config/i386/i386.c (ix86_valid_target_attribute_inner_p):
6303         Likewise.
6304         (ix86_valid_target_attribute_tree): Pass target_clone_attr
6305         to ix86_valid_target_attribute_inner_p.
6306         (ix86_valid_target_attribute_p): Pass flags argument to
6307         ix86_valid_target_attribute_inner_p.
6308         (get_builtin_code_for_version): Use 0 as it's target attribute.
6310 2019-05-02  Martin Liska  <mliska@suse.cz>
6312         * gcc.c (process_command): Add dummy file only
6313         if n_infiles == 0.
6314         * opts-global.c (decode_options): Pass lang_mask.
6315         * opts.c (print_help): New function.
6316         (finish_options): Print --help if help_option_argument
6317         is set.
6318         (common_handle_option): Factor out content of OPT__help_
6319         into print_help.
6320         * opts.h (finish_options): Add new argument.
6322 2019-05-02  Martin Liska  <mliska@suse.cz>
6324         PR target/88809
6325         * config/i386/i386.c (ix86_expand_strlen): Use strlen call.
6326         With -minline-all-stringops use inline expansion using 4B loop.
6327         * doc/invoke.texi: Document the change of
6328         -minline-all-stringops.
6330 2019-05-01  Jeff Law  <law@redhat.com>
6332         PR tree-optimization/88797
6333         * gimple-ssa-split-paths (is_feasible_trace): Reject cases where the
6334         PHI feeds a conditional on the RHS of an assignment.
6336 2019-04-30  Andrew Waterman  <andrew@sifive.com>
6337             Jim Wilson  <jimw@sifive.com>
6339         * config/riscv/constraints.md (L): New.
6340         * config/riscv/predicates.md (lui_operand): New.
6341         (sfb_alu_operand): New.
6342         * config/riscv/riscv-protos.h (riscv_expand_conditional_move): Declare.
6343         * config/riscv/riscv.c (riscv_expand_conditional_move): New.
6344         * config/riscv/riscv.h (TARGET_SFB_ALU): New.
6345         * config/riscv/risc.md (type): Add sfb_alu.
6346         (branch<mode>): Renamed from branch_order<mode>.  Change predicate for
6347         operand 3 to reg_or_0_operand.  In output string, change %3 to %z3.
6348         (branch_zero<mode>): Delete.
6349         (mov<mode>cc): New.
6350         (mov<GPR:mode><X:mode>cc): Likewise.
6351         * config/riscv/sifive-7.md (sifive_7_sfb_alu): New.  Use in bypasses.
6353 2019-04-30  Nathan Sidwell  <nathan@acm.org>
6355         * tree.h (MARK_TS_EXP): New.
6357 2019-04-30  Martin Liska  <mliska@suse.cz>
6359         * opts.c (enable_warning_as_error): Provide hints
6360         for unknown options.
6362 2019-04-30  Martin Liska  <mliska@suse.cz>
6364         PR debug/90288
6365         * doc/invoke.texi: Add missing dash for gas-locview-support
6366         and gno-as-locview-support.
6368 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
6370         PR target/89093
6371         * config/aarch64/aarch64.c (aarch64_process_one_target_attr): Don't skip
6372         whitespace at the start of target attribute string.
6374 2019-04-30  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6376         PR target/86538
6377         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
6378         Define __ARM_FEATURE_ATOMICS.
6380 2019-04-30  Martin Liska  <mliska@suse.cz>
6382         * gimple-fold.c (gimple_fold_builtin_memory_op): Change endp
6383         into built_in_function enum. Remove code for endp == 2 and
6384         use BUILT_IN_* constants.
6385         (gimple_fold_builtin): Call the function with fcode.
6387 2019-04-30  Martin Liska  <mliska@suse.cz>
6389         * config/i386/i386.c (ix86_builtin_reciprocal): Cast
6390         DECL_FUNCTION_CODE into ix86_builtins enum before
6391         the switch statement.
6393 2019-04-30  Jakub Jelinek  <jakub@redhat.com>
6395         PR tree-optimization/89475
6396         * tree-ssa-ccp.c (evaluate_stmt): Handle BUILT_IN_BSWAP{16,32,64}
6397         calls.
6399 2019-04-30  Martin Liska  <mliska@suse.cz>
6401         PR translation/90274
6402         * opts.c (print_filtered_help): Wrap string in _(...).
6404 2019-04-30  Bin Cheng  <bin.cheng@linux.alibaba.com>
6406         PR tree-optimization/90240
6407         Revert:
6408         2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
6410         PR tree-optimization/90078
6411         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
6412         checks for infinite_cost overflow.
6414 2019-04-29  Jeff Law  <law@redhat.com>
6416         * passes.def: Move -Wrestrict pass after copy propagation.
6418 2019-04-29  Maya Rashish  <coypu@sdf.org>
6420         * config.gcc (default_gnu_indirect_function): Default to yes
6421         for arm*-*-netbsd*, i[34567]86-*-netbsd*, powerpc*-*-netbsd*,
6422         sparc*-*-netbsd*, x86_64-*-netbsd*.
6424 2019-04-29  Vladislav Ivanishin  <vlad@ispras.ru>
6426         * tree-ssa-uninit.c (is_pred_expr_subset_of): Correctly handle cases
6427         where cond2 is NE_EXPR.
6428         (is_value_included_in): Update comment.
6430 2019-04-29  Richard Biener  <rguenther@suse.de>
6432         PR tree-optimization/90278
6433         * tree-ssa-forwprop.c (pass_forwprop::execute): Transfer/clean
6434         EH on comparison simplification.
6436 2019-04-29  Jason Merrill  <jason@redhat.com>
6438         PR c++/82081 - tail call optimization breaks noexcept
6439         * tree-tailcall.c (find_tail_calls): Don't turn a call from a
6440         nothrow function to a might-throw function into a tail call.
6442 2019-04-29  Richard Sandiford  <richard.sandiford@arm.com>
6444         * tree-data-ref.h (data_dependence_relation::inner_loop): Delete.
6445         (DDR_INNER_LOOP): Likewise.
6446         * tree-data-ref.c (dump_data_dependence_relation): Update accordingly.
6447         (initialize_data_dependence_relation): Likewise.
6448         (insert_innermost_unit_dist_vector): Use 0 instead of DDR_INNER_LOOP.
6450 2019-04-29  Jakub Jelinek  <jakub@redhat.com>
6452         PR rtl-optimization/90257
6453         * cfgrtl.c (flow_active_insn_p): Return true for USE of a function
6454         return value.
6456         Revert the revert:
6457         2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6459         PR target/90178
6460         Revert:
6461         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
6463         Revert the revert:
6464         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
6466         Revert:
6467         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
6469         * lra-spills.c (lra_final_code_change): Remove useless move insns.
6471 2019-04-29  Richard Biener  <rguenther@suse.de>
6473         * tree-ssa.c (insert_debug_temp_for_var_def): For {CLOBBER}
6474         rhs issue a reset.
6476 2019-04-27  Iain Buclaw  <ibuclaw@gdcproject.org>
6478         * config/netbsd-d.c: Include memmodel.h.  Remove unused tree.h,
6479         varasm.h, and netbsd-protos.h.
6481 2019-04-27  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6483         PR target/89261
6484         * config/i386/i386-protos.h (ix86_data_alignment): Change
6485         the second argument type to unsigned int.
6486         * config/i386/i386.c (ix86_data_alignment): Change "align"
6487         argument type to unsigned int.
6489 2019-04-27  Martin Liska  <mliska@suse.cz>
6491         PR middle-end/90258
6492         * opt-suggestions.c (option_proposer::build_option_suggestions):
6493         When get_valid_option_values returns empty values, add the
6494         misspelling candidate.
6496 2019-04-26  Jim Wilson  <jimw@sifive.com>
6498         * config/riscv/riscv-protos.h (riscv_move_integer): Add machine_mode
6499         parameter.
6500         * config/riscv/riscv.c (riscv_move_integer): New parameter orig_mode.
6501         Pass orig_mode to riscv_build_integer.
6502         (riscv_split_integer): Pass mode to riscv_move_integer.
6503         (riscv_legitimize_const_move): Likewise.
6504         (riscv_legitimize_move): For MEM dest and CONST_INT src case, new local
6505         promoted_mode.  Replace force_reg call with code to load constant into
6506         promoted reg and then subreg it for the store.
6507         * config/riscv/riscv.md (low<mode>+1): Pass <GPR:MODE>mode to
6508         riscv_move_integer.
6510 2018-04-26  Eugene Sharygin  <eush@ispras.ru>
6512         * gdbhooks.py: Fix UnicodeDecodeErrors when printing trees with
6513         corrupt codes.
6515 2019-04-26  Richard Sandiford  <richard.sandiford@arm.com>
6517         * tree.h (TYPE_VECTOR_SUBPARTS, SET_TYPE_VECTOR_SUBPARTS): Add
6518         commentary about the encoding of precision.
6520 2019-04-25  Andreas Tobler  <andreast@gcc.gnu.org>
6522         * config/i386/freebsd64.h: Add bits for 32-bit multilib support.
6523         * config/i386/t-freebsd64: New file.
6524         * config.gcc: Add the t-freebsd64 for multilib support.
6526 2019-04-25  UroÅ¡ Bizjak  <ubizjak@gmail.com>
6528         * doc/extend.texi (vector_size): Add missing comma after @xref.
6530 2019-04-25  Jakub Jelinek  <jakub@redhat.com>
6532         * BASE-VER: Set to 10.0.0.
6534 2019-04-25  Richard Biener  <rguenther@suse.de>
6536         PR middle-end/89765
6537         * gimplify.c (gimplify_expr): Avoid turning a lvalue
6538         VIEW_CONVERT_EXPR into one operating on an rvalue.
6540 2019-04-25  H.J. Lu  <hongjiu.lu@intel.com>
6542         PR target/89929
6543         * config/i386/i386.c (feature_priority): Moved to file scope.
6544         (processor_features): Likewise.
6545         (processor_model): Likewise.
6546         (_arch_names_table): Likewise.
6547         (arch_names_table): Likewise.
6548         (_feature_list): Removed.
6549         (feature_list): Likewise.
6550         (_isa_names_table): Moved to file scope.  Add priority.
6551         (isa_names_table): Likewise.
6552         (get_builtin_code_for_version): Replace feature_list with
6553         isa_names_table.  Update error message for P_ZERO priority.
6555 2019-04-25  Richard Biener  <rguenther@suse.de>
6557         * tree-pass.h (make_pass_phi_only_cprop): Remove.
6558         * timevar.def (TV_TREE_PHI_CPROP): Likewise.
6560 2019-04-24  Jeff Law  <law@redhat.com>
6562         PR tree-optimization/90037
6563         * Makefile.in (OBJS): Remove tree-ssa-phionlycprop.c
6564         * passes.def: Replace all instance of phi-only cprop with the
6565         lattice propagator.  Move propagation pass from after erroneous
6566         path isolation to before erroneous path isolation.
6567         * tree-ssa-phionlycprop.c: Remove.
6569 2019-04-24  Richard Biener  <rguenther@suse.de>
6571         PR middle-end/90213
6572         * gimple-fold.c (fold_const_aggregate_ref_1): Do multiplication
6573         by size and BITS_PER_UNIT on poly-wide-ints.
6575 2019-04-25  Richard Biener  <rguenther@suse.de>
6577         PR middle-end/90194
6578         * match.pd: Add pattern to simplify view-conversion of an
6579         empty constructor.
6581 2019-04-24  Clement Chigot  <clement.chigot@atos.net>
6583         * config/rs6000/aix71.h (SUBTARGET_OVERRIDE_OPTIONS): Disable
6584         OPTION_MASK_VSX and OPTION_MASK_ALTIVEC from rs6000_isa_flags
6585         for Go on 32 bit AIX.
6586         * config/rs6000/aix72.h: Likewise.
6588 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
6590         PR target/90193
6591         * rtl.c (classify_insn): Return JUMP_INSN for asm goto.
6592         * emit-rtl.c (try_split): Copy over REG_LABEL_TARGET.
6594 2019-04-24  Andreas Krebbel  <krebbel@linux.ibm.com>
6596         PR target/89952
6597         * config/s390/s390.c (s390_restore_gprs_from_fprs): Restore GPRs
6598         from FPRs in reverse order.  Generate REG_CFA_DEF_CFA note also
6599         for restored hard frame pointer.
6600         (s390_sched_dependencies_evaluation): Implement new target hook.
6601         (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New macro definition.
6603 2019-04-24  Claudiu Zissulescu  <claziss@sysnopsys.com>
6605         * config/arc/arc-options.def: Fix typos and spelling mistakes.
6606         * config/arc/arc.c (arc_init): Cleanup warning message.
6607         (arc_override_options): Likewise.
6609 2019-04-24  Jakub Jelinek  <jakub@redhat.com>
6611         PR target/90187
6612         * config/i386/i386.c (ix86_expand_sse_fp_minmax): Force if_true into
6613         a register if both if_true and if_false are MEMs.
6615         PR tree-optimization/90208
6616         * tree-cfg.c (remove_bb): Move forced labels from removed bbs
6617         after labels of new_bb, not before them.
6619         PR tree-optimization/90211
6620         * tree-parloops.c (try_create_reduction_list): Ignore phi arguments
6621         which are not SSA_NAMEs.
6623 2018-04-23  Sudakshina Das  <sudi.das@arm.com>
6625         * config/aarch64/aarch64-linux.h (TARGET_ASM_FILE_END): Define for
6626         AArch64.
6627         (aarch64_file_end_indicate_exec_stack): Add gnu note section.
6629 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
6631         PR rtl-optimization/87979
6632         * modulo-sched.c (sms_schedule): Start ii value "mii" should
6633         not equal zero.
6635 2019-04-23  Roman Zhuykov  <zhroma@ispras.ru>
6637         PR rtl-optimization/84032
6638         * modulo-sched.c (ps_insn_find_column): Change condition so that
6639         branch will always be the last insn in a row inside partial
6640         schedule.
6642 2019-04-23  Richard Biener  <rguenther@suse.de>
6644         PR debug/90131
6645         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Add
6646         dest_single_pred_p argument.
6647         (remove_forwarder_block): Adjust.
6648         (remove_forwarder_block_with_phi): Likewise.
6650 2019-04-23  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
6651             Bernd Edlinger  <bernd.edlinger@hotmail.de>
6652             Jakub Jelinek  <jakub@redhat.com>
6654         PR target/89093
6655         * config/arm/arm.c (aapcs_vfp_is_call_or_return_candidate): Diagnose
6656         if used with general-regs-only.
6657         (arm_conditional_register_usage): Don't add non-general regs if
6658         general-regs-only.
6659         (arm_valid_target_attribute_rec): Handle general-regs-only.
6660         * config/arm/arm.h (TARGET_HARD_FLOAT): Return false if
6661         general-regs-only.
6662         (TARGET_HARD_FLOAT_SUB): Define.
6663         (TARGET_SOFT_FLOAT): Define as negation of TARGET_HARD_FLOAT_SUB.
6664         (TARGET_REALLY_IWMMXT): Add && !TARGET_GENERAL_REGS_ONLY.
6665         (TARGET_REALLY_IWMMXT2): Likewise.
6666         * config/arm/arm.opt: Add -mgeneral-regs-only.
6667         * doc/extend.texi: Document ARM general-regs-only target.
6668         * doc/invoke.texi: Document ARM -mgeneral-regs-only.
6670 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
6672         PR tree-optimization/90078
6673         * tree-ssa-loop-ivopts.c (comp_cost::operator +,-,+=,-+,/=,*=): Add
6674         checks for infinite_cost overflow.
6676 2019-04-23  Bin Cheng  <bin.cheng@linux.alibaba.com>
6678         PR tree-optimization/90021
6679         * tree-chrec.c (evolution_function_is_univariate_p): New parameter
6680         and check univariate against it.
6681         * tree-chrec.h (evolution_function_is_univariate_p): New parameter.
6682         * tree-data-ref.c (add_other_self_distances): Pass new argument.
6684 2019-04-21  H.J. Lu  <hongjiu.lu@intel.com>
6686         PR target/90178
6687         Revert:
6688         2018-11-21  Uros Bizjak  <ubizjak@gmail.com>
6690         Revert the revert:
6691         2013-10-26  Vladimir Makarov  <vmakarov@redhat.com>
6693         Revert:
6694         2013-10-25  Vladimir Makarov  <vmakarov@redhat.com>
6696         * lra-spills.c (lra_final_code_change): Remove useless move insns.
6698 2019-04-21  Iain Sandoe  <iain@sandoe.co.uk>
6700         * config/rs6000/rs6000.md (group_end_nop): Emit insn register
6701         names using operand format, rather than hard-wired.
6702         (speculation_barrier): Likewise.
6704 2019-04-19  Segher Boessenkool  <segher@kernel.crashing.org>
6706         PR tree-optimization/88055
6707         * tree-call-cdce.c (comparison_code_if_no_nans): New function.
6708         (gen_one_condition): Use it if !HONOR_NANS.
6710 2019-04-19  Jakub Jelinek  <jakub@redhat.com>
6712         PR middle-end/90139
6713         * tree-outof-ssa.c (get_temp_reg): If reg_mode is BLKmode, return
6714         assign_temp instead of gen_reg_rtx.
6716 2019-04-19  Christophe Lyon  <christophe.lyon@linaro.org>
6718         PR translation/90118
6719         * config/aarch64/aarch64.c (aarch64_override_options_internal):
6720         Add missing space before %<.
6722 2019-04-18  Peter Bergner  <bergner@linux.ibm.com>
6724         PR rtl-optimization/87871
6725         * ira-lives.c (make_object_dead): Don't add conflicts to
6726         TOTAL_CONFLICT_HARD_REGS for register ignore_reg_for_conflicts.
6728 2019-04-18  Martin Sebor  <msebor@redhat.com>
6730         PR middle-end/89797
6731         * tree.h (TYPE_VECTOR_SUBPARTS): Use HOST_WIDE_INT_1U.
6732         * config/aarch64/aarch64.c (aarch64_simd_vector_alignment): Avoid
6733         assuming type size fits in SHWI.
6735 2019-04-18  Jan Hubicka  <hubicka@ucw.cz>
6737         PR ipa/85051
6738         * ipa-inline.c (flatten_function): New parameter UPDATE.
6739         (ipa_inline, early_inliner): Use it.
6741 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
6743         * fold-const.c (int_const_binop): Return early on failure.
6745 2019-04-18  Richard Sandiford  <richard.sandiford@arm.com>
6747         PR middle-end/85164
6748         * combine.c (force_int_to_mode): Cast the argument rather than
6749         the result of known_alignment.
6750         * rtlanal.c (rtx_addr_can_trap_p_1): Use known_subrange_p.
6752 2019-04-18  Richard Biener  <rguenther@suse.de>
6754         PR debug/90131
6755         * tree-cfgcleanup.c (move_debug_stmts_from_forwarder): Split
6756         out from ...
6757         (remove_forwarder_block): ... here.
6758         (remove_forwarder_block_with_phi): Also move debug stmts here.
6760 2019-04-18  Jakub Jelinek  <jakub@redhat.com>
6762         PR translation/79183
6763         * gimple-ssa-sprintf.c (format_directive): Use inform_n instead of
6764         inform where appropriate.
6766 2019-04-18  Richard Biener  <rguenther@suse.de>
6768         * tree.c (get_qualified_type): Put found type variants at the
6769         head of the variant list.
6771 2018-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
6773         * config/rs6000/rs6000.c (rs6000_register_move_cost): Fix typo.
6775 2019-04-17  Hongtao Liu  <hongtao.liu@intel.com>
6777         PR target/90125
6778         * config/i386/avx512fintrin.h (_mm_maskz_fmadd_round_sd,
6779         _mm_maskz_fmadd_round_ss, _mm_maskz_fmsub_round_sd,
6780         _mm_maskz_fmsub_round_ss, _mm_maskz_fnmadd_round_sd,
6781         _mm_maskz_fnmadd_round_ss, _mm_maskz_fnmsub_round_sd,
6782         _mm_maskz_fnmsub_round_ss): Use _maskz builtin instead of _mask3.
6784 2019-04-17  Peter Bergner  <bergner@linux.ibm.com>
6786         * ira-conflicts.c (print_allocno_conflicts): Always print something,
6787         even for allocno's with no conflicts.
6788         (print_conflicts): Print an extra newline.
6790 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
6792         * auto-inc-dec.c (attempt_change): Set the alignment of the
6793         temporary memory to that of the original.
6795 2019-04-17  Joao Moreira  <jmoreira@suse.de>
6797         * targhooks.c (default_print_patchable_function_entry): Emit
6798         __patchable_function_entries section with writable flags to allow
6799         relocation resolution.
6801 2019-04-17  Jonny Grant  <jg@jguk.org>
6803         * collect2.c (main): Change gcc.gnu.org URL to HTTPS.
6805 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
6807         PR middle-end/90095
6808         * internal-fn.c (expand_mul_overflow): Don't set SUBREG_PROMOTED_VAR_P
6809         on lowpart SUBREGs.
6811 2019-04-17  Claudiu Zissulescu  <claziss@synopsys.com>
6813         * config/arc/arc.c (arc_init): Format diagnostic string.
6814         (arc_override_options): Likewise.
6815         (check_if_valid_regno_const): Likewise.
6816         (arc_reorg): Likewise.
6818 2019-04-17  Segher Boessenkool  <segher@kernel.crashing.org>
6820         PR target/17108
6821         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Adjust pattern
6822         name.
6823         (rs6000_emit_allocate_stack_1): Simplify condition.  Adjust pattern
6824         name.
6825         * config/rs6000/rs6000.md (bits): Add entries for SF and DF.
6826         (*movdi_update1): Use Pmode.
6827         (movdi_<mode>_update): Fix argument to avoiding_indexed_address_p.
6828         (movdi_<mode>_update_stack): Rename to ...
6829         (movdi_update_stack): ... this.  Fix comment.  Change condition. Don't
6830         use Pmode.
6831         (*movsi_update1): Use Pmode.
6832         (*movsi_update2): Use Pmode.
6833         (movsi_update): Rename to ...
6834         (movsi_<mode>_update): ... this.  Use Pmode.
6835         (movsi_update_stack): Fix condition.
6836         (*movhi_update1): Use Pmode.  Fix argument to
6837         avoiding_indexed_address_p.
6838         (*movhi_update2): Ditto.
6839         (*movhi_update3): Ditto.
6840         (*movhi_update4): Ditto.
6841         (*movqi_update1): Ditto.
6842         (*movqi_update2): Ditto.
6843         (*movqi_update3): Ditto.
6844         (*movsf_update1, *movdf_update1): Merge, rename to...
6845         (*mov<mode>_update1): This.  Use Pmode.  Fix argument to
6846         avoiding_indexed_address_p.  Add "size" attribute.
6847         (*movsf_update2, *movdf_update2): Merge, rename to...
6848         (*mov<mode>_update2): This.  Ditto.
6849         (*movsf_update3): Use Pmode.  Fix argument to
6850         avoiding_indexed_address_p.
6851         (*movsf_update4): Ditto.
6852         (allocate_stack): Simplify condition.  Adjust pattern names.
6854 2019-04-17  Jakub Jelinek  <jakub@redhat.com>
6856         PR target/89093
6857         * config/arm/arm.c (arm_valid_target_attribute_rec): Don't skip
6858         whitespace at the start of target attribute string.
6860 2019-04-16  Pat Haugen  <pthaugen@us.ibm.com>
6862         PR target/84369
6863         * config/rs6000/power9.md: Add store forwarding bypass.
6865 2019-04-16  Alexandre Oliva <aoliva@redhat.com>
6867         PR debug/89528
6868         * valtrack.c (dead_debug_insert_temp): Reset debug references
6869         to the return value of a call being removed.
6871 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
6873         * config/arc/arc-protos.h (arc_register_move_cost): Remove.
6874         * config/arc/arc.c (arc_register_move_cost): Re-purpose it to
6875         implement target hook.
6876         (arc_memory_move_cost): New function.
6877         (TARGET_REGISTER_MOVE_COST): Define.
6878         (TARGET_MEMORY_MOVE_COST): Likewise.
6879         * config/arc/arc.h (REGISTER_MOVE_COST): Remove.
6880         (MEMORY_MOVE_COST): Likewise.
6882 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
6884         * config/arc/arc.md (sibcall_insn): Use Rcd constraint.
6885         (sibcall_value_insn): Likewise.
6886         * config/arc/constraints.md (Rs5): Remove.
6888 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
6890         * config/arc/arc.c (arc_hard_regno_modes): Add two missing modes
6891         for last two fake registers.
6892         (arc_conditional_register_usage): Make sure fake frame and arg
6893         pointer regs are in general regs class.
6894         (FRAME_POINTER_MASK): Remove.
6895         (RETURN_ADDR_MASK): Remove.
6896         (arc_must_save_register): Use hard frame regnum.
6897         (frame_restore_reg): Use hard_frame_pointer_rtx.
6898         (arc_save_callee_saves): Likewise.
6899         (arc_restore_callee_saves): Likewise.
6900         (arc_save_callee_enter): Likewise.
6901         (arc_restore_callee_leave): Likewise.
6902         (arc_save_callee_milli): Likewise.
6903         (arc_eh_return_address_location): Likewise.
6904         (arc_check_multi): Use hard frame regnum.
6905         (arc_can_eliminate): Likewise.
6906         * config/arc/arc.h (FIXED_REGISTERS): Make FP register available
6907         for register allocator.
6908         (REG_CLASS_CONTENTS): Update GENERAL_REGS.
6909         (REGNO_OK_FOR_BASE_P): Consider FRAME_POINTER_REGNUM.
6910         (FRAME_POINTER_REGNUM): Change it to a fake register.
6911         (HARD_FRAME_POINTER_REGNUM): Defined.
6912         (ARG_POINTER_REGNUM): Change it to a new fake register.
6913         (ELIMINABLE_REGS): Update.
6914         (REGISTER_NAMES): Update names.
6915         * config/arc/arc.md (LP_START): Remove.
6916         (LP_END): Likewise.
6917         (shift_si3_loop): Update pattern.
6919 2019-04-16  Claudiu Zissulescu  <claziss@synopsys.com>
6921         * config/arc/arc.c (arc_expand_prologue): Emit blockage regardless
6922         to avoid delay slot scheduling.
6923         (arc_must_save_register): Don't save SP.
6924         * config/arc/arc.md (stack_tie): Remove.
6925         (UNSPEC_ARC_STKTIE): Likewise.
6927 2019-04-16  Kito Cheng  <kito.cheng@gmail.com>
6928             Shiva Chen  <shiva0217@gmail.com>
6930         * config/nds32/nds32-md-auxiliary.c (nds32_split_ashiftdi3): Fix wrong
6931         code gen with large shift amount.
6933 2019-04-16  Chung-Ju Wu  <jasonwucj@gmail.com>
6935         * config/nds32/nds32-pipelines-auxiliary.c (wext_odd_dep_p): Handle
6936         subreg.
6938 2019-04-16  Jakub Jelinek  <jakub@redhat.com>
6940         PR target/90096
6941         * config/i386/i386.c (ix86_target_string): Add ADD_ABI_P argument, only
6942         print -m64/-mx32/-m32 if it is true.
6943         (ix86_debug_options, ix86_function_specific_print): Pass true as
6944         ADD_ABI_P to ix86_target_string.
6945         (ix86_expand_builtin): Adjust ix86_target_string caller, pass true as
6946         ADD_ABI_P only if OPTION_MASK_ISA_64BIT is set in bisa and in that case
6947         or into it OPTION_MASK_ISA_ABI_64 or OPTION_MASK_ISA_ABI_X32.
6949         PR rtl-optimization/90082
6950         * dce.c (can_delete_call): New function.
6951         (deletable_insn_p, mark_insn): Use it.
6953         PR tree-optimization/90090
6954         * tree-ssa-math-opts.c (is_division_by): Ignore divisions that can
6955         throw internally.
6956         (is_division_by_square): Likewise.  Formatting fix.
6958 2019-04-16  Richard Biener  <rguenther@suse.de>
6960         PR tree-optimization/56049
6961         * tree-ssa-loop-im.c (mem_ref_hasher::equal): Elide alias-set
6962         equality check if alias-set zero will prevail.
6964 2019-04-15  Jeff Law  <law@redhat.com>
6966         * config/microblaze/microblaze.c (microblaze_expand_block_move): Treat
6967         size and alignment as unsigned.
6969 2019-04-15  Richard Biener  <rguenther@suse.de>
6971         PR debug/90074
6972         * tree-loop-distribution.c (destroy_loop): Preserve correct
6973         debug info.
6975 2019-04-15  Richard Biener  <rguenther@suse.de>
6977         PR tree-optimization/90071
6978         * tree-ssa-reassoc.c (init_range_entry): Do not pick up
6979         abnormal operands from def stmts.
6981 2019-04-15  Segher Boessenkool  <segher@kernel.crashing.org>
6983         PR rtl-optimization/89794
6984         * combine.c (count_auto_inc): New function.
6985         (try_combine): Count how many auto_inc expressions there were in the
6986         original instructions.  Ensure we have the same number in the new
6987         instructions.  Remove the code that tried to ensure auto_inc side
6988         effects on i1 and i0 are not lost.
6990 2019-04-15  Richard Biener  <rguenther@suse.de>
6992         PR ipa/88936
6993         * tree.h (auto_var_p): Declare.
6994         * tree.c (auto_var_p): New function, split out from ...
6995         (auto_var_in_fn_p): ... here.
6996         * tree-ssa-structalias.c (struct variable_info): Add shadow_var_uid
6997         member.
6998         (new_var_info): Initialize it.
6999         (set_uids_in_ptset): Also set the shadow variable uid if required.
7000         (ipa_pta_execute): Postprocess points-to solutions assigning
7001         shadow variable uids for locals that may reach their containing
7002         function recursively.
7003         * tree-ssa-ccp.c (fold_builtin_alloca_with_align): Do not
7004         assert but instead check whether the points-to solution is
7005         a singleton.
7007 2019-04-15  Martin Jambor  <mjambor@suse.cz>
7009         PR ipa/pr89693
7010         * cgraph.c (clone_of_p): Loop over clone chain for each step in
7011         the thunk chain.
7013 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
7015         * config.gcc (nds32*-*-linux*): Set gcc_cv_initfini_array to yes.
7017 2019-04-15  Monk Chiang  <sh.chiang04@gmail.com>
7018             Kito Cheng  <kito.cheng@gmail.com>
7019             Shiva Chen  <shiva0217@gmail.com>
7021         * config/nds32/nds32-md-auxiliary.c
7022         (nds32_legitimize_pic_address): Use new PIC pattern.
7023         (nds32_legitimize_tls_address): Use new TLS pattern.
7024         (nds32_output_symrel): New.
7025         * config/nds32/nds32-protos.h (nds32_output_symrel): Declare.
7026         (nds32_alloc_relax_group_id): Ditto.
7027         * config/nds32/nds32-relax-opt.c (nds32_alloc_relax_group_id): New.
7028         (nds32_group_insns): Use nds32_alloc_relax_group_id instead of use
7029         relax_group_id.
7030         (nds32_group_tls_insn): Ditto.
7031         (nds32_group_float_insns): Ditto.
7032         * config/nds32/nds32.md (tls_le): New.
7033         (sym_got): Ditto.
7035 2019-04-15  Chung-Ju Wu  <jasonwucj@gmail.com>
7037         * configure: Add nds32 target for dwarf2 debug_line checking.
7038         * configure.ac: Regenerated.
7040 2019-04-14  Jan Hubicka  <hubicka@ucw.cz>
7042         PR lto/89358
7043         * ipa-devirt.c (skip_in_fields_list_p): New.
7044         (odr_types_equivalent_p): Use it.
7046 2019-04-13  Jakub Jelinek  <jakub@redhat.com>
7048         PR target/89093
7049         * config/arm/arm.c (arm_valid_target_attribute_rec): Use strcmp
7050         instead of strncmp when checking for thumb and arm.  Formatting fixes.
7052 2019-04-12  Iain Buclaw  <ibuclaw@gdcproject.org>
7054         * doc/install.texi: Document --with-target-system-zlib.
7056 2019-04-12  Martin Sebor  <msebor@redhat.com>
7058         PR c/88383
7059         PR c/89288
7060         PR c/89798
7061         PR c/89797
7062         * targhooks.c (default_vector_alignment): Avoid assuming
7063         argument fits in SHWI.
7064         * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
7065         a shift expression.
7066         * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.
7068 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
7070         PR rtl-optimization/89965
7071         * dce.c: Include rtl-iter.h.
7072         (struct check_argument_load_data): New type.
7073         (check_argument_load): New function.
7074         (find_call_stack_args): Check for loads from stack slots still tracked
7075         in sp_bytes and punt if any is found.
7077         * config/mips/loongson-mmiintrin.h: Fix up #error message.
7079 2019-04-12  Jan Hubicka  <hubicka@ucw.cz>
7081         * params.def (PARAM_MAX_LTO_STREAMING_PARALLELISM): New parameter.
7082         * doc/invoke.texi (max-lto-streaming-paralellism): New --param.
7084 2019-04-12  Martin Liska  <mliska@suse.cz>
7086         PR middle-end/89970
7087         * multiple_target.c (create_dispatcher_calls): Wrap ifunc
7088         in error message.
7089         (separate_attrs): Handle multiple 'default's.
7090         (expand_target_clones): Rework error handling code.
7092 2019-04-12  Kelvin Nilsen  <kelvin@gcc.gnu.org>
7094         PR target/87532
7095         * config/rs6000/rs6000.c (rs6000_split_vec_extract_var): Use inner
7096         mode of vector rather than mode of destination for move instruction.
7097         * config/rs6000/vsx.md (*vsx_extract_<mode>_<VS_scalar>mode_var):
7098         Use QI inner mode with V16QI vector mode.
7100 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
7102         PR target/52726
7103         * config/tilepro/tilepro.c (tilepro_print_operand): Use just
7104         "invalid %%t operand" in output_operand_lossage message.
7106 2019-04-12  Andreas Krebbel  <krebbel@linux.ibm.com>
7108         * config/s390/predicates.md (permute_pattern_operand): New
7109         predicate.
7110         * config/s390/vector.md ("*vec_splats_bswap_vec<mode>"): Add USE
7111         operand for the permute pattern.
7112         ("*vec_perm<mode>"): New insn definition.
7113         ("bswap<mode>"): Generate the permute pattern operand in the
7114         expander and perform the operand reloads for pre arch13 level
7115         already.
7116         ("*bswap<mode>_emu"): Rename to ...
7117         ("*bswap<mode>"): ... this. And make the splitter vxe2 only.
7118         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>"):
7119         Add the USE operand for the permute pattern.
7120         ("*vec_set_bswap_vec<mode>"): Likewise.
7122 2019-04-12  Jakub Jelinek  <jakub@redhat.com>
7124         PR c/89946
7125         * varasm.c (assemble_start_function): Don't use tree_fits_uhwi_p
7126         and gcc_unreachable if it fails, just call tree_to_uhwi which
7127         verifies that too.  Test TREE_CHAIN instead of list_length > 1.
7128         Start warning message with a lower-case letter.  Formatting fixes.
7130         PR rtl-optimization/90026
7131         * cfgcleanup.c (try_optimize_cfg): When removing empty bb with no
7132         successors, look for BARRIERs inside of the whole BB_FOOTER chain
7133         rather than just at the start of it.  If e->src BB_FOOTER is not NULL
7134         in cfglayout mode, use emit_barrier_after_bb.
7136 2018-04-11  Steve Ellcey  <sellcey@marvell.com>
7138         PR rtl-optimization/87763
7139         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>4_noshift_alt):
7140         New Instruction.
7142 2019-04-11  Tom de Vries  <tdevries@suse.de>
7144         * doc/extend.texi (@node Statement Exprs): Note variable shadowing at
7145         max macro using statement expression.
7147 2019-04-11  David Edelsohn  <dje.gcc@gmail.com>
7149         * xcoffout.h (xcoff_private_rodata_section_name): Declare.
7150         * xcoffout.c (xcoff_private_rodata_section_name): Define.
7151         * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): Create
7152         read_only_private_data_section using xcoff_private_rodata_section_name.
7153         (rs6000_xcoff_file_start): Generate xcoff_private_rodata_section_name.
7155 2019-04-11  Christophe Lyon  <christophe.lyon@linaro.org>
7157         PR target/90016
7158         * config/aarch64/aarch64.opt (msve-vector-bits): Add missing final '.'.
7160 2019-04-11  Jakub Jelinek  <jakub@redhat.com>
7162         PR rtl-optimization/89965
7163         * dce.c (sp_based_mem_offset): New function.
7164         (find_call_stack_args): Use sp_based_mem_offset.
7166 2019-04-11  Jonathan Wakely  <jwakely@redhat.com>
7168         * doc/invoke.texi (Optimize Options): Clarify -flive-patching docs.
7170 2019-04-11  Richard Biener  <rguenther@suse.de>
7172         PR tree-optimization/90020
7173         * tree-ssa-sccvn.c (vn_reference_may_trap): New function.
7174         * tree-ssa-sccvn.h (vn_reference_may_trap): Declare.
7175         * tree-ssa-pre.c (compute_avail): Use it to not put
7176         possibly trapping references after a call that might not
7177         return into EXP_GEN.
7178         * gcse.c (compute_hash_table_work): Do not elide
7179         marking a block containing a call if the call might not
7180         return.
7182 2019-04-11  Richard Biener  <rguenther@suse.de>
7184         PR tree-optimization/90018
7185         * tree-vect-data-refs.c (vect_preserves_scalar_order_p):
7186         Test both SLP and interleaving variants.
7188 2019-04-11  Robin Dapp  <rdapp@linux.ibm.com>
7190         * config/s390/8561.md: New file.
7191         * config/s390/driver-native.c (s390_host_detect_local_cpu):
7192         Add arch13 cpu model.
7193         * config/s390/s390-opts.h (enum processor_type): Likewise.
7194         * config/s390/s390.c (s390_get_sched_attrmask): Add arch13.
7195         (s390_get_unit_mask): Likewise.
7196         (s390_is_fpd): Likewise.
7197         (s390_is_fxd): Likewise.
7198         * config/s390/s390.h (s390_tune_attr): Likewise.
7199         * config/s390/s390.md: Include arch13 pipeline description.
7200         * config/s390/s390.opt: Add arch13.
7202 2018-04-10  Steve Ellcey  <sellcey@marvell.com>
7204         PR rtl-optimization/87763
7205         * config/aarch64/aarch64-protos.h (aarch64_masks_and_shift_for_bfi_p):
7206         New prototype.
7207         * config/aarch64/aarch64.c (aarch64_masks_and_shift_for_bfi_p):
7208         New function.
7209         * config/aarch64/aarch64.md (*aarch64_bfi<GPI:mode>5_shift):
7210         New instruction.
7211         (*aarch64_bfi<GPI:mode>5_shift_alt): Ditto.
7212         (*aarch64_bfi<GPI:mode>4_noand): Ditto.
7213         (*aarch64_bfi<GPI:mode>4_noand_alt): Ditto.
7214         (*aarch64_bfi<GPI:mode>4_noshift): Ditto.
7216 2019-04-10  Jonathan Wakely  <jwakely@redhat.com>
7218         * doc/invoke.texi (Optimize Options): Change "Nevertheless" to
7219         "Although" in -fipa-icf documentation.
7221         * doc/invoke.texi (Debugging Options): Explicitly state the semantics
7222         of using multiple -g options.
7224 2019-04-10  Martin Liska  <mliska@suse.cz>
7226         PR gcov-profile/89959
7227         * doc/gcov.texi: Make documentation of -x option
7228         more precise.
7230 2019-04-10  Richard Biener  <rguenther@suse.de>
7232         * tree-vectorizer.h (_stmt_vec_info): Remove same_dr_stmt
7233         member.
7234         (DR_GROUP_SAME_DR_STMT): Remove.
7235         * tree-vect-stmts.c (vectorizable_load): Remove unreachable code.
7236         * tree-vect-data-refs.c (vect_analyze_group_access_1): Likewise,
7237         replace with assert.
7238         (vect_analyze_data_ref_accesses): Fix INTEGER_CST comparison.
7239         (vect_record_grouped_load_vectors): Remove unreachable code.
7241 2019-04-10  Richard Earnshaw  <rearnsha@arm.com>
7243         PR target/90016
7244         * config/aarch64/aarch64.opt (msve-vector-bits): Remove redundant and
7245         obsolete reference to N.
7247 2019-04-10  Jakub Jelinek  <jakub@redhat.com>
7249         PR middle-end/90025
7250         * expr.c (store_expr): Set properly size on the MEM passed to
7251         clear_storage.
7253         PR c++/90010
7254         * gimple-ssa-sprintf.c (target_to_host): Fix handling of targstr
7255         with strlen in between hostsz-3 and hostsz-1 inclusive when no
7256         translation is needed, and when translation is needed, only append
7257         ... if the string length is hostsz or more bytes long.  Avoid using
7258         strncpy or strcat.
7260 2019-04-09  Matthew Malcomson  <matthew.malcomson@arm.com>
7262         PR target/90024
7263         * config/arm/arm.c (neon_valid_immediate): Disallow VOIDmode parameter.
7264         * config/arm/constraints.md (Dm, DN, Dn): Split previous Dn constraint
7265         into three.
7266         * config/arm/neon.md (*neon_mov<mode>): Account for TImode and DImode
7267         differences directly.
7268         (*smax<mode>3_neon, vashl<mode>3, vashr<mode>3_imm): Use Dm constraint.
7270 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
7272         PR translation/90011
7273         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
7274         from diagnostics.
7275         * config/arm/freebsd.h (LINK_SPEC): Remove trailing space from -p
7276         diagnostics.
7277         * config/riscv/freebsd.h (LINK_SPEC): Likewise.
7278         * config/aarch64/aarch64-freebsd.h (FBSD_TARGET_LINK_SPEC): Likewise.
7279         * config/darwin.h (DRIVER_SELF_SPECS, ASM_FINAL_SPEC): Remove
7280         trailing space from -gsplit-dwarf diagnostics.
7282         PR tree-optimization/89998
7283         * gimple-ssa-sprintf.c (try_substitute_return_value): Use lhs type
7284         instead of integer_type_node if possible, don't add ranges if return
7285         type is not compatible with int.
7286         * gimple-fold.c (gimple_fold_builtin_sprintf,
7287         gimple_fold_builtin_snprintf): Use lhs type instead of hardcoded
7288         integer_type_node.
7290 2019-04-09  Martin Liska  <mliska@suse.cz>
7292         * Makefile.in: Use GENERATOR_CFLAGS for all generators.
7293         * doc/install.texi: Document the new config.
7295 2019-04-09  Richard Sandiford  <richard.sandiford@arm.com>
7297         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Always
7298         use gimple_expr_type for load and store calls.  Skip over the
7299         condition argument in a conditional internal function.
7300         Protect use of TREE_INT_CST_LOW.
7302 2019-04-09  Jakub Jelinek  <jakub@redhat.com>
7304         PR target/90015
7305         * config/riscv/riscv.c (riscv_get_interrupt_type): Fix comment typo.
7306         (riscv_merge_decl_attributes): Fix typo in diagnostics.  Remove
7307         trailing period from it too.
7309 2019-04-08  wu yuan  <wuyuan5@huawei.com>
7311         * config/aarch64/aarch64-cores.def (tsv1100): Change scheduling model.
7312         * config/aarch64/aarch64.md : Add "tsv110.md"
7313         * config/aarch64/tsv110.md: New file.
7315 2019-04-08  Richard Biener  <rguenther@suse.de>
7317         PR tree-optimization/90006
7318         * tree-vect-data-refs.c (vect_get_smallest_scalar_type): Handle
7319         calls like lrint.
7321 2019-04-08  Andrea Corallo  <andrea.corallo@arm.com>
7323         PR target/83033
7324         * config/aarch64/cortex-a57-fma-steering.c (fma_forest): Prohibit copy
7325         construction.
7326         (fma_root_node): Likewise.
7327         (func_fma_steering): Likewise.
7329 2019-04-08  Jakub Jelinek  <jakub@redhat.com>
7331         PR rtl-optimization/89865
7332         * config/i386/i386.md: Add peepholes for z = x; x ^= y; x != z.
7334         PR rtl-optimization/89865
7335         * config/i386/i386.md
7336         (SWI12 peephole for mem {+,-,&,|,^}= x; mem != 0): Fix up operand
7337         numbers not to clash with the additional operands[4].
7338         (peepholes for mem {+,-,&,|,^}= x; mem != 0): New peephole2s
7339         with extra register copy in the middle.
7341 2019-04-08  Martin Liska  <mliska@suse.cz>
7343         PR gcov-profile/89961
7344         * doc/gcov.texi: Document data_file.
7345         * gcov.c (generate_results): Add data_info into JSON output.
7347 2019-04-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
7349         PR tree-optimization/89725
7350         * tree-chrec.c (chrec_contains_symbols): New parameter.  Handle outer
7351         loop's chrec as invariant symbol.
7352         * tree-chrec.h (chrec_contains_symbols): New parameter.
7353         * tree-data-ref.c (analyze_miv_subscript): Pass new argument.
7354         (build_classic_dist_vector_1, add_other_self_distances): Bypass access
7355         function of loops not in DDR's loop_nest.
7356         * tree-data-ref.h (index_in_loop_nest): Add unreachable check.
7358 2019-04-08  Chenghua Xu  <paul.hua.gm@gmail.com>
7360         PR target/89623
7361         * config/mips/mips.opt (LOONGSON_EXT2): Use Var instead of
7362         Mask.
7364 2019-04-07  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7366         PR target/89945
7367         * config/i386/i386.md (anddi_1 to andsi_1_zext splitter):
7368         Avoid calling gen_lowpart with SYMBOL_REF and LABEL_REF operand.
7370 2019-04-05  Joern Rennecke  <joern.rennecke@embecosm.com>
7372         * sched-deps.c (sched_macro_fuse_insns): Check return value of
7373         targetm.fixed_condition_code_regs.
7375 2019-04-05  Richard Biener  <rguenther@suse.de>
7377         PR debug/89892
7378         PR debug/89905
7379         * tree-cfgcleanup.c (remove_forwarder_block): Always move
7380         debug bind stmts but reset them if they are not valid at the
7381         destination.
7383 2019-04-05  Martin Liska  <mliska@suse.cz>
7385         PR translation/89936
7386         * collect-utils.c (collect_execute): Use %< and %>, or %qs in
7387         order to wrap keywords or arguments.
7388         * collect2.c (main): Likewise.
7389         (scan_prog_file): Likewise.
7390         (scan_libraries): Likewise.
7391         * common/config/riscv/riscv-common.c
7392         (riscv_subset_list::parsing_subset_version): Likewise.
7393         (riscv_subset_list::parse_std_ext): Likewise.
7394         * config/aarch64/aarch64.c (aarch64_override_options_internal):
7395         Likewise.
7396         * config/arm/arm.c (arm_option_override): Likewise.
7397         * config/cris/cris.c (cris_print_operand): Likewise.
7398         * config/darwin-c.c (darwin_pragma_options): Likewise.
7399         (darwin_pragma_unused): Likewise.
7400         (darwin_pragma_ms_struct): Likewise.
7401         * config/ft32/ft32.c (ft32_print_operand): Likewise.
7402         * config/i386/i386.c (print_reg): Likewise.
7403         (ix86_print_operand): Likewise.
7404         * config/i386/xm-djgpp.h: Likewise.
7405         * config/iq2000/iq2000.c (iq2000_print_operand): Likewise.
7406         * config/m32c/m32c.c (m32c_option_override): Likewise.
7407         * config/msp430/msp430.c (msp430_option_override): Likewise.
7408         * config/nds32/nds32.c (nds32_option_override): Likewise.
7409         * config/nvptx/mkoffload.c (main): Likewise.
7410         * config/rx/rx.c (rx_print_operand): Likewise.
7411         (valid_psw_flag): Likewise.
7412         * config/vms/vms-c.c (vms_pragma_member_alignment): Likewise.
7413         (vms_pragma_nomember_alignment): Likewise.
7414         (vms_pragma_extern_model): Likewise.
7415         * lto-wrapper.c (compile_offload_image): Likewise.
7416         * omp-offload.c (oacc_parse_default_dims): Likewise.
7417         * symtab.c (symtab_node::verify_base): Likewise.
7418         * tlink.c (recompile_files): Likewise.
7419         (start_tweaking): Likewise.
7420         * tree-profile.c (parse_profile_filter): Likewise.
7422 2019-04-05  Richard Sandiford  <richard.sandiford@arm.com>
7424         PR tree-optimization/89956
7425         * tree-ssa-math-opts.c (convert_mult_to_fma): Protect against
7426         multiple negates of the same value.
7428 2019-04-04  Martin Sebor  <msebor@redhat.com>
7430         PR middle-end/89957
7431         PR middle-end/89911
7432         * builtins.c (expand_builtin_strnlen): Make sure wi::ltu_p operands
7433         have the same precision since the function crashes otherwise.
7434         * calls.c (maybe_warn_nonstring_arg): Avoid assuming strnlen() call
7435         has non-zero arguments.
7437 2019-04-04  Martin Sebor  <msebor@redhat.com>
7439         PR middle-end/89934
7440         * gimple-ssa-warn-restrict.c (builtin_access::builtin_access): Bail
7441         out if the number of arguments is less than expected.
7443 2019-04-04  Jeff Law  <law@redhat.com>
7445         PR rtl-optimization/89399
7446         * ree.c (combine_set_extension): Use single_set rather than
7447         digging into PATTERN for items on the candidate list.
7448         (combine_reaching_defs): Likewise.
7450 2019-04-04  Richard Sandiford  <richard.sandiford@arm.com>
7452         PR rtl-optimization/46590
7453         * loop-invariant.c (find_defs): Move df_remove_problem and
7454         df_process_deferred_rescans to move_invariants.
7455         Move df_live_add_problem and df_live_set_all_dirty calls
7456         to move_invariants.
7457         (move_invariants): Likewise.
7458         (move_loop_invariants): Likewise, making the df_live calls
7459         conditional on -O.  Remove the problem again if we added it
7460         locally.
7462 2019-04-03  qing zhao  <qing.zhao@oracle.com>
7464         PR tree-optimization/89730
7465         * ipa-inline.c (can_inline_edge_p): Delete the checking for
7466         -flive-patching=inline-only-static.
7467         (can_inline_edge_by_limits_p): Add the checking for
7468         -flive-patching=inline-only-static and grant always_inline
7469         even when -flive-patching=inline-only-static is specified.
7471 2019-04-03  Jeff Law  <law@redhat.com>
7473         PR rtl-optimization/81025
7474         * reorg.c (skip_consecutive_labels): Do not skip past a BARRIER.
7476 2019-04-03  Richard Biener  <rguenther@suse.de>
7478         PR tree-optimization/84101
7479         * tree-vect-stmts.c: Include explow.h for hard_function_value,
7480         regs.h for hard_regno_nregs.
7481         (cfun_returns): New helper.
7482         (vect_model_store_cost): When vectorizing a store to a decl
7483         we return and the function ABI returns in a multi-reg location
7484         account for the possible spilling that will happen.
7486 2019-04-03  Andreas Krebbel  <krebbel@linux.ibm.com>
7488         * config/s390/s390.c (s390_legitimate_address_p): Reject long
7489         displacement addresses for vector mode operands.
7491 2019-04-03  Claudiu Zissulescu  <claziss@synopsys.com>
7493         * config/arc/arc.c (GMASK_LEN): Define.
7494         (arc_restore_callee_saves): Restore first blink when
7495         !optimize_size.
7497 2019-04-03  Sudakshina Das  <sudi.das@arm.com>
7499         * doc/extend.texi: Add deprecated comment on sign-return-address
7500         function attribute and add mbranch-protection.
7501         * doc/invoke.texi: Add bti to the options for mbranch-protection.
7503 2019-04-03  Richard Biener  <rguenther@suse.de>
7505         PR lto/89896
7506         * lto-wrapper.c (run_gcc): Avoid implicit rules making
7507         the all target phony.
7509 2019-04-02  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7511         PR target/89902
7512         PR target/89903
7513         * config/i386/i386.c (dimode_scalar_to_vector_candidate_p):
7514         Return false for variable DImode shifts.
7515         (dimode_scalar_chain::compute_convert_gain): Do not handle
7516         register count operand in variable DImode shifts.
7517         (dimode_scalar_chain::make_vector_copies): Remove support to copy
7518         count argument of a variable shift instruction to a vector register.
7519         (dimode_scalar_chain::convert_reg): Remove support to convert
7520         count argument of a variable shift instruction.
7522 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
7524         PR rtl-optimization/84206
7525         * sel-sched-ir.h (get_all_loop_exits): Avoid the outer loop when
7526         iterating over loop headers.
7528 2019-04-02  Andrey Belevantsev  <abel@ispras.ru>
7530         PR rtl-optimization/85876
7531         * sel-sched.c (code_motion_path_driver): Avoid unwinding first_insn
7532         beyond the original fence.
7534 2019-04-02  Ulrich Weigand  <uweigand@de.ibm.com>
7536         * config.gcc: Mark spu* targets as deprecated/obsolete.
7538 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7540         * config/s390/s390-builtin-types.def: New builtin function type
7541         definitions. Remove unused types.
7542         * config/s390/s390-builtins.def (s390_vcdgb, s390_vcdlgb)
7543         (s390_vcgdb, s390_vclgdb): Remove low-level builtin definitions.
7544         (s390_vec_float, s390_vec_signed, s390_vec_unsigned): New
7545         overloaded builtins.
7546         (s390_vcefb, s390_vcdgb, s390_vcelfb, s390_vcdlgb, s390_vcfeb)
7547         (s390_vcgdb, s390_vclfeb, s390_vclgdb): New low-level builtins.
7548         * config/s390/vecintrin.h (vec_float): New builtin macro definition.
7549         (vec_double, vec_signed, vec_unsigned): Define to use the new
7550         overloaded builtins.
7551         * config/s390/vx-builtins.md ("vec_double_s64", "vec_double_u64"):
7552         Remove expanders.
7554 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7556         * config/s390/s390-builtin-types.def: New builtin function type
7557         definitions.
7558         * config/s390/s390-builtins.def (s390_vec_search_string_cc)
7559         (s390_vec_search_string_until_zero_cc): New overloaded builtins.
7560         (s390_vstrsb, s390_vstrsh, s390_vstrsf, s390_vstrszb)
7561         (s390_vstrszh, s390_vstrszf): New low-level builtins.
7562         * config/s390/s390.md (UNSPEC_VEC_VSTRS, UNSPEC_VEC_VSTRSCC): New
7563         constant definitions.
7564         * config/s390/vecintrin.h (vec_search_string_cc)
7565         (vec_search_string_until_zero_cc): New builtin name definitions.
7566         * config/s390/vx-builtins.md ("vstrs<mode>", "vstrsz<mode>"): New
7567         expanders.
7568         ("vec_vstrs<mode>"): New insn definition.
7570 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7572         * config/s390/s390-builtin-types.def: Add new builtin function
7573         types.
7574         * config/s390/s390-builtins.def (s390_vec_sldb, s390_vec_srdb):
7575         New overloaded builtins.
7576         (s390_vec_sldb, s390_vec_srdb): New low-level builtins.  and
7577         s390_vsrd.
7578         * config/s390/s390.md (UNSPEC_VEC_SLDB): Rename to ...
7579         (UNSPEC_VEC_SLDBYTE): ... this.
7580         (UNSPEC_VEC_SLDBIT, UNSPEC_VEC_SRDBIT): New constant definitions.
7581         * config/s390/vecintrin.h (vec_sldb, vec_srdb): New builtin name
7582         definitions.
7583         * config/s390/vx-builtins.md ("vec_sld<mode>", "vec_sldw<mode>"):
7584         Rename UNSPEC_VEC_SLDB to UNSPEC_VEC_SLDBYTE.
7585         ("vec_sldb<mode>", "vec_srdb<mode>"): New insn definitions.
7587 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7589         ("*vec_splats_bswap_vec<mode>", "*vec_splats_bswap_elem<mode>"):
7590         New insn definition.
7591         * config/s390/vx-builtins.md (V_HW_HSD): Move to ...
7592         * config/s390/vector.md (V_HW_HSD): ... here.
7594 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7596         * config/s390/vecintrin.h: Map vec_vster low-level builtins to vec_vler.
7597         * config/s390/vx-builtins.md ("*vec_insert_and_zero_bswap<mode>")
7598         ("*vec_set_bswap_elem<mode>", "*vec_set_bswap_vec<mode>")
7599         ("*vec_extract_bswap_vec<mode>", "*vec_extract_bswap_elem<mode>"):
7600         New insn definitions.
7602 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7604         * config/s390/s390-builtin-types.def: Add new builtin function type.
7605         * config/s390/s390-builtins.def: Add overloaded builtin
7606         s390_vec_reve and low-level builtins for s390_vler and s390_vster.
7607         * config/s390/s390.md (UNSPEC_VEC_ELTSWAP): New constant definition.
7608         * config/s390/vecintrin.h (vec_reve): New builtin name definition.
7609         * config/s390/vx-builtins.md (V_HW_HSD): New mode iterator.
7610         ("eltswap<mode>"): New expander.
7611         ("*eltswapv16qi", "*eltswap<mode>", "*eltswap<mode>_emu"): New
7612         insn definitions.
7614 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7616         * config/s390/s390-builtin-types.def: Add new builtin function types.
7617         * config/s390/s390-builtins.def: Add overloaded builtin
7618         s390_vec_revb. Add low-level builtins for vlbr and vstbr
7619         instructions.
7620         * config/s390/vecintrin.h (vec_revb): New builtin name definition.
7621         * config/s390/vector.md (VT_HW_HSDT): New mode iterator.
7622         ("bswap<mode>"): New expander.
7623         ("*bswap<mode>", "*bswap<mode>_emu"): New insn definitions.
7625 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7627         * config/s390/s390-builtins.def (B_VXE2): New builtin flag definition.
7628         * config/s390/s390-c.c (s390_cpu_cpp_builtins_internal): Increment
7629         vector builtin version number in __VEC__.
7631 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7633         * config/s390/s390.md (VX_CONV_BFP, VX_CONV_INT): New mode
7634         iterators.
7635         (SFSI): New mode attribute.
7636         ("*fixuns_truncdfdi2_vx", "*fix_truncdfdi2_bfp_z13")
7637         ("*floatunsdidf2_z13", ): Add support for 32 bit conversions and
7638         rename to ...
7639         ("*fixuns_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_z13")
7640         ("*fix_trunc<VX_CONV_BFP:mode><VX_CONV_INT:mode>2_bfp_z13")
7641         ("*floatuns<VX_CONV_INT:mode><VX_CONV_BFP:mode>2_z13"): ... these.
7642         ("floatsi<mode>2"): Add wcefb instruction.
7644 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7646         * config/s390/s390.md ("xde"): Extend mode attribute to vector types.
7647         * config/s390/vector.md (VX_VEC_CONV_BFP, VX_VEC_CONV_INT): New
7648         mode iterators.
7649         ("floatv2div2df2", "floatunsv2div2df2", "fix_truncv2dfv2di2")
7650         ("fixuns_truncv2dfv2di2"): Enhance with mode iterator to also
7651         support 32 bit fp-int conversions. Rename to ...
7652         ("float<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
7653         ("floatuns<VX_VEC_CONV_INT:mode><VX_VEC_CONV_BFP:mode>2")
7654         ("fix_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2")
7655         ("fixuns_trunc<VX_VEC_CONV_BFP:mode><VX_VEC_CONV_INT:mode>2"):
7656         ... to these.
7658 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7660         * config/s390/s390.c (s390_rtx_costs): Do not add extra costs for
7661         if-then-else constructs if we can use the select instruction.
7662         * config/s390/s390.md ("*mov<mode>cc"): Add the new instructions.
7664 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7666         * config/s390/s390.md ("*popcountdi_arch13_cc")
7667         ("*popcountdi_arch13_cconly", "*popcountdi_arch13"): New insn
7668         definition.
7669         ("*popcount<mode>", "popcountdi2", "popcountsi2", "popcounthi2"):
7670         Append _z196 to make it ...
7671         ("*popcount<mode>_z196", "popcountdi2_z196", "popcountsi2_z196")
7672         ("popcounthi2_z196"): ... this.
7673         ("popcountdi2_z196"): Remove TARGET_64BIT from the insn condition.
7674         ("popcountdi2", "popcountsi2", "popcounthi2"): New expanders.
7676 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7678         * config/s390/s390.c (s390_canonicalize_comparison): Convert
7679         certain compares for arch13 in order to make use of the condition
7680         code result produced by the new instructions.
7681         (s390_rtx_costs): Adjust the costs for nnrk, nngrk, nork, nogrk,
7682         nxrk, and nxgrk instruction patterns.
7683         * config/s390/s390.md (ANDOR, bitops_name, inv_bitops_name)
7684         (inv_no): Add new code iterator together with some attributes.
7685         ("*andc_split_<mode>"): Disable splitter for arch13.
7686         ("*<ANDOR:bitops_name>c<GPR:mode>_cc")
7687         ("*<ANDOR:bitops_name>c<GPR:mode>_cconly")
7688         ("*<ANDOR:bitops_name>c<GPR:mode>")
7689         ("*n<ANDOR:inv_bitops_name><GPR:mode>_cc")
7690         ("*n<ANDOR:inv_bitops_name><mode>_cconly")
7691         ("*n<ANDOR:inv_bitops_name><mode>", "*nxor<GPR:mode>_cc")
7692         ("*nxor<mode>_cconly", "*nxor<mode>"): New insn definitions.
7694 2019-04-02  Andreas Krebbel  <krebbel@linux.ibm.com>
7696         * common/config/s390/s390-common.c (processor_flags_table): New
7697         entry for arch13.
7698         * config.gcc: Support arch13 with the --with-arch= configure flag.
7699         * config/s390/driver-native.c (s390_host_detect_local_cpu):
7700         * config/s390/s390-opts.h (enum processor_type): Add PROCESSOR_ARCH13.
7701         * config/s390/s390.c (s390_get_sched_attrmask)
7702         (s390_get_unit_mask): Add PROCESSOR_ARCH13.
7703         * config/s390/s390.h (enum processor_flags): Add PF_VXE2 and PF_ARCH13.
7704         * config/s390/s390.md (TARGET_CPU_ARCH13, TARGET_CPU_ARCH13_P)
7705         (TARGET_CPU_VXE2, TARGET_CPU_VXE2_P, TARGET_ARCH13)
7706         (TARGET_ARCH13_P, TARGET_VXE2, TARGET_VXE2_P): New macro
7707         definitions.
7708         * config/s390/s390.opt: Support arch13 as processor type in
7709         command line options.
7711 2019-04-02  Martin Liska  <mliska@suse.cz>
7713         PR translation/89912
7714         * params.def (PARAM_GRAPHITE_MAX_ARRAYS_PER_SCOP):
7715         Fix param description of graphite-max-arrays-per-scop.
7717 2019-04-02  Eric Botcazou  <ebotcazou@adacore.com>
7719         * config/sparc/linux64.h (ASAN_REJECT_SPEC): New macro.
7720         (ASAN_CC1_SPEC): Use it in 64-bit mode.
7721         * config/sparc/sol2.h (ASAN_REJECT_SPEC): Remove superfluous colon.
7723 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
7725         PR rtl-optimization/85412
7726         * sel-sched.c (sel_sched_region): Assign reset_sched_cycles_p before
7727         sel_sched_region_1, not after.
7729 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
7731         PR rtl-optimization/86928
7732         * sel-sched-ir.c (sel_redirect_edge_and_branch_force): Invoke
7733         compute_live if necessary.
7734         (sel_redirect_edge_and_branch): Likewise.
7736 2019-04-01  Vladimir Makarov  <vmakarov@redhat.com>
7738         PR rtl-optimization/89865
7739         * ira-costs.c (process_bb_node_for_hard_reg_moves): Skip hard
7740         register if it is a part of small class.
7742 2019-04-01  Andrey Belevantsev  <abel@ispras.ru>
7744         PR rtl-optimization/87273
7745         * sel-sched-ir.c (merge_fences): Remove assert.
7747 2019-04-01  Richard Biener  <rguenther@suse.de>
7749         PR tree-optimization/46590
7750         * domwalk.h (dom_walker::dom_walker): Consolidate constructors.
7751         (dom_walker::m_reachability): Add in place of...
7752         (dom_walker::m_skip_unreachable_blocks): ...this.
7753         * domwalk.c (dom_walker::dom_walker): Consoliate constructors.
7754         Move complex initialization ...
7755         (dom_walker::walk): Here.  Especially compute m_bb_to_rpo
7756         lazily and initialize edge flags on each invocation.
7757         (dom_walker::bb_reachable): Use m_reachability.
7759 2019-04-01  Martin Liska  <mliska@suse.cz>
7761         PR driver/89861
7762         * opt-suggestions.c (option_proposer::build_option_suggestions):
7763         Add variant without any argument in order to provide better
7764         hints.
7766 2019-04-01  Richard Biener  <rguenther@suse.de>
7768         PR c/71598
7769         * gimple.c: Include langhooks.h.
7770         (gimple_get_alias_set): Treat enumeral types as the underlying
7771         integer type.
7773 2019-03-29  Kugan Vivekanandarajah  <kuganv@linaro.org>
7774             Eric Botcazou  <ebotcazou@adacore.com>
7776         PR rtl-optimization/89862
7777         * rtl.h (word_register_operation_p): Exclude CONST_INT from operations
7778         that operates on the full registers for WORD_REGISTER_OPERATIONS
7779         architectures.
7781 2019-03-29  Jim Wilson  <jimw@sifive.com>
7783         * common/config/riscv/riscv-common.c (riscv_parse_arch_string):
7784         Clear MASK_RVC and then set if C subset supported.
7786 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
7788         PR c/89872
7789         * gimplify.c (gimplify_compound_literal_expr): Don't optimize a
7790         non-addressable complit into its initializer if it is volatile.
7792 2019-03-29  Roman Zhuykov  <zhroma@ispras.ru>
7794         * opts-common.c (integral_argument): Set errno properly in one case.
7796 2019-03-29  Martin Liska  <mliska@suse.cz>
7798         * doc/invoke.texi: Remove -Wchkp from documentation.
7800 2019-03-29  Martin Liska  <mliska@suse.cz>
7802         * dbgcnt.c (print_limit_reach): New function.
7803         (dbg_cnt): Use it.
7805 2019-03-29  Martin Liska  <mliska@suse.cz>
7807         * dbgcnt.c (dbg_cnt_process_single_pair): Fix GNU coding style.
7808         (dbg_cnt_process_opt): Parse first tokens aas
7809         dbg_cnt_process_single_pair is also using strtok.
7811 2019-03-29  Jakub Jelinek  <jakub@redhat.com>
7813         PR rtl-optimization/87485
7814         * function.c (expand_function_end): Move stack_protect_epilogue
7815         before loading of return value into hard register(s).
7817 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
7819         PR middle-end/89621
7820         * tree-inline.h (struct copy_body_data): Add
7821         dont_remap_vla_if_no_change flag.
7822         * tree-inline.c (remap_type_3, remap_type_2): New functions.
7823         (remap_type): Don't remap vla types if id->dont_remap_vla_if_no_change
7824         and remap_type_2 returns false.
7825         * omp-low.c (new_omp_context): Set ctx->cb.dont_remap_vla_if_no_change.
7826         Move ctx->cb.adjust_array_error_bounds setting to the outermost ctx
7827         only from where it is copied to nested contexts.
7829 2019-03-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7831         PR target/89865
7832         * config/i386/i386.md (RMW operation with LEA peephole):
7833         Use LEAMODE mode attribute instead of SWI mode iterator for
7834         LEA pattern.
7836 2019-03-28  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7838         PR target/89848
7839         * config/i386/i386.c (dimode_scalar_chain::make_vector_copies):
7840         Also process XEXP (src, 0) of a shift insn.
7842 2019-03-28  David Malcolm  <dmalcolm@redhat.com>
7844         PR middle-end/89725
7845         * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
7846         Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
7848 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
7850         * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
7851         test.
7852         (cprop_hardreg_bb, cprop_hardreg_debug): New functions.
7853         (pass_cprop_hardreg::execute): Use those.  Don't repeat bb processing
7854         immediately after first one with df_analyze in between, but rather
7855         process all bbs, queueing ones that need second pass in a worklist,
7856         df_analyze, process queued debug insn changes and if second pass is
7857         needed, process bbs from worklist, df_analyze, process queued debug
7858         insns again.
7860         * rtl.h (NONDEBUG_INSN_P): Define as NONJUMP_INSN_P or JUMP_P
7861         or CALL_P instead of INSN_P && !DEBUG_INSN_P.
7862         (INSN_P): Define using NONDEBUG_INSN_P or DEBUG_INSN_P.
7864 2019-03-28  Jonathan Wakely  <jwakely@redhat.com>
7866         PR c/79022
7867         * gengtype.h (create_nested_ptr_option): Fix parameter names to match
7868         definition.
7870 2019-03-27  Mateusz B  <mateuszb@poczta.onet.pl>
7872         PR target/85667
7873         * config/i386/i386.c (ix86_function_value_1): Call the newly added
7874         function for 32-bit MS_ABI.
7875         (function_value_ms_32): New function.
7877 2019-03-27  Andrew Stubbs  <ams@codesourcery.com>
7879         * config/gcn/gcn.md (CC_SAVE_REG): New constant.
7880         (movdi): Call gen_movdi_symbol_save_scc.
7881         (gen_movdi_symbol_save_scc): New insn and split.
7883 2019-03-27  Peter Bergner  <bergner@linux.ibm.com>
7885         PR rtl-optimization/89313
7886         * function.c (matching_constraint_num): New static function.
7887         (match_asm_constraints_1): Use it.  Fixup white space and comment.
7888         Don't replace inputs with non-matching constraints which conflict
7889         with early clobber outputs.
7891 2019-03-27  Jeff Law  <law@redhat.com>
7894         PR rtl-optimization/87761
7895         PR rtl-optimization/89826
7896         * regcprop.c (copyprop_hardreg_forward_1): Move may_trap_p test
7897         slightly later.
7898         (pass_cprop_hardreg::execute): Call df_analyze after adding the
7899         note problem to get REG_DEAD/REG_UNUSED notes updated.
7901 2019-03-27  Richard Biener  <rguenther@suse.de>
7903         PR tree-optimization/89463
7904         * tree-ssa-dce.c (remove_dead_stmt): Take output vector to
7905         queue edges to remove.
7906         (eliminate_unnecessary_stmts): Remove dead PHIs alongside
7907         dead stmts.  Delay edge removal until PHIs are removed to
7908         make debug-stmt creation not confused by seemingly degenerate
7909         PHIs.
7911 2019-03-27  Alan Modra  <amodra@gmail.com>
7913         * config/rs6000/rs6000.h: Rename NON_SPECIAL_REGS to GEN_OR_FLOAT_REGS
7914         throughout file.
7915         * config/rs6000/darwin.h: Likewise.
7916         * config/rs6000/rs6000.c: Likewise.
7918 2019-03-27  Alan Modra  <amodra@gmail.com>
7920         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Always
7921         assign rs6000_hard_regno_mode_ok_p[m][r].  Formatting.
7923 2019-03-26  Andrew Waterman  <andrew@sifive.com>
7924             Jim Wilson  <jimw@sifive.com>
7926         * config/riscv/generic.md (generic_alu, generic_load, generic_store)
7927         (generic_xfer, generic_branch, generic_imul, generic_idivsi)
7928         (generic_idivdi, generic_fmul_single, generic_fmul_double)
7929         (generic_fdiv, generic_fsqrt): Add check for generic tune.
7930         (generic_alu): Add auipc to type list.
7931         * config/riscv/riscv-opts.h (enum riscv_microarchitecture_type): New.
7932         (riscv_microarchitecture): Declare.
7933         * config/riscv/riscv-protos.h (riscv_store_data_bypass_p): Declare.
7934         * config/riscv/riscv.c (struct riscv_cpu_info): Add microarchitecture
7935         field.
7936         (riscv_microarchitecture): New.
7937         (sifive_7_tune_info): New.
7938         (riscv_cpu_info_table): Add microarchitecture value for rocket and
7939         size.  Add sifive-3-series, sifive-5-series, and sifive-7-series
7940         entries.
7941         (riscv_store_data_bypass_p): New.
7942         (riscv_option_override): Set riscv_microarchitecture from
7943         cpu->microarchitecture.
7944         * config/riscv/riscv.md: Include sifive-7.md.
7945         (type): Add auipc.
7946         (tune): New.
7947         (auipc<mode>): Change type to auipc.
7948         (restore_stack_nonlocal): New.
7949         * config/riscv/sifive-7.md: New.
7950         * doc/invoke.texi (RISC-V Options): Update mtune docs.
7952 2019-03-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
7954         PR target/89827
7955         * config/i386/i386.c (dimode_scalar_chain::convert_reg):
7956         Also process XEXP (src, 0) of a shift insn.
7958 2019-03-26  Richard Biener  <rguenther@suse.de>
7960         * tree-inline.c (remap_gimple_stmt): Cache gimple_block.
7961         (copy_debug_stmt): Likewise.
7962         (expand_call_inline): Likewise.
7963         (copy_bb): Avoid redundant lookup & set of gimple_block.
7964         * gimple-low.c (lower_gimple_return): Likewise.
7965         (lower_builtin_setjmp): Likewise.
7967 2019-03-26  Jakub Jelinek  <jakub@redhat.com>
7969         * hash-table.h (hash_table::m_gather_mem_stats): If GATHER_STATISTICS
7970         is constant 0, turn into static const data member initialized to false.
7971         (hash_table::hash_table): Only initialize m_gather_mem_stats #if
7972         GATHER_STATISTICS.  Add ATTRIBUTE_UNUSED to gather_mem_stats param.
7974 2019-03-26  Jason Merrill  <jason@redhat.com>
7975             Jakub Jelinek  <jakub@redhat.com>
7977         * mem-stats.h (mem_alloc_description::unregister_descriptor): New
7978         method.
7979         (mem_alloc_description::release_object_overhead): Fix comment typos.
7980         * hash-table.h (hash_table::~hash_table): Call
7981         release_instance_overhead only if m_entries is non-NULL, otherwise
7982         call unregister_descriptor.
7984 2019-03-26  Bin Cheng  <bin.cheng@linux.alibaba.com>
7986         PR tree-optimization/81740
7987         * tree-vect-data-refs.c (vect_analyze_data_ref_dependence):
7988         In case of outer loop vectorization, check for backward dependence
7989         at the inner loop if outer loop dependence is reversed.
7991 2019-03-26  Alan Modra  <amodra@gmail.com>
7993         * config/rs6000/rs6000.c (rs6000_init_hard_regno_mode_ok): Correct
7994         rs6000_vector_mem init.  Correct wI and wJ comment.
7996 2019-03-25  Alexander Monakov  <amonakov@ispras.ru>
7998         PR rtl-optimization/88347
7999         PR rtl-optimization/88423
8000         * sched-deps.c (sched_analyze_insn): Take into account that for
8001         tablejumps the barrier appears after a label and a jump_table_data.
8003 2019-03-25  Martin Sebor  <msebor@redhat.com>
8005         PR c/89812
8006         * c-common.c (check_user_alignment): Rename local.  Correct maximum
8007         alignment in diagnostic.  Avoid assuming argument fits in SHWI,
8008         convert it to UHWI when it fits.
8010 2019-03-25  Johan Karlsson <johan.karlsson@enea.com>
8012         PR debug/86964
8013         * dwarf2out.c (premark_used_variables): New function.
8014         (prune_unused_types_walk): Do not mark not premarked external
8015         variables.
8016         (prune_unused_types): Call premark_used_variables.
8018 2019-03-25  Vladimir Makarov  <vmakarov@redhat.com>
8020         PR rtl-optimization/89676
8021         * lra-constraints.c (curr_insn_transform): Do match reload for
8022         early clobbers when the match was successful only for different
8023         registers.
8025 2019-03-25  Martin Sebor  <msebor@redhat.com>
8027         * doc/extend.texi (Common Type Attributes): Document vector_size.
8028         (Common Variable Attributes): Mention size constraint.  Correct
8029         quoting and typos.
8030         (Vector Extensions): Use @dfn when defining bas type.  Clarify
8031         base type and size constraints.
8033 2019-03-25  Richard Biener  <rguenther@suse.de>
8035         PR tree-optimization/89789
8036         * tree-ssa-sccvn.c (set_ssa_val_to): Do not allow lattice
8037         changes from non-undefined back to undefined.
8039 2019-03-25  Thomas Otto  <thomas.otto@pdv-fs.de>
8041         * dwarf2out.c (comp_dir_string): cached_wd could be set to both a
8042         heap string and a gc string, but since this variable is unknown to
8043         ggc the gc string might get reused and corrupted. Fixed by always
8044         using a heap string.
8046 2019-03-25  Richard Biener  <rguenther@suse.de>
8048         PR tree-optimization/89779
8049         * tree-ssa-loop-ivopts.c (remove_unused_ivs): Return
8050         to remove IV defs, delay actual removal.
8051         (tree_ssa_iv_optimize_loop): Likewise.  Avoid SCEV reset.
8052         (tree_ssa_iv_optimize): Remove eliminated IV defs at the
8053         very end, properly also reset loop control IV information.
8055 2019-03-25  Richard Biener  <rguenther@suse.de>
8057         PR tree-optimization/89802
8058         * tree-ssa-math-opts.c (convert_mult_to_fma_1): Properly
8059         move EH data to folded stmt.
8061 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
8063         * config/s390/s390-builtin-types.def: Remove few unused types and
8064         fix sort order for others.
8066 2019-03-25  Andreas Krebbel  <krebbel@linux.ibm.com>
8068         * config/s390/s390-c.c (s390_fn_types_compatible): Print the
8069         expected and found types with -mdebug during builtin matching.
8071 2019-03-25  Richard Biener  <rguenther@suse.de>
8073         PR middle-end/89790
8074         * fold-const.c (operand_equal_p): Revert last change with
8075         updated comment.
8077 2019-03-24  Segher Boessenkool  <segher@kernel.crashing.org>
8079         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Add REG_EQUAL
8080         notes for the result of the __tls_get_addr calls.
8081         * config/rs6000/rs6000.md (unspec UNSPEC_TLS_GET_ADDR): New.
8083 2019-03-24  Jeff Law  <law@redhat.com>
8085         * config/bfin/bfin.md (movpdi): Fix length for alternative 1.
8087         PR rtl-optimization/87761
8088         * regcprop.c (copyprop_hardreg_forward_1): Check may_trap_p on SET,
8089         not INSN.  Also check RTX_FRAME_RELATED_P.  Queue insns for DF rescan
8090         as needed.
8091         (pass_cprop_hardreg::execute): Add df note problem and defer insn
8092         rescans.  Reprocess blocks as needed, calling df_analyze before
8093         reprocessing.  Always call df_analyze before fixing up debug bind
8094         insns.
8096 2019-03-23  Segher Boessenkool  <segher@kernel.crashing.org>
8098         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Implement for 32-bit
8099         big endian.
8101 2019-03-22  Andrew Pinski  <apinski@marvell.com>
8103         * config/aarch64/aarch64.md (zero_extendsidi2_aarch64): Fix type
8104         attrribute for uxtw.
8106 2019-03-26  Jeff Law  <law@redhat.com>
8108         PR rtl-optimization/87761
8109         * config/mips/mips-protos.h (mips_split_move): Add new argument.
8110         (mips_emit_move_or_split): Pass NULL for INSN into mips_split_move.
8111         (mips_split_move): Accept new INSN argument.  Try to forward SRC
8112         into the next instruction.
8113         (mips_split_move_insn): Pass INSN through to mips_split_move.
8115 2019-03-22  Vladimir Makarov  <vmakarov@redhat.com>
8117         PR rtl-optimization/89676
8118         * lra-constraints.c (curr_insn_transform): Do match reload for
8119         early clobbers even if the match was successful.
8121 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
8123         PR c++/87481
8124         * doc/invoke.texi (-fconstexpr-ops-limit=): Document.
8126 2019-03-22  Bill Schmidt  <wschmidt@linux.ibm.com>
8128         * config/rs6000/mmintrin.h (_mm_sub_pi32): Fix typo.
8130 2019-03-22  Jakub Jelinek  <jakub@redhat.com>
8132         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask3<round_name>,
8133         <avx512>_fmsub_<mode>_mask3<round_name>,
8134         <avx512>_fnmadd_<mode>_mask3<round_name>,
8135         <avx512>_fnmsub_<mode>_mask3<round_name>,
8136         avx512f_vmfmadd_<mode>_mask3<round_name>,
8137         avx512f_vmfmsub_<mode>_mask3<round_name>,
8138         *avx512f_vmfnmadd_<mode>_mask3<round_name>): Use <round_nimm_predicate>
8139         instead of register_operand and %v instead of v for match_operand 1.
8140         (avx512f_vmfnmsub_<mode>_mask3<round_name>): Rename to ...
8141         (*avx512f_vmfnmsub_<mode>_mask3<round_name>): ... this.  Use
8142         <round_nimm_predicate> instead of register_operand and %v instead of v
8143         for match_operand 1.
8145         * config/i386/sse.md (<avx512>_fmadd_<mode>_mask<round_name>,
8146         <avx512>_fmadd_<mode>_mask3<round_name>,
8147         <avx512>_fmsub_<mode>_mask<round_name>,
8148         <avx512>_fmsub_<mode>_mask3<round_name>,
8149         <avx512>_fnmadd_<mode>_mask<round_name>,
8150         <avx512>_fnmadd_<mode>_mask3<round_name>,
8151         <avx512>_fnmsub_<mode>_mask<round_name>,
8152         <avx512>_fnmsub_<mode>_mask3<round_name>,
8153         <avx512>_fmaddsub_<mode>_mask<round_name>,
8154         <avx512>_fmaddsub_<mode>_mask3<round_name>,
8155         <avx512>_fmsubadd_<mode>_mask<round_name>,
8156         <avx512>_fmsubadd_<mode>_mask3<round_name>): Use
8157         <round_nimm_predicate> instead of nonimmediate_operand.
8158         (fmai_vmfmadd_<mode><round_name>, fmai_vmfmsub_<mode><round_name>,
8159         fmai_vmfnmadd_<mode><round_name>, fmai_vmfnmsub_<mode><round_name>):
8160         Use register_operand instead of <round_nimm_predicate> for the
8161         operand that needs to match output.
8162         (*fmai_fmadd_<mode>, *fmai_fmsub_<mode>,
8163         *fmai_fnmadd_<mode><round_name>, *fmai_fnmsub_<mode><round_name>):
8164         Likewise.  Formatting fixes.
8166         PR target/89784
8167         * config/i386/i386.c (enum ix86_builtins): Remove
8168         IX86_BUILTIN_VFMSUBSD3_MASK3 and IX86_BUILTIN_VFMSUBSS3_MASK3.
8169         * config/i386/i386-builtin.def (__builtin_ia32_vfmaddsd3_mask,
8170         __builtin_ia32_vfmaddsd3_mask3, __builtin_ia32_vfmaddsd3_maskz,
8171         __builtin_ia32_vfmsubsd3_mask3, __builtin_ia32_vfmaddss3_mask,
8172         __builtin_ia32_vfmaddss3_mask3, __builtin_ia32_vfmaddss3_maskz,
8173         __builtin_ia32_vfmsubss3_mask3): New builtins.
8174         * config/i386/sse.md (avx512f_vmfmadd_<mode>_mask<round_name>,
8175         avx512f_vmfmadd_<mode>_mask3<round_name>,
8176         avx512f_vmfmadd_<mode>_maskz_1<round_name>,
8177         *avx512f_vmfmsub_<mode>_mask<round_name>,
8178         avx512f_vmfmsub_<mode>_mask3<round_name>,
8179         *avx512f_vmfmasub_<mode>_maskz_1<round_name>,
8180         *avx512f_vmfnmadd_<mode>_mask<round_name>,
8181         *avx512f_vmfnmadd_<mode>_mask3<round_name>,
8182         *avx512f_vmfnmadd_<mode>_maskz_1<round_name>,
8183         *avx512f_vmfnmsub_<mode>_mask<round_name>,
8184         avx512f_vmfnmsub_<mode>_mask3<round_name>,
8185         *avx512f_vmfnmsub_<mode>_maskz_1<round_name>): New define_insns.
8186         (avx512f_vmfmadd_<mode>_maskz<round_expand_name>): New define_expand.
8187         * config/i386/avx512fintrin.h (_mm_mask_fmadd_sd, _mm_mask_fmadd_ss,
8188         _mm_mask3_fmadd_sd, _mm_mask3_fmadd_ss, _mm_maskz_fmadd_sd,
8189         _mm_maskz_fmadd_ss, _mm_mask_fmsub_sd, _mm_mask_fmsub_ss,
8190         _mm_mask3_fmsub_sd, _mm_mask3_fmsub_ss, _mm_maskz_fmsub_sd,
8191         _mm_maskz_fmsub_ss, _mm_mask_fnmadd_sd, _mm_mask_fnmadd_ss,
8192         _mm_mask3_fnmadd_sd, _mm_mask3_fnmadd_ss, _mm_maskz_fnmadd_sd,
8193         _mm_maskz_fnmadd_ss, _mm_mask_fnmsub_sd, _mm_mask_fnmsub_ss,
8194         _mm_mask3_fnmsub_sd, _mm_mask3_fnmsub_ss, _mm_maskz_fnmsub_sd,
8195         _mm_maskz_fnmsub_ss, _mm_mask_fmadd_round_sd, _mm_mask_fmadd_round_ss,
8196         _mm_mask3_fmadd_round_sd, _mm_mask3_fmadd_round_ss,
8197         _mm_maskz_fmadd_round_sd, _mm_maskz_fmadd_round_ss,
8198         _mm_mask_fmsub_round_sd, _mm_mask_fmsub_round_ss,
8199         _mm_mask3_fmsub_round_sd, _mm_mask3_fmsub_round_ss,
8200         _mm_maskz_fmsub_round_sd, _mm_maskz_fmsub_round_ss,
8201         _mm_mask_fnmadd_round_sd, _mm_mask_fnmadd_round_ss,
8202         _mm_mask3_fnmadd_round_sd, _mm_mask3_fnmadd_round_ss,
8203         _mm_maskz_fnmadd_round_sd, _mm_maskz_fnmadd_round_ss,
8204         _mm_mask_fnmsub_round_sd, _mm_mask_fnmsub_round_ss,
8205         _mm_mask3_fnmsub_round_sd, _mm_mask3_fnmsub_round_ss,
8206         _mm_maskz_fnmsub_round_sd, _mm_maskz_fnmsub_round_ss): New intrinsics.
8208 2019-03-21  Martin Sebor  <msebor@redhat.com>
8210         PR tree-optimization/89350
8211         * builtins.c (compute_objsize): Also ignore offsets whose upper
8212         bound is negative.
8213         * gimple-ssa-warn-restrict.c (builtin_memref): Add new member.
8214         (builtin_memref::builtin_memref): Initialize new member.
8215         Allow EXPR to be null.
8216         (builtin_memref::extend_offset_range): Replace local with a member.
8217         Avoid assuming pointer offsets are unsigned.
8218         (builtin_memref::set_base_and_offset): Determine base object
8219         before computing offset range.
8220         (builtin_access::builtin_access): Handle memset.
8221         (builtin_access::generic_overlap): Replace local with a member.
8222         (builtin_access::strcat_overlap): Same.
8223         (builtin_access::overlap): Same.
8224         (maybe_diag_overlap): Same.
8225         (maybe_diag_access_bounds): Same.
8226         (wrestrict_dom_walker::check_call): Handle memset.
8227         (check_bounds_or_overlap): Same.
8229 2019-03-21  Jan Hubicka  <hubicka@ucw.cz>
8230             Jakub Jelinek  <jakub@redhat.com>
8232         PR lto/89692
8233         * tree.c (fld_type_variant, fld_incomplete_type_of,
8234         fld_process_array_type): Call fld->pset.add and don't call
8235         add_tree_to_fld_list if it returns true.
8236         (free_lang_data_in_type): Similarly with self-recursive call.  Purge
8237         non-marked types from TYPE_NEXT_VARIANT list.
8238         (find_decls_types_r): Call fld_worklist_push for TYPE_CANONICAL (t).
8240 2019-03-21  Jakub Jelinek  <jakub@redhat.com>
8242         * hash-table.h (hash_table): Add Lazy template parameter defaulted
8243         to false, if true, don't alloc_entries during construction, but defer
8244         it to the first method that needs m_entries allocated.
8245         (hash_table::hash_table, hash_table::~hash_table,
8246         hash_table::alloc_entries, hash_table::find_empty_slot_for_expand,
8247         hash_table::too_empty_p, hash_table::expand, hash_table::empty_slow,
8248         hash_table::clear_slot, hash_table::traverse_noresize,
8249         hash_table::traverse, hash_table::iterator::slide): Adjust all methods.
8250         * hash-set.h (hash_set): Add Lazy template parameter defaulted to
8251         false.
8252         (hash_set::contains): If Lazy is true, use find_slot_with_hash with
8253         NO_INSERT instead of find_with_hash.
8254         (hash_set::traverse, hash_set::iterator, hash_set::iterator::m_iter,
8255         hash_set::m_table): Add Lazy to template params of hash_table.
8256         (gt_ggc_mx, gt_pch_nx): Use false as Lazy in hash_set template param.
8257         * attribs.c (test_attribute_exclusions): Likewise.
8258         * hash-set-tests.c (test_set_of_strings): Add iterator tests for
8259         hash_set.  Add tests for hash_set with Lazy = true.
8261 2019-03-21  Richard Biener  <rguenther@suse.de>
8263         PR tree-optimization/89779
8264         * tree.c (tree_nop_conversion): Consolidate and fix defensive
8265         checks with respect to released SSA names now having error_mark_node
8266         type.
8267         * fold-const.c (operand_equal_p): Likewise.
8269 2019-03-20  Andreas Krebbel  <krebbel@linux.ibm.com>
8271         PR target/89775
8272         * config/s390/s390.c (global_not_special_regno_p): Move to make it
8273         available to ...
8274         (s390_optimize_register_info): Use global_not_special_regno_p to
8275         check for global regs.
8277 2019-03-20  Jakub Jelinek  <jakub@redhat.com>
8279         PR target/89752
8280         * lra-constraints.c (process_alt_operands) <reg>: For BLKmode, don't
8281         update this_alternative nor this_alternative_set.
8283 2019-03-19  Jim Wilson  <jimw@sifive.com>
8285         PR target/89411
8286         * config/riscv/riscv.c (riscv_valid_lo_sum_p): New arg x.  New locals
8287         align, size, offset.  Use them to handle a BLKmode reference.  Update
8288         comment.
8289         (riscv_classify_address): Pass info->offset to riscv_valid_lo_sum_p.
8291 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
8293         PR rtl-optimization/89768
8294         * loop-unroll.c (unroll_loop_constant_iterations): Use gen_int_mode
8295         instead of GEN_INT.
8296         (unroll_loop_runtime_iterations): Likewise.
8298 2019-03-19  Martin Sebor  <msebor@redhat.com>
8300         PR tree-optimization/89644
8301         * tree-ssa-strlen.c (handle_builtin_stxncpy): Use full_string_p
8302         rather than endptr as an indicator of nul-termination.
8304         PR tree-optimization/89644
8305         * tree-ssa-strlen.c (handle_builtin_stxncpy): Consider unterminated
8306         arrays in determining sequence sizes in strncpy and stpncpy.
8308 2019-03-19  Martin Liska  <mliska@suse.cz>
8310         PR middle-end/89737
8311         * predict.c (combine_predictions_for_bb): Empty likely_edges and
8312         unlikely_edges if there's an edge that belongs to both these sets.
8314 2018-03-19  Segher Boessenkool  <segher@kernel.crashing.org>
8316         PR target/89746
8317         * config/rs6000/rs6000.md (fix_trunc<mode>si2_stfiwx): If we have a
8318         non-TARGET_MFCRF target, and the dest is memory but not 32-bit aligned,
8319         go via a stack temporary.
8321 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
8323         PR target/89378
8324         * config/mips/mips.c (mips_expand_vec_cond_expr): Use gen_lowpart
8325         instead of gen_rtx_SUBREG.
8326         * config/mips/mips-msa.md (vec_extract<mode><unitmode>): Likewise.
8328 2019-03-19  Richard Biener  <rguenther@suse.de>
8330         PR debug/88389
8331         * opts.c (finish_options): Disable -gsplit-dwarf when doing LTO.
8333 2019-03-19  Jan Hubicka  <hubicka@ucw.cz>
8335         PR lto/87809
8336         PR lto/89335
8337         * tree.c (free_lang_data_in_decl): Do not free context of C++
8338         destrutors.
8340 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
8342         PR target/89506
8343         * config/arm/arm.md (cmpsi2_addneg): Swap the alternatives and use
8344         subs for the first alternative except when operands[3] is 1.
8346         PR target/89752
8347         * gimplify.c (gimplify_asm_expr): For output argument with
8348         TREE_ADDRESSABLE type, clear allows_reg if it allows memory, otherwise
8349         diagnose error.
8351 2019-03-19  Eric Botcazou  <ebotcazou@adacore.com>
8353         PR rtl-optimization/89753
8354         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
8355         explicit unrolling factor even more robust.
8357 2019-03-19  Jakub Jelinek  <jakub@redhat.com>
8359         PR target/89726
8360         * config/i386/i386.c (ix86_expand_floorceildf_32): In ceil
8361         compensation use x2 += 1 instead of x2 -= -1 and when honoring
8362         signed zeros, do another copysign after the compensation.
8364 2019-03-18  Martin Sebor  <msebor@redhat.com>
8366         PR tree-optimization/89720
8367         * tree-vrp.c (vrp_prop::check_mem_ref): Treat range with max < min
8368         more conservatively, the same as anti-range.
8370 2019-03-18  Richard Biener  <rguenther@suse.de>
8372         PR middle-end/88945
8373         * tree-ssanames.c (release_ssa_name_fn): For released SSA names
8374         use a TREE_TYPE of error_mark_node to avoid ICEs when dumping
8375         basic-blocks that are removed.  Remove restoring SSA_NAME_VAR.
8376         * tree-outof-ssa.c (eliminate_useless_phis): Remove redundant checking.
8378 2019-03-18  Andrew Stubbs  <ams@codesourcery.com>
8380         * config/gcn/gcn-run.c (struct output): Make next_output unsigned.
8381         Extend queue to 1024 entries.
8382         Add "consumed" field.
8383         (gomp_print_output): Remove print_index parameter.
8384         Add final parameter.
8385         Change limit to unsigned.
8386         Use consumed field to implement circular buffer.
8387         Detect interrupted print in final pass.
8388         Flush output at the end.
8389         (run): Update gomp_print_output usage.
8390         (main): Initialize kernargs->output_data.consumed.
8392 2019-03-18  Richard Sandiford  <richard.sandiford@arm.com>
8394         * tree-vect-loop.c (vect_estimate_min_profitable_iters): Fix the
8395         calculation of the minimum number of scalar iterations for
8396         fully-predicated loops.
8398 2019-03-18  Martin Jambor  <mjambor@suse.cz>
8400         PR tree-optimization/89546
8401         * tree-sra.c (propagate_subaccesses_across_link): Requeue new_acc if
8402         any propagation to its children took place.
8404 2019-03-18  Andrew Burgess  <andrew.burgess@embecosm.com>
8406         PR target/89627
8407         * config/riscv/riscv.c (riscv_pass_fpr_single): Add offset
8408         parameter, and make use of it.
8409         (riscv_get_arg_info): Pass offset to riscv_pass_fpr_single.
8411 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
8413         * config/arc/arc.opt (mcode-density-frame): Get the inital value
8414         from TARGET_CODE_DENSITY_FRAME_DEFAULT.
8415         * config/arc/elf.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
8416         * config/arc/linux.h (TARGET_CODE_DENSITY_FRAME_DEFAULT): Define.
8417         * config/arc/arc.md (pop_multi_fp_blink): Adjust constraints to
8418         match what the ops is doing.
8419         (push_multi_fp_blink): Likewise.
8420         * config/arc/arc.c (arc_override_options): Enable enter/leave when
8421         compiling for size and elf target.
8422         (arc_save_callee_enter): Adjust note to match what enter/leave
8423         operation does.
8425 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
8427         * config/arc/arc.md (tst_movb): Fix constraint.
8429 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
8431         * config/arc/arc.c (TARGET_HAVE_SPECULATION_SAFE_VALUE): Define.
8433 2019-03-18  Claudiu Zissulescu  <claziss@synopsys.com>
8435         * config/arc/arc-protos.h (arc_adjust_reg_alloc_order): Declare.
8436         * config/arc/arc.c (arc_conditional_register_usage): Remove all
8437         reg_alloc_order references.
8438         (size_alloc_order): Define.
8439         (arc_adjust_reg_alloc_order): New function.
8440         * config/arc/arc.h (REG_ALLOC_ORDER): Proper define the register
8441         order.
8442         (ADJUST_REG_ALLOC_ORDER): Define.
8443         (HONOR_REG_ALLOC_ORDER): Likewise.
8445 2019-03-18  Richard Biener  <rguenther@suse.de>
8447         PR target/87561
8448         * config/i386/i386.c (ix86_add_stmt_cost): Pessimize strided
8449         loads and stores a bit more.
8451 2019-03-18  Richard Biener  <rguenther@suse.de>
8453         PR target/87561
8454         * config/i386/i386.c (ix86_add_stmt_cost): Apply strided
8455         load pessimization to stores as well.
8457 2019-03-18  Andrey Belevantsev  <abel@ispras.ru>
8459         PR middle-end/86979
8460         * sel-sched.c (compute_av_set_at_bb_end): When we have an ineligible
8461         successor, use NULL as its av set.
8463 2019-03-15  Segher Boessenkool  <segher@kernel.crashing.org>
8465         PR rtl-optimization/89721
8466         * lra-constraints (invariant_p): Return false if side_effects_p holds.
8468 2019-03-15  Kelvin Nilsen  <kelvin@gcc.gnu.org>
8470         PR target/87532
8471         * config/rs6000/rs6000-c.c (altivec_resolve_overloaded_builtin):
8472         When handling vec_extract, use modular arithmetic to allow
8473         constant selectors greater than vector length.
8474         * config/rs6000/rs6000.c (rs6000_expand_vector_extract): Allow
8475         V1TImode vectors to have constant selector values greater than 0.
8476         Use modular arithmetic to compute vector index.
8477         (rs6000_split_vec_extract_var): Use modular arithmetic to compute
8478         index for in-memory vectors.  Correct code generation for
8479         in-register vectors.
8480         (altivec_expand_vec_ext_builtin): Use modular arithmetic to
8481         compute index.
8483 2019-03-15  Alexandre Oliva <aoliva@redhat.com>
8485         PR c++/88534
8486         PR c++/88537
8487         * dwarf2out.c (generic_parameter_die): Follow DECL_INITIAL of
8488         VAR_DECL args.
8490 2019-03-15  Jakub Jelinek  <jakub@redhat.com>
8492         PR c++/89709
8493         * tree.c (inchash::add_expr): Strip any location wrappers.
8494         * fold-const.c (operand_equal_p): Move stripping of location wrapper
8495         after hash verification.
8497         PR debug/89704
8498         * dwarf2out.c (add_const_value_attribute): Return false for MINUS,
8499         SIGN_EXTEND and ZERO_EXTEND.
8501 2019-03-14  Jason Merrill  <jason@redhat.com>
8502             Jakub Jelinek  <jakub@redhat.com>
8504         * hash-table.h (remove_elt_with_hash): Return if slot is NULL rather
8505         than if is_empty (*slot).
8506         * hash-set-tests.c (test_set_of_strings): Add tests for addition of
8507         existing elt and for elt removal.
8508         * hash-map-tests.c (test_map_of_strings_to_int): Add test for removal
8509         of already removed elt.
8511 2019-03-15  H.J. Lu  <hongjiu.lu@intel.com>
8513         PR target/89650
8514         * config/i386/i386.c (remove_partial_avx_dependency): Handle
8515         REG_EH_REGION note.
8517 2019-03-14  Martin Liska  <mliska@suse.cz>
8519         PR other/89712
8520         * doc/invoke.texi: Remove -fdump-class-hierarchy option.
8522 2019-03-14  Richard Biener  <rguenther@suse.de>
8524         PR target/89711
8525         * config/i386/i386.c (make_resolver_func): Properly set
8526         DECL_CONTEXT on the RESULT_DECL.
8527         * config/rs6000/rs6000.c (make_resolver_func): Likewise.
8529 2019-03-14  Richard Biener  <rguenther@suse.de>
8531         * gimple-pretty-print.c: Include cfgloop.h.
8532         (dump_gimple_phi): Adjust.
8533         (dump_gimple_bb_header): Dump loop header for GIMPLE.
8534         (pp_cfg_jump): Adjust.
8535         (dump_implicit_edges): Dump fallthru to next block for GIMPLE as well.
8536         * tree-cfg.c (build_gimple_cfg): Remove lower_phi_internal_fn call.
8537         (lower_phi_internal_fn): Remove.
8538         (verify_gimple_call): Remove IFN_PHI special-casing.
8539         (dump_function_to_file): Dump IL state.
8540         * tree-into-ssa.c (rewrite_add_phi_arguments): Revert changes
8541         done to deal with PHI nodes being present in non-SSA state.
8543 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
8545         PR ipa/89684
8546         * multiple_target.c (create_dispatcher_calls): Change
8547         references_to_redirect from vector of ipa_ref * to vector of ipa_ref.
8548         In the node->iterate_referring loop, push *ref rather than ref, call
8549         ref->remove_reference () and always pass 0 to iterate_referring.
8551         PR rtl-optimization/89679
8552         * expmed.c (expand_mult_const): Don't add a REG_EQUAL note if it
8553         would contain a paradoxical SUBREG.
8555 2019-03-14  Richard Biener  <rguenther@suse.de>
8557         PR tree-optimization/89710
8558         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Use
8559         safe_dyn_cast.
8561 2019-03-14  Martin Liska  <mliska@suse.cz>
8563         * coverage.c (coverage_begin_function): Stream also
8564         end_column.
8565         * doc/gcov.texi: Document 2 new fields in JSON file.  Improve
8566         documentation about function declaration location.
8567         * gcov-dump.c (tag_function): Print whole range
8568         of function declaration.
8569         * gcov.c (struct function_info): Add end_column field.
8570         (function_info::function_info): Initialize it.
8571         (output_json_intermediate_file): Output {start,end}_column
8572         fields.
8573         (read_graph_file): Read end_column.
8575 2019-03-14  Richard Biener  <rguenther@suse.de>
8577         PR middle-end/89698
8578         * fold-const.c (operand_equal_p): For INDIRECT_REF check
8579         that the access types are similar.
8581 2019-03-14  Jakub Jelinek  <jakub@redhat.com>
8583         PR tree-optimization/89703
8584         * tree-ssa-strlen.c (valid_builtin_call): Punt if stmt call types
8585         aren't compatible also with builtin_decl_explicit.  Check pure
8586         or non-pure status of BUILT_IN_STR{{,N}CMP,N{LEN,{CAT,CPY}{,_CHK}}}
8587         and BUILT_IN_STPNCPY{,_CHK}.
8589 2019-03-14  H.J. Lu  <hongjiu.lu@intel.com>
8591         PR target/89523
8592         * config/i386/i386.c (ix86_print_operand): Handle 'M' to add
8593         addr32 prefix to VSIB address for X32.
8594         * config/i386/sse.md (*avx512pf_gatherpf<mode>sf_mask): Prepend
8595         "%M2" to opcode.
8596         (*avx512pf_gatherpf<mode>df_mask): Likewise.
8597         (*avx512pf_scatterpf<mode>sf_mask): Likewise.
8598         (*avx512pf_scatterpf<mode>df_mask): Likewise.
8599         (*avx2_gathersi<mode>): Prepend "%M3" to opcode.
8600         (*avx2_gathersi<mode>_2): Prepend "%M2" to opcode.
8601         (*avx2_gatherdi<mode>): Prepend "%M3" to opcode.
8602         (*avx2_gatherdi<mode>_2): Prepend "%M2" to opcode.
8603         (*avx2_gatherdi<mode>_3): Prepend "%M3" to opcode.
8604         (*avx2_gatherdi<mode>_4): Prepend "%M2" to opcode.`
8605         (*avx512f_gathersi<mode>): Prepend "%M4" to opcode.
8606         (*avx512f_gathersi<mode>_2): Prepend "%M3" to opcode.
8607         (*avx512f_gatherdi<mode>): Prepend "%M4" to opcode.
8608         (*avx512f_gatherdi<mode>_2): Prepend "%M3" to opcode.
8609         (*avx512f_scattersi<mode>): Prepend "%M0" to opcode.
8610         (*avx512f_scatterdi<mode>): Likewise.
8612 2019-03-13  Vladimir Makarov  <vmakarov@redhat.com>
8614         PR target/85860
8615         * lra-constraints.c (inherit_in_ebb): Update
8616         potential_reload_hard_regs along with live_hard_regs.
8618 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
8620         PR debug/89498
8621         * dwarf2out.c (size_of_die): For dw_val_class_view_list always use
8622         DWARF_OFFSET_SIZE.
8623         (value_format): For dw_val_class_view_list never use DW_FORM_loclistx.
8625 2019-03-13  Martin Sebor  <msebor@redhat.com>
8627         PR tree-optimization/89662
8628         * tree-vrp.c (vrp_prop::check_mem_ref): Avoid assuming every type
8629         has a size.
8631 2019-03-13  Richard Biener  <rguenther@suse.de>
8633         PR middle-end/89677
8634         * tree-scalar-evolution.c (simplify_peeled_chrec): Do not
8635         throw FP expressions at tree-affine.
8637 2019-03-14  Richard Biener  <rguenther@suse.de>
8639         * tree-pretty-print.c (dump_generic_node): For -gimple properly
8640         dump negative integer constants using _Literal (type) -num.
8642 2019-03-13  Jakub Jelinek  <jakub@redhat.com>
8644         * ipa-param-manipulation.h (struct ipa_parm_adjustment): Remove
8645         nonlocal_value member.
8647         PR middle-end/88588
8648         * omp-simd-clone.c (ipa_simd_modify_stmt_ops): Handle PHI args.
8649         (ipa_simd_modify_function_body): Handle PHIs.
8651 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
8653         * config/s390/s390.c (s390_option_override_internal): Use more
8654         aggressive inlining parameters.
8656 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
8658         * config/s390/3906.md: New file.
8659         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
8660         (LONGRUNNING_THRESHOLD): Remove.
8661         (MAX_SCHED_MIX_SCORE): Decrease.
8662         (MAX_SCHED_MIX_DISTANCE): Decrease.
8663         (s390_bb_fallthru_entry_likely): Assume fallthru for less than likely.
8664         (struct s390_sched_state): New struct to hold scheduling state.
8665         (S390_SCHED_STATE_NORMAL): Remove.
8666         (S390_SCHED_STATE_CRACKED): Remove.
8667         (S390_SCHED_ATTR_MASK_GROUPOFTWO): Add.
8668         (s390_get_sched_attrmask): Use new attribute.
8669         (s390_get_unit_mask): Use new units.
8670         (s390_is_fpd): New function.
8671         (s390_is_fxd): New function.
8672         (s390_is_longrunning): New function.
8673         (s390_sched_score): Use new functions.
8674         (s390_sched_reorder): Likewise.
8675         (s390_sched_variable_issue): Rework and use new functions.
8676         (s390_sched_init): Use new functions.
8677         * config/s390/s390.h (s390_tune_attr):  Add z14.
8678         * config/s390/s390.md: Add z14.
8680 2019-03-12  Robin Dapp  <rdapp@linux.ibm.com>
8682         * config/s390/2964.md: Update pipeline description.
8683         * config/s390/s390.c (MAX_SCHED_UNITS): Increase.
8684         (LONGRUNNING_THRESHOLD): Remove.
8685         (LATENCY_FACTOR): Remove.
8686         (s390_get_unit_mask): Add unit.
8687         (s390_sched_score): Use fxd/fpd.
8688         (s390_sched_variable_issue): Use fxd/fpd.
8690 2019-03-12  Martin Liska  <mliska@suse.cz>
8692         * config/i386/i386.c: Reword an error message.
8694 2019-03-12  Martin Jambor  <mjambor@suse.cz>
8696         * cgraph.c (cgraph_node::dump): Dump more info for former thunks,
8697         terminate with newline.
8699 2019-03-12  Jakub Jelinek  <jakub@redhat.com>
8701         PR target/52726
8702         * config/s390/s390.md (tabort): Use %wd instead of
8703         HOST_WIDE_INT_PRINT_DEC in error message, reword to avoid two capital
8704         letters and periods.
8705         * config/tilepro/tilepro.c (tilepro_print_operand): Use %wd in
8706         output_operand_lossage instead of HOST_WIDE_INT_PRINT_DEC, replace
8707         's with %< and %>.
8709         PR middle-end/89663
8710         * builtins.c (expand_builtin_int_roundingfn,
8711         expand_builtin_int_roundingfn_2): Return NULL_RTX instead of
8712         gcc_unreachable if validate_arglist fails.
8714 2019-03-12  Richard Biener  <rguenther@suse.de>
8716         PR tree-optimization/89664
8717         * tree-ssa-math-opts.c (execute_cse_reciprocals_1): Properly
8718         free the occurance tree after the early out.
8720 2019-03-11  Jakub Jelinek  <jakub@redhat.com>
8722         PR middle-end/89655
8723         PR bootstrap/89656
8724         * vr-values.c (vr_values::update_value_range): If
8725         old_vr->varying_p (), don't update it, make new_vr also VARYING
8726         and return false.
8728 2019-03-11  Martin Liska  <mliska@suse.cz>
8730         * config/aarch64/aarch64.c (aarch64_override_options_internal):
8731         Fix double string quoting.
8733 2019-03-11  Martin Liska  <mliska@suse.cz>
8735         * collect-utils.c (collect_wait): Wrap apostrophes
8736         in gcc internal format with %'.
8737         * collect2.c (main): Likewise.
8738         (scan_prog_file): Likewise.
8739         (scan_libraries): Likewise.
8740         * config/i386/i386.c (ix86_expand_call): Likewise.
8741         (ix86_handle_interrupt_attribute): Likewise.
8742         * config/nds32/nds32-intrinsic.c (nds32_expand_builtin_impl): Likewise.
8743         * config/nds32/nds32.c (nds32_insert_attributes): Likewise.
8744         * config/rl78/rl78.c (rl78_handle_saddr_attribute): Likewise.
8745         * lto-wrapper.c (find_crtoffloadtable): Likewise.
8746         * symtab.c (symtab_node::verify_base): Likewise.
8747         * tree-cfg.c (verify_gimple_label): Likewise.
8748         * tree.c (verify_type_variant): Likewise.
8750 2019-03-11  Martin Liska  <mliska@suse.cz>
8752         * builtins.c (expand_builtin_thread_pointer): Wrap an option name
8753         in a string format message and fix GNU coding style.
8754         (expand_builtin_set_thread_pointer): Likewise.
8755         * common/config/aarch64/aarch64-common.c
8756         (aarch64_rewrite_selected_cpu): Likewise.
8757         * common/config/alpha/alpha-common.c (alpha_handle_option): Likewise.
8758         * common/config/arc/arc-common.c (arc_handle_option): Likewise.
8759         * common/config/arm/arm-common.c (arm_parse_fpu_option): Likewise.
8760         * common/config/bfin/bfin-common.c (bfin_handle_option): Likewise.
8761         * common/config/i386/i386-common.c (ix86_handle_option): Likewise.
8762         * common/config/ia64/ia64-common.c (ia64_handle_option): Likewise.
8763         * common/config/m68k/m68k-common.c (m68k_handle_option): Likewise.
8764         * common/config/msp430/msp430-common.c (msp430_handle_option): Likewise.
8765         * common/config/nds32/nds32-common.c (nds32_handle_option): Likewise.
8766         * common/config/powerpcspe/powerpcspe-common.c (rs6000_handle_option):
8767         Likewise.
8768         * common/config/riscv/riscv-common.c
8769         (riscv_subset_list::parsing_subset_version): Likewise.
8770         (riscv_subset_list::parse_std_ext): Likewise.
8771         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
8772         (riscv_subset_list::parse): Likewise.
8773         * common/config/rs6000/rs6000-common.c (rs6000_handle_option): Likewise.
8774         * config/aarch64/aarch64.c (aarch64_parse_one_option_token): Likewise.
8775         (aarch64_override_options_internal): Likewise.
8776         (aarch64_validate_mcpu): Likewise.
8777         (aarch64_validate_march): Likewise.
8778         (aarch64_validate_mtune): Likewise.
8779         (aarch64_override_options): Likewise.
8780         * config/alpha/alpha.c (alpha_option_override): Likewise.
8781         * config/arc/arc.c (arc_init): Likewise.
8782         (parse_mrgf_banked_regs_option): Likewise.
8783         (arc_override_options): Likewise.
8784         (arc_expand_builtin_aligned): Likewise.
8785         * config/arm/arm-builtins.c (arm_expand_neon_builtin): Likewise.
8786         (arm_expand_builtin): Likewise.
8787         * config/arm/arm.c (arm_option_check_internal): Likewise.
8788         (arm_configure_build_target): Likewise.
8789         (arm_option_override): Likewise.
8790         (arm_options_perform_arch_sanity_checks): Likewise.
8791         (arm_handle_cmse_nonsecure_entry): Likewise.
8792         (arm_handle_cmse_nonsecure_call): Likewise.
8793         (arm_tls_referenced_p): Likewise.
8794         (thumb1_expand_prologue): Likewise.
8795         * config/avr/avr.c (avr_option_override): Likewise.
8796         * config/bfin/bfin.c (bfin_option_override): Likewise.
8797         * config/c6x/c6x.c (c6x_option_override): Likewise.
8798         * config/cr16/cr16.c (cr16_override_options): Likewise.
8799         * config/cris/cris.c (cris_option_override): Likewise.
8800         * config/csky/csky.c (csky_handle_isr_attribute): Likewise.
8801         * config/darwin-c.c (macosx_version_as_macro): Likewise.
8802         * config/darwin.c (darwin_override_options): Likewise.
8803         * config/frv/frv.c (frv_expand_builtin): Likewise.
8804         * config/h8300/h8300.c (h8300_option_override): Likewise.
8805         * config/i386/i386.c (parse_mtune_ctrl_str): Likewise.
8806         (ix86_option_override_internal): Likewise.
8807         (warn_once_call_ms2sysv_xlogues): Likewise.
8808         (ix86_expand_prologue): Likewise.
8809         (split_stack_prologue_scratch_regno): Likewise.
8810         (ix86_warn_parameter_passing_abi): Likewise.
8811         * config/ia64/ia64.c (fix_range): Likewise.
8812         * config/m68k/m68k.c (m68k_option_override): Likewise.
8813         * config/microblaze/microblaze.c (microblaze_option_override): Likewise.
8814         * config/mips/mips.c (mips_emit_probe_stack_range): Likewise.
8815         (mips_set_compression_mode): Likewise.
8816         * config/mmix/mmix.c (mmix_option_override): Likewise.
8817         * config/mn10300/mn10300.c (mn10300_option_override): Likewise.
8818         * config/msp430/msp430.c (msp430_option_override): Likewise.
8819         * config/nds32/nds32.c (nds32_option_override): Likewise.
8820         * config/nios2/nios2.c (nios2_custom_check_insns): Likewise.
8821         (nios2_option_override): Likewise.
8822         (nios2_expand_custom_builtin): Likewise.
8823         * config/nvptx/mkoffload.c (main): Likewise.
8824         * config/nvptx/nvptx.c (diagnose_openacc_conflict): Likewise.
8825         * config/pa/pa.c (fix_range): Likewise.
8826         (pa_option_override): Likewise.
8827         * config/riscv/riscv.c (riscv_parse_cpu): Likewise.
8828         (riscv_option_override): Likewise.
8829         * config/rl78/rl78.c (rl78_option_override): Likewise.
8830         * config/rs6000/aix61.h: Likewise.
8831         * config/rs6000/aix71.h: Likewise.
8832         * config/rs6000/aix72.h: Likewise.
8833         * config/rs6000/driver-rs6000.c (elf_platform): Likewise.
8834         * config/rs6000/freebsd64.h: Likewise.
8835         * config/rs6000/linux64.h: Likewise.
8836         * config/rs6000/rs6000.c (rs6000_option_override_internal): Likewise.
8837         (rs6000_expand_zeroop_builtin): Likewise.
8838         (rs6000_expand_mtfsb_builtin): Likewise.
8839         (rs6000_expand_set_fpscr_rn_builtin): Likewise.
8840         (rs6000_expand_set_fpscr_drn_builtin): Likewise.
8841         (rs6000_invalid_builtin): Likewise.
8842         (rs6000_expand_split_stack_prologue): Likewise.
8843         * config/rs6000/rtems.h: Likewise.
8844         * config/rx/rx.c (valid_psw_flag): Likewise.
8845         (rx_expand_builtin): Likewise.
8846         * config/s390/s390-c.c (s390_resolve_overloaded_builtin): Likewise.
8847         * config/s390/s390.c (s390_expand_builtin): Likewise.
8848         (s390_function_profiler): Likewise.
8849         (s390_option_override_internal): Likewise.
8850         (s390_option_override): Likewise.
8851         * config/sh/sh.c (sh_option_override): Likewise.
8852         (sh_builtin_saveregs): Likewise.
8853         (sh_fix_range): Likewise.
8854         * config/sh/vxworks.h: Likewise.
8855         * config/sparc/sparc.c (sparc_option_override): Likewise.
8856         * config/spu/spu.c (spu_option_override): Likewise.
8857         (fix_range): Likewise.
8858         * config/visium/visium.c (visium_option_override): Likewise.
8859         (visium_handle_interrupt_attr): Likewise.
8860         * config/xtensa/xtensa.c (xtensa_option_override): Likewise.
8861         * dbgcnt.c (dbg_cnt_set_limit_by_name): Likewise.
8862         (dbg_cnt_process_opt): Likewise.
8863         * dwarf2out.c (output_dwarf_version): Likewise.
8864         * except.c (expand_eh_return): Likewise.
8865         * gcc.c (defined): Likewise.
8866         (driver_handle_option): Likewise.
8867         (process_command): Likewise.
8868         (compare_files): Likewise.
8869         (driver::prepare_infiles): Likewise.
8870         (driver::do_spec_on_infiles): Likewise.
8871         (driver::maybe_run_linker): Likewise.
8872         * omp-offload.c (oacc_parse_default_dims): Likewise.
8873         * opts-global.c (handle_common_deferred_options): Likewise.
8874         * opts.c (parse_sanitizer_options): Likewise.
8875         (common_handle_option): Likewise.
8876         (enable_warning_as_error): Likewise.
8877         * passes.c (enable_disable_pass): Likewise.
8878         * plugin.c (parse_plugin_arg_opt): Likewise.
8879         (default_plugin_dir_name): Likewise.
8880         * targhooks.c (default_expand_builtin_saveregs): Likewise.
8881         (default_pch_valid_p): Likewise.
8882         * toplev.c (init_asm_output): Likewise.
8883         (process_options): Likewise.
8884         (toplev::run_self_tests): Likewise.
8885         * tree-cfg.c (verify_gimple_call): Likewise.
8886         * tree-inline.c (inline_forbidden_p_stmt): Likewise.
8887         (tree_inlinable_function_p): Likewise.
8888         * var-tracking.c (vt_find_locations): Likewise.
8890 2019-03-11  Andreas Krebbel  <krebbel@linux.ibm.com>
8892         * config/s390/s390.c (s390_expand_builtin): Do the copy_to_reg not
8893         only on the else branch.
8895 2019-03-11  Martin Liska  <mliska@suse.cz>
8897         * gcov.c (output_intermediate_json_line): Print function
8898         name of each line.
8899         (output_json_intermediate_file): Add new argument.
8900         * doc/gcov.texi: Document the change.
8902 2019-03-11  Eric Botcazou  <ebotcazou@adacore.com>
8904         PR rtl-optimization/89588
8905         * loop-unroll.c (decide_unroll_constant_iterations): Make guard for
8906         explicit unrolling factor more robust.
8908 2019-03-11  Richard Biener  <rguenther@suse.de>
8910         PR tree-optimization/89649
8911         * tree-vectorizer.h (vect_loop_versioning): Adjust prototype.
8912         * tree-vect-loop-manip.c (vect_do_peeling): Unset force_vectorize
8913         on the prolog and epilog loops.
8914         (vect_loop_versioning): Return copy of loop.
8915         * tree-vect-loop.c (vect_transform_loop): Unset force_vectorize
8916         on the non-vectorized version of the loop.
8918 2019-03-10  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8920         PR target/68924
8921         * config/i386/sse.md (*vec_extractv2di_0_sse):
8922         Add (=r,x) alternative and corresponding splitter.
8924 2019-03-10  Martin Jambor  <mjambor@suse.cz>
8926         PR tree-optimization/85762
8927         PR tree-optimization/87008
8928         PR tree-optimization/85459
8929         * tree-sra.c (contains_vce_or_bfcref_p): New parameter, set the bool
8930         it points to if there is a type changing MEM_REF.  Adjust all callers.
8931         (build_accesses_from_assign): Disable total scalarization if
8932         contains_vce_or_bfcref_p returns true through the new parameter, for
8933         both rhs and lhs.
8935 2019-03-09  Jakub Jelinek  <jakub@redhat.com>
8937         PR c/88568
8938         * attribs.c (handle_dll_attribute): Don't clear TREE_STATIC for
8939         dllimport on VAR_DECLs with RECORD_TYPE or UNION_TYPE DECL_CONTEXT.
8941         PR target/79645
8942         * common.opt (fdiagnostics-show-labels,
8943         fdiagnostics-show-line-numbers, fdiagnostics-format=,
8944         fdiagnostics-minimum-margin-width=, fgnat-encodings=, gas-loc-support,
8945         gas-locview-support, ginline-points, ginternal-reset-location-views):
8946         Terminate description text with a dot.
8947         * config/microblaze/microblaze.opt (mxl-prefetch): Likewise.
8948         * config/mcore/mcore.opt (m210, m340): Likewise.
8949         * config/epiphany/epiphany.opt (mprefer-short-insn-regs, mcmove,
8950         mnops=): Start description text with a capital letter.
8951         * config/arc/arc.opt (msize-level=): Likewise.
8952         * config/sh/sh.opt (minline-ic_invalidate): Likewise.
8953         * config/rs6000/sysv4.opt (mno-toc, mtoc, mno-traceback, mshlib,
8954         mnewlib): Likewise.
8955         * config/ft32/ft32.opt (msim): Likewise.
8956         (mft32b, mcompress): Likewise.  Terminate description text with a dot.
8957         (mnodiv, mnopm): Terminate description text with a dot.
8958         * config/c6x/c6x.opt (c6x_sdata): Terminate Enum description with
8959         a colon.
8960         * config/i386/i386.opt (prefer_vector_width, instrument_return):
8961         Likewise.
8962         * config/rx/rx.opt (nofpu): Remove trailing spaces from description
8963         text.
8965         PR rtl-optimization/89634
8966         * cfgcleanup.c (thread_jump): Punt if registers mentioned in cond1
8967         are modified in BB_END (e->src) instruction.
8969 2019-03-08  David Malcolm  <dmalcolm@redhat.com>
8971         PR target/79926
8972         * config/i386/i386.c (ix86_set_current_function): Make "sorry"
8973         messages more amenable to translation, and improve wording.
8975 2019-03-08  Bill Schmidt  <wschmidt@linux.ibm.com>
8977         * config/rs6000/rs6000-p8swap.c (rs6000_analyze_swaps): Rebuild
8978         ud- and du-chains between phases.
8980 2019-03-08  Richard Sandiford  <richard.sandiford@arm.com>
8982         PR debug/89631
8983         * dwarf2cfi.c (dwarf2out_frame_debug_expr): Use CONST_POLY_INT
8984         instead of POLY_INT_CST.
8986 2019-03-08  Andre Vieira  <andre.simoesdiasvieira@arm.com>
8988         * config/arm/arm.h (TARGET_FP16_TO_DOUBLE): Add TARGET_VFP_DOUBLE
8989         requirement.
8991 2019-03-08  UroÅ¡ Bizjak  <ubizjak@gmail.com>
8993         PR target/68924
8994         PR target/78782
8995         PR target/87558
8996         * config/i386/emmintrin.h (_mm_loadu_si64): New intrinsic.
8997         (_mm_storeu_si64): Ditto.
8999 2019-03-08  Martin Liska  <mliska@suse.cz>
9001         PR target/86952
9002         * config/i386/i386.c (ix86_option_override_internal): Disable
9003         jump tables when retpolines are used.
9005 2019-03-08  Jan Hubicka  <hubicka@ucw.cz>
9007         PR go/63560
9008         * ipa-split.c (execute_split_functions): Do not split
9009         'noinline' or 'section' function.
9011 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
9013         PR target/79846
9014         * config/s390/s390.c (s390_const_operand_ok): Use %wu instead of
9015         HOST_WIDE_INT_PRINT_UNSIGNED and %wd instead of
9016         HOST_WIDE_INT_PRINT_DEC.  Formatting fixes.
9018         PR ipa/80000
9019         * ipa-devirt.c (compare_virtual_tables): Remove two trailing spaces
9020         from diagnostics.  Formatting fixes.
9022         PR target/85665
9023         * ipa-devirt.c (odr_types_equivalent_p): Fix grammar in
9024         warn_odr diagnostics.
9026         PR other/80058
9027         * lra-constraints.c (process_alt_operands): Avoid one space before
9028         " at the end of line and another after " on another line in a string
9029         literal.
9030         * attribs.c (handle_dll_attribute): Likewise.
9031         * config/avr/avr-devices.c (avr_texinfo): Likewise.
9033         * gimple-ssa-warn-alloca.c (pass_walloca::execute): Don't wrap
9034         warning_at or inform messages in G_() if there is no ?:.
9036         PR tree-optimization/89550
9037         * builtins.c (c_strlen): Only set TREE_NO_WARNING if warning_at
9038         returned true.  Formatting fixes.
9039         (expand_builtin_strnlen): Formatting fixes.
9040         * tree-vrp.c (vrp_prop::check_mem_ref): Only set TREE_NO_WARNING
9041         if warning_at returned true.
9042         * tree-cfg.c (pass_warn_function_return::execute): Likewise.
9044 2019-03-08  Richard Biener  <rguenther@suse.de>
9046         PR middle-end/89578
9047         * cfgloop.h (struct loop): Add owned_clique field.
9048         * cfgloopmanip.c (copy_loop_info): Copy it.
9049         * tree-cfg.c (gimple_duplicate_bb): Do not remap owned_clique
9050         cliques.
9051         * tree-inline.c (copy_loops): Remap owned_clique.
9052         * lto-streamer-in.c (input_cfg): Stream owned_clique.
9053         * lto-streamer-out.c (output_cfg): Likewise.
9055 2019-03-08  Jakub Jelinek  <jakub@redhat.com>
9057         PR target/80190
9058         * config/darwin.c: Include intl.h.
9059         (darwin_build_constant_cfstring): Improve i18n of diagnostics by not
9060         composing the message out of two separate parts.
9062 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
9064         PR target/80003
9065         * config/i386/i386.c (ix86_set_func_type): Make sure diagnostics
9066         doesn't start with a capital letter and doesn't end with a dot.
9067         (ix86_function_arg_boundary): Make sure diagnostics doesn't start
9068         with a capital letter.
9069         (ix86_mangle_function_version_assembler_name): Likewise.
9070         (ix86_generate_version_dispatcher_body): Likewise.
9071         (fold_builtin_cpu): Likewise.
9072         (get_builtin_code_for_version): Likewise.  Remove extraneous space.
9073         (ix86_handle_interrupt_attribute): Make the diagnostics easier for
9074         translators, wrap full type name in %qs.
9076         PR translation/79999
9077         * gimplify.c (gimplify_omp_ordered): Reword diagnostics to talk about
9078         depend clause with source (or sink) modifier.
9079         * omp-expand.c (expand_omp_ordered_sink): Likewise.
9081         PR target/89602
9082         * config/i386/sse.md (avx512f_mov<ssescalarmodelower>_mask,
9083         *avx512f_load<mode>_mask, avx512f_store<mode>_mask): New define_insns.
9084         (avx512f_load<mode>_mask): New define_expand.
9085         * config/i386/i386-builtin.def (__builtin_ia32_loadsd_mask,
9086         __builtin_ia32_loadss_mask, __builtin_ia32_storesd_mask,
9087         __builtin_ia32_storess_mask, __builtin_ia32_movesd_mask,
9088         __builtin_ia32_movess_mask): New builtins.
9089         * config/i386/avx512fintrin.h (_mm_mask_load_ss, _mm_maskz_load_ss,
9090         _mm_mask_load_sd, _mm_maskz_load_sd, _mm_mask_move_ss,
9091         _mm_maskz_move_ss, _mm_mask_move_sd, _mm_maskz_move_sd,
9092         _mm_mask_store_ss, _mm_mask_store_sd): New intrinsics.
9094 2019-03-07  Martin Jambor  <mjambor@suse.cz>
9096         PR lto/87525
9097         * ipa-cp.c (perform_estimation_of_a_value): Account zero time benefit
9098         for extern inline functions.
9100 2019-03-07  Martin Jambor  <mjambor@suse.cz>
9102         PR ipa/88235
9103         * cgraph.h (cgraph_node): New inline method former_thunk_p.
9104         * cgraph.c (cgraph_node::dump): Dump a note if node is a former thunk.
9105         (clone_of_p): Treat expanded thunks like thunks, be optimistic if they
9106         have multiple callees.  At the end check if declarations match as
9107         opposed to cgraph_nodes.
9109 2019-03-07  Martin Liska  <mliska@suse.cz>
9111         * cgraph.c (cgraph_node::verify_node): Verify with a neighbour
9112         which is equivalent to searching for this in clones chain.
9113         * symtab.c (symtab_node::verify_base): Similarly compare ASM
9114         names with a neighbour and special case first node in a chain.
9116 2019-01-25  Jason Merrill  <jason@redhat.com>
9118         PR c++/80916 - spurious "static but not defined" warning.
9119         * gimple-fold.c (can_refer_decl_in_current_unit_p): Return false
9120         for an internal symbol with DECL_EXTERNAL.
9122 2019-04-07  Richard Biener  <rguenther@suse.de>
9124         PR middle-end/89618
9125         * cfgloopmanip.c (copy_loop_info): Copy forgotten fields.
9126         * tree-inline.c (copy_loops): Simplify.
9128 2019-03-07  Martin Liska  <mliska@suse.cz>
9130         * dwarf2out.c (add_AT_vms_delta): Revert function removal.
9132 2019-03-07  Richard Biener  <rguenther@suse.de>
9134         PR tree-optimization/89595
9135         * tree-ssa-dom.c (dom_opt_dom_walker::optimize_stmt): Take
9136         stmt iterator as reference, take boolean output parameter to
9137         indicate whether the stmt was removed and thus the iterator
9138         already advanced.
9139         (dom_opt_dom_walker::before_dom_children): Re-iterate over
9140         stmts created by folding.
9142 2019-03-07  Jakub Jelinek  <jakub@redhat.com>
9144         PR c++/89585
9145         * doc/extend.texi (Basic Asm): Document qualifiers are not allowed
9146         at toplevel.
9148 2019-03-06  Peter Bergner  <bergner@linux.ibm.com>
9150         PR rtl-optimization/88845
9151         * config/rs6000/rs6000.c (rs6000_emit_move_si_sf_subreg): Enable during
9152         LRA.
9153         * lra.c (remove_scratches_1): New function.
9154         (remove_scratches): Use it.
9155         (lra_emit_move): Likewise.
9157 2019-03-06  Claudiu Zissulescu  <claziss@synopsys.com>
9159         * config/arc/arc-c.def (__ARC_UNALIGNED__): Set it on
9160         unaligned_access variable.
9161         * config/arc/arc.c (arc_override_options): Set unaligned access
9162         default on for HS CPUs.
9163         * config/arc/arc.h (STRICT_ALIGNMENT): Fix logic.
9165 2019-03-06  Martin Liska  <mliska@suse.cz>
9167         PR gcov-profile/89577
9168         * doc/gcov.texi: Prefer to use --coverage.
9169         * doc/sourcebuild.texi: Likewise.
9171 2019-03-02  Jason Merrill  <jason@redhat.com>
9173         PR c++/86485 - -Wmaybe-unused with empty class ?:
9174         * gimplify.c (gimplify_cond_expr): Use INIT_EXPR.
9176 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
9178         PR target/89587
9179         * config/rs6000/t-linux (MULTIARCH_DIRNAME): Set to non-empty only
9180         if_multiarch.
9182         PR middle-end/89590
9183         * builtins.c (maybe_emit_free_warning): Punt if free doesn't have
9184         exactly one argument.
9186 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
9187             Richard Sandiford  <richard.sandiford@arm.com>
9189         PR tree-optimization/89570
9190         * match.pd (vec_cond into cond_op simplification): Don't use
9191         get_conditional_internal_fn, use as_internal_fn (cond_op).
9193 2019-03-05  Wilco Dijkstra  <wdijkstr@arm.com>
9195         PR target/89222
9196         * config/arm/arm.md (movsi): Use targetm.cannot_force_const_mem
9197         to decide when to split off a non-zero offset from a symbol.
9198         * config/arm/arm.c (arm_cannot_force_const_mem): Disallow offsets
9199         in function symbols.
9201 2019-03-05  Richard Biener  <rguenther@suse.de>
9203         PR tree-optimization/89594
9204         * tree-if-conv.c (pass_if_conversion::execute): Handle
9205         case where .LOOP_VECTORIZED_FUNCTION was removed.
9207 2019-03-05  Jakub Jelinek  <jakub@redhat.com>
9209         PR bootstrap/89560
9210         * fold-const.c (fold_checksum_tree): Don't use fixed size buffer,
9211         instead alloca it only when needed with the needed size.
9213         PR tree-optimization/89570
9214         * match.pd (vec_cond into cond_op simplification): Guard with
9215         vectorized_internal_fn_supported_p test and #if GIMPLE.
9217         PR tree-optimization/89566
9218         * gimple-ssa-sprintf.c (sprintf_dom_walker::handle_gimple_call):
9219         Set info.fncode to BUILT_IN_NONE if gimple_call_builtin_p failed.
9220         Punt if get_user_idx_format succeeds, but idx_format argument is
9221         not provided or doesn't have pointer type, or if idx_args is above
9222         number of provided arguments.
9224 2019-03-04  Wilco Dijkstra  <wdijkstr@arm.com>
9226         PR tree-optimization/89437
9227         * match.pd: Use lt in sin(atan(x)) and cos(atan(x)) simplifications.
9229 2019-03-04  Richard Biener  <rguenther@suse.de>
9231         PR middle-end/89572
9232         * tree-scalar-evolution.c: (get_loop_exit_condition): Use
9233         safe_dyn_cast.
9235 2019-03-04  Bin Cheng  <bin.cheng@linux.alibaba.com>
9237         PR tree-optimization/89487
9238         * tree-loop-distribution.c (has_nonaddressable_dataref_p): New.
9239         (create_rdg_vertices): Compute has_nonaddressable_dataref_p.
9240         (distribute_loop): Don't do runtime alias check if there is non-
9241         addressable data reference.
9242         * tree-ssa-loop-ivopts.c (may_be_nonaddressable_p): Check if VAR_DECL
9243         is a register variable.
9245 2019-03-02  Jakub Jelinek  <jakub@redhat.com>
9247         PR target/89506
9248         * config/arm/arm.md (cmpsi2_addneg): Use
9249         trunc_int_for_mode (-INTVAL (...), SImode) instead of -INTVAL (...).
9250         If operands[2] is 0 or INT_MIN, force use of subs.
9251         (*compare_scc splitter): Use gen_int_mode.
9252         (*negscc): Likewise.
9253         * config/arm/thumb2.md (*thumb2_negscc): Likewise.
9255 2019-03-01  Kito Cheng  <kito.cheng@gmail.com>
9256             Monk Chiang  <sh.chiang04@gmail.com>
9258         * common/config/riscv/riscv-common.c: Include sstream.
9259         (riscv_subset_list::to_string): New.
9260         (riscv_arch_str): Likewise.
9261         * config.gcc (riscv*-*-*): Handle --with-riscv-attribute=
9262         * config.in: Regen.
9263         * config/riscv/riscv-protos.h (riscv_arch_str): New.
9264         * config/riscv/riscv.c (INCLUDE_STRING): Defined.
9265         (riscv_emit_attribute): New.
9266         (riscv_file_start): Emit attribute if needed.
9267         (riscv_option_override): Init riscv_emit_attribute_p.
9268         * config/riscv/riscv.opt (mriscv-attribute): New option.
9269         * configure.ac (riscv*-*-*): Check binutils is supporting ELF
9270         * configure: Regen.
9271         * doc/install.texi: Document --with-riscv-attribute.
9272         * doc/invoke.texi: Document -mriscv-attribute.
9274         * common/config/riscv/riscv-common.c:
9275         Include config/riscv/riscv-protos.h.
9276         (INCLUDE_STRING): Defined.
9277         (RISCV_DONT_CARE_VERSION): Defined.
9278         (riscv_subset_t): Declare.
9279         (riscv_subset_t::riscv_subset_t): New.
9280         (riscv_subset_list): Declare.
9281         (riscv_subset_list::riscv_subset_list): New.
9282         (riscv_subset_list::~riscv_subset_list): Likewise.
9283         (riscv_subset_list::parsing_subset_version): Likewise.
9284         (riscv_subset_list::parse_std_ext): Likewise.
9285         (riscv_subset_list::parse_sv_or_non_std_ext): Likewise.
9286         (riscv_subset_list::add): Likewise.
9287         (riscv_subset_list::lookup): Likewise.
9288         (riscv_subset_list::xlen): Likewise.
9289         (riscv_subset_list::parse): Likewise.
9290         (riscv_supported_std_ext): Likewise.
9291         (current_subset_list): Likewise.
9292         (riscv_parse_arch_string): Using riscv_subset_list::parse to
9293         parse.
9295 2019-03-01  Segher Boessenkool  <segher@kernel.crashing.org>
9297         * config/rs6000/rs6000.c (rs6000_option_override_internal): If
9298         rs6000_dejagnu_cpu_index is set, use that to override rs6000_cpu_index.
9299         * config/rs6000/rs6000.opt (mdejagnu-cpu=): New option.
9301 2019-03-01  Alexander Monakov  <amonakov@ispras.ru>
9303         PR rtl-optimization/85899
9304         * haifa-sched.c (find_fallthru_edge_from): Relax assert to account for
9305         fallthru edges leading to the exit block.
9307 2019-03-01  Tamar Christina  <tamar.christina@arm.com>
9309         PR target/89517
9310         * config/aarch64/aarch64-option-extensions.def (fp, simd, crypto, fp16,
9311         rdma, dotprod, sha2, sha3, sm4, fp16fml, sve): Collapse line.
9313 2019-03-01  Richard Sandiford  <richard.sandiford@arm.com>
9315         PR tree-optimization/89535
9316         * tree-vect-stmts.c (vectorizable_call): Record the vector types
9317         for each operand.  Calculate the fallback choice for mask operands
9318         and pass it to vect_get_vec_def_for_operand.
9320 2019-03-01  Richard Biener  <rguenther@suse.de>
9322         PR middle-end/89541
9323         * tree-ssa-operands.c (add_stmt_operand): CONST_DECL may
9324         get virtual operands.
9325         (get_expr_operands): Handle CONST_DECL like other decls.
9327 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
9329         PR middle-end/89503
9330         * fold-const.c (fold_checksum_tree): Ignore TREE_NO_WARNING bit
9331         on DECL_P and EXPR_P.
9333 2019-03-01  Richard Biener  <rguenther@suse.de>
9335         PR middle-end/89497
9336         * tree-cfgcleanup.h (cleanup_tree_cfg): Add SSA update flags
9337         argument, defaulted to zero.
9338         * passes.c (execute_function_todo): Pass down SSA update flags
9339         to cleanup_tree_cfg.
9340         * tree-cfgcleanup.c: Include tree-into-ssa.h and tree-cfgcleanup.h.
9341         (cleanup_tree_cfg_noloop): After cleanup_control_flow_pre update SSA
9342         form if requested.
9343         (cleanup_tree_cfg): Get and pass down SSA update flags.
9345 2019-03-01  Jakub Jelinek  <jakub@redhat.com>
9347         PR bootstrap/89539
9348         * dwarf2out.c (output_comdat_type_unit): Add ATTRIBUTE_UNUSED to
9349         early_lto_debug argument.
9351 2019-02-28  Eric Botcazou  <ebotcazou@adacore.com>
9353         PR tree-optimization/89536
9354         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_NOT_EXPR>: Test
9355         only whether bit #0 of the value is 0 instead of the entire value.
9357 2019-02-28  Marek Polacek  <polacek@redhat.com>
9359         PR c++/87068 - missing diagnostic with fallthrough statement.
9360         * gimplify.c (expand_FALLTHROUGH_r): If IFN_FALLTHROUGH was found
9361         at the end of a seq, save its location to walk_stmt_info.
9362         (expand_FALLTHROUGH): Warn if IFN_FALLTHROUGH is at the end of
9363         a switch.
9365 2019-02-28  Jan Hubicka  <hubicka@ucw.cz>
9367         PR lto/88585
9368         * tree.c (find_atomic_core_type): Move ahead in file.
9369         (check_base_type): Correctly compare alignments of atomic types.
9371 2019-02-28  H.J. Lu  <hongjiu.lu@intel.com>
9373         PR target/89455
9374         * config/i386/i386.c (get_builtin_code_for_version): Identify
9375         Westmere from PCLMUL, instead of AES.
9377 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
9379         PR target/89434
9380         * config/arm/arm.md (*subsi3_carryin_compare_const): Use
9381         trunc_int_for_mode (-INTVAL (...), SImode), just instead of
9382         -UINTVAL (...).
9384 2019-02-28  Tamar Christina  <tamar.christina@arm.com>
9386         PR target/88530
9387         * config/aarch64/aarch64-option-extensions.def: Document it.
9388         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Skip feature
9389         if empty hwcaps.
9391 2019-02-28  Jakub Jelinek  <jakub@redhat.com>
9393         PR c/89520
9394         * convert.c (convert_to_real_1, convert_to_integer_1): Punt for
9395         builtins if they don't have a single scalar floating point argument.
9396         Formatting fixes.
9398 2019-02-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
9400         PR rtl-optimization/89490
9401         * varasm.c (get_block_for_section): Bail out for mergeable sections.
9402         (default_use_anchors_for_symbol_p, output_object_block): Assert the
9403         block section is not mergeable.
9405 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
9407         PR target/70341
9408         * config/arm/arm.md (arm_casesi_internal): New define_expand.  Rename
9409         old define_insn to ...
9410         (*arm_casesi_internal): ... this.  Add mode to LABEL_REFs.
9411         * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
9412         Rename old define_insn to ...
9413         (*thumb2_casesi_internal): ... this.  Add mode to LABEL_REFs.
9414         (thumb2_casesi_internal_pic): New define_expand.  Rename old
9415         define_insn to ...
9416         (*thumb2_casesi_internal_pic): ... this.  Add mode to LABEL_REFs.
9417         * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
9418         MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
9420 2019-02-27  Richard Biener  <rguenther@suse.de>
9422         PR debug/88878
9423         * dwarf2out.c (use_debug_types): Disable when in_lto_p.
9425 2019-02-27  Richard Biener  <rguenther@suse.de>
9427         * passes.c (should_skip_pass_p): Do not skip cgraph-edge
9428         building.
9430 2019-02-27  Richard Biener  <rguenther@suse.de>
9432         PR debug/88878
9433         * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
9434         parameter, prefix section name with .gnu.debuglto_ if true.
9435         (dwarf2out_finish): Pass false to output_comdat_type_unit.
9436         (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
9438 2019-02-27  Richard Biener  <rguenther@suse.de>
9440         PR debug/89514
9441         * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
9442         rather than on use_debug_types, doing what output_die does.
9443         (value_format): Likewise.
9445 2019-02-27  Martin Jambor  <mjambor@suse.cz>
9446             Martin Sebor  <msebor@redhat.com>
9448         * doc/invoke.texi (Warning Options): Reword description of
9449         -Wno-absolute-value.
9451 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
9453         PR tree-optimization/89280
9454         * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
9455         builtin_setjmp_setup_bb): New functions.
9456         (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
9457         When visiting __builtin_setjmp_setup block, queue in special
9458         setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
9459         __builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
9460         from visited after the loop if they don't have any visited successor
9461         blocks.
9463 2018-02-26  Steve Ellcey  <sellcey@marvell.com>
9465         * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
9466         New function.
9467         (TARGET_GET_MULTILIB_ABI_NAME): New macro.
9469 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
9471         PR c++/89507
9472         * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
9473         with types other than sizetype/ssizetype.
9475 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
9477         * config/sparc/sparc-opts.h (enum processor_type): Rename to...
9478         (enum sparc_processor_type): ...this.
9479         (enum sparc_code_model_type): New enumeration type.
9480         (enum sparc_memory_model_type): Tweak comments.
9481         * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
9482         (mtune): Likewise.
9483         (mcmodel): Use sparc_code_model enumeration and variable.
9484         (sparc_code_model): New enumeration.
9485         (mdebug): Add Undocumented marker.
9486         * config/sparc/sparc.h (enum cmodel): Delete.
9487         (sparc_cmodel): Likewise.
9488         (TARGET_CM_MEDLOW): Adjust to above renaming.
9489         (TARGET_CM_MEDMID): Likewise.
9490         (TARGET_CM_MEDANY): Likewise.
9491         (TARGET_CM_EMBMEDANY): Likewise.
9492         * config/sparc/sparc.c (sparc_cmodel): Delete.
9493         (sparc_option_override): Remove string/value mapping support for the
9494         code model.  Move code and memory model support to after the handling
9495         of target flags.  Do private machine setup last.
9496         (sparc_emit_set_symbolic_const64): Use sparc_code_model.
9497         (sparc_legitimize_reload_address): Likewise.
9498         (sparc_output_mi_thunk): Likewise.
9499         * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
9501 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
9503         PR tree-optimization/89500
9504         * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
9505         (handle_builtin_strlen): Remove noncst_bound variable.  Always
9506         optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
9507         cst if the first cst bytes starting at x are known to be non-zero,
9508         even if the string is not zero terminated.  Don't try to modify
9509         *si for strnlen.  Update strlen_to_stridx only for strlen or if
9510         we can prove strnlen returns the same value as strlen would.
9512 2019-02-26  Martin Liska  <mliska@suse.cz>
9514         * alloc-pool.h (struct pool_usage): Remove extra
9515         print_dash_line.
9516         * bitmap.h (struct bitmap_usage): Likewise.
9517         * ggc-common.c (struct ggc_usage): Likewise.
9518         * mem-stats.h (struct mem_usage): Likewise.
9519         (mem_alloc_description::dump): Print dash lines
9520         here and repeat header at the end of a table report.
9521         It's then more readable.
9522         * tree-phinodes.c (phinodes_print_statistics): Make
9523         horizontal alignment.
9524         * tree-ssanames.c (ssanames_print_statistics): Likewise.
9525         * vec.c (struct vec_usage): Remove extra print_dash_line.
9526         * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
9528 2019-02-26  UroÅ¡ Bizjak  <ubizjak@gmail.com>
9530         * doc/extend.texi (__builtin_object_size):
9531         Use @pxref instead of @xref inside parenthesis.
9532         (__builtin_has_attribute): Add missing comma after @xref.
9533         (__builtin_object_size): Ditto.
9534         * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
9535         * fortran/invoke.texi (-ffpe-trap): Use @var for every item
9536         in the list.
9538 2019-02-26  Jeff Law  <law@redhat.com>
9540         PR rtl-optimization/87761
9541         * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
9542         detect obviously dead insns and delete them.
9544 2019-02-26  Richard Biener  <rguenther@suse.de>
9546         PR tree-optimization/89505
9547         * tree-ssa-structalias.c (compute_dependence_clique): Make sure
9548         to handle restrict pointed-to vars with multiple subvars
9549         correctly.
9551 2019-02-26  Richard Biener  <rguenther@suse.de>
9553         PR tree-optimization/89489
9554         * tree-parloops.c (create_loop_fn): Copy over last_clique.
9556 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
9558         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
9559         and move around comment.
9560         <BIT_AND_EXPR>: Likewise.
9561         <BIT_NOT_EXPR>: Add specific handling for boolean types.
9563 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
9565         PR target/89474
9566         * config/i386/i386.c (remove_partial_avx_dependency): Call
9567         df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
9568         after changing possibly many instructions to use that pseudo.  Fix up
9569         insertion of v4sf_const0 setter at the start of bb.
9571 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
9573         PR c/80409
9574         * doc/extend.texi (Variadic Pointer Args): New section.
9576 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
9577             Martin Sebor  <msebor@gmail.com>
9579         * common.opt (Wattribute-alias): Likewise.
9580         * doc/invoke.texi (Option Summary): List general form of
9581         -Wattribute-alias=.  List positive form of -Wmissing-attributes.
9582         (-Wmissing-attributes): Invert entry, rewrite and correct default.
9583         Add cross-references.
9584         (-Wattribute-alias): Rewrite and correct default.  Mention
9585         considered attributes (same as for -Wmissing-attributes).
9587 2019-02-25  Paul A. Clarke  <pc@us.ibm.com>
9589         * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
9590         (_mm_cvtpd_ps): Likewise.
9591         (_mm_cvttpd_epi32): Likewise.
9593         PR target/89338
9594         * config/rs6000/xmmintrin.h (_mm_cvtss_f32):  Fix type mismatch.
9595         (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
9597         PR target/89339
9598         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
9600 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
9602         PR target/88530
9603         * common/config/aarch64/aarch64-common.c
9604         (struct aarch64_option_extension): Add is_synthetic.
9605         (all_extensions): Use it.
9606         (TARGET_OPTION_INIT_STRUCT): Define hook.
9607         (struct gcc_targetm_common): Moved to end.
9608         (all_extensions_by_on): New.
9609         (opt_ext_cmp, typedef opt_ext): New.
9610         (aarch64_option_init_struct): New.
9611         (aarch64_contains_opt): New.
9612         (aarch64_get_extension_string_for_isa_flags): Output smallest set.
9613         * config/aarch64/aarch64-option-extensions.def
9614         (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
9615         (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
9616         sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
9617         Set is_synthetic to false.
9618         (crypto): Set is_synthetic to true.
9619         * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
9620         SYNTHETIC.
9622 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
9624         * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
9625         vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
9626         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
9627         vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
9628         vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
9629         vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
9630         vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
9631         vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
9632         Rename ...
9633         (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
9634         vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
9635         vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
9636         vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
9637         vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
9638         vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
9639         vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
9640         vfmlsl_laneq_high_f16): ... To this.
9641         * config/arm/neon.md: Update comments.
9643 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
9645         * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
9646         vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
9647         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
9648         vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
9649         vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
9650         vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
9651         vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
9652         vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
9653         Rename ...
9654         (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
9655         vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
9656         vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
9657         vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
9658         vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
9659         vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
9660         vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
9661         vfmlslq_laneq_high_f16): ... To this.
9663 2019-02-25  Alexander Monakov  <amonakov@ispras.ru>
9665         PR rtl-optimization/86096
9666         * df-scan.c (df_mw_compare): Do not check mw_reg fields when
9667         comparing mw_order values.
9669 2019-02-25  Jakub Jelinek  <jakub@redhat.com>
9671         PR target/89434
9672         * config/arm/arm.md (*subsi3_carryin_const): Use
9673         arm_neg_immediate_operand predicate instead of
9674         arm_not_immediate_operand, "L" constraint instead of "K" and
9675         print it using %n2 instead of %B2.
9676         (*subsi3_carryin_const0): New define_insn.
9677         (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
9678         instead of arm_not_operand and "I" constraint instead of "K" and
9679         print it using %n3 instead of %B2.  Instead of using match_dup 2 add
9680         another match_operand and in the condition check that it is negation
9681         of operands[2].
9682         (*subsi3_carryin_compare_const0): New define_ins.
9683         (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
9684         *subsi3_carryin_const.
9685         (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
9686         split into *subsi3_carryin_compare_const0 if the highpart is zero.
9688         PR target/89438
9689         * config/arm.vfp.md (*negdf2_vfp): Use
9690         gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
9691         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
9693 2019-02-24  Jakub Jelinek  <jakub@redhat.com>
9695         PR rtl-optimization/89445
9696         * simplify-rtx.c (simplify_ternary_operation): Don't use
9697         simplify_merge_mask on operands that may trap.
9698         * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
9699         SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
9700         second operand is CONST_VECTOR, check if any element could be zero.
9701         Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
9702         their operands can trap.
9704 2019-02-23  Martin Sebor  <msebor@redhat.com>
9706         * gimple-ssa-sprintf.c (target_strtol): Rename...
9707         (target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
9708         (parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
9709         check for range error.
9711 2019-02-23  H.J. Lu  <hongjiu.lu@intel.com>
9713         PR driver/69471
9714         * opts-common.c (prune_options): Also prune joined switches
9715         with Negative and RejectNegative.
9716         * config/i386/i386.opt (march=): Add Negative(march=).
9717         (mtune=): Add Negative(mtune=).
9718         * doc/options.texi: Document Negative used together with Joined
9719         and RejectNegative.
9721 2019-02-22  Martin Sebor  <msebor@redhat.com>
9723         * doc/extend.texi (Other Builtins): Add
9724         __builtin_is_constant_evaluated.
9726 2019-02-22  Richard Biener  <rguenther@suse.de>
9728         PR tree-optimization/87609
9729         * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
9731 2019-02-22  Jeff Law  <law@redhat.com>
9733         PR rtl-optimization/87761
9734         * config/mips/mips.md: Add new combiner pattern to recognize
9735         a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
9737 2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>
9739         PR target/89324
9740         * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
9741         destination register in peepholes generating patterns for ADDS/SUBS.
9742         (add<mode>3_compare0,
9743         *addsi3_compare0_uxtw, add<mode>3_compareC,
9744         add<mode>3_compareV_imm, add<mode>3_compareV,
9745         *adds_<optab><ALLX:mode>_<GPI:mode>,
9746         *subs_<optab><ALLX:mode>_<GPI:mode>,
9747         *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
9748         *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
9749         *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
9750         *sub<mode>3_compare0, *subsi3_compare0_uxtw,
9751         sub<mode>3_compare1): Allow stack pointer for source register.
9752         * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
9754 2019-02-22  Martin Sebor  <msebor@redhat.com>
9756         PR tree-optimization/88993
9757         PR tree-optimization/88853
9758         * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
9759         New helper.
9760         (sprintf_dom_walker::call_info::is_string_func): New helper.
9761         (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
9762         for formatted string functions.
9763         (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
9765 2019-02-22  Martin Sebor  <msebor@redhat.com>
9767         PR c/89425
9768         * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
9769         unreachable subexpressions.
9771 2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
9772             Hongtao Liu  <hongtao.liu@intel.com>
9773             Sunil K Pandey  <sunil.k.pandey@intel.com>
9775         PR target/87007
9776         * config/i386/i386-passes.def: Add
9777         pass_remove_partial_avx_dependency.
9778         * config/i386/i386-protos.h
9779         (make_pass_remove_partial_avx_dependency): New.
9780         * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
9781         New function.
9782         (pass_data_remove_partial_avx_dependency): New.
9783         (pass_remove_partial_avx_dependency): Likewise.
9784         (make_pass_remove_partial_avx_dependency): Likewise.
9785         * config/i386/i386.md (avx_partial_xmm_update): New attribute.
9786         (*extendsfdf2): Add avx_partial_xmm_update.
9787         (truncdfsf2): Likewise.
9788         (*float<SWI48:mode><MODEF:mode>2): Likewise.
9789         (SF/DF conversion splitters): Disabled for TARGET_AVX.
9791 2019-02-22  Aldy Hernandez  <aldyh@redhat.com>
9793         PR middle-end/85598
9794         * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
9795         analysis for pass.
9797 2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>
9799         PR target/89444
9800         * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
9801         (PTA_SKYLAKE): Add PTA_AES.
9802         (PTA_GOLDMONT): Likewise.
9804 2019-02-22  Sudakshina Das  <sudi.das@arm.com>
9806         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
9807         instruction if enabled.
9808         (aarch64_override_options): Remove reference to return address key.
9810 2019-02-22  Richard Biener  <rguenther@suse.de>
9812         PR tree-optimization/89440
9813         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
9814         not necessary assert.
9816 2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
9818         PR fortran/72741
9819         * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
9820         (oacc_replace_fn_attrib_attr): ... this new function.
9821         * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
9822         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
9824 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9826         * config/arm/arm-cpus.in (ares): Rename to...
9827         (neoverse-n1): ... This.  Add ares as alias.
9828         * config/arm/arm-tables.opt: Regenerate.
9829         * config/arm/arm-tune.md: Likewise.
9830         * doc/invoke.txt (ARM Options): Document neoverse-n1.
9832 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9834         * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
9835         * config/aarch64/aarch64-tune.md: Regenerate.
9836         * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
9838 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
9840         * config/aarch64/aarch64.c (ares_tunings): Rename to...
9841         (neoversen1_tunings): ... This.
9842         * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
9843         (neoverse-n1): New CPU.
9844         * config/aarch64/aarch64-tune.md: Regenerate.
9845         * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
9847 2019-02-22  Richard Biener  <rguenther@suse.de>
9849         PR middle-end/87609
9850         * cfghooks.h (dependence_hash): New typedef.
9851         (struct copy_bb_data): New type.
9852         (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
9853         (duplicate_block): Likewise.
9854         * cfghooks.c (duplicate_block): Pass down copy_bb_data.
9855         (copy_bbs): Create and pass down copy_bb_data.
9856         * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
9857         (rtl_duplicate_bb): Likewise.
9858         * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
9859         remap dependence info.
9861 2019-02-22  Richard Biener  <rguenther@suse.de>
9863         PR tree-optimization/87609
9864         * tree-core.h (tree_base): Document special clique values.
9865         * tree-inline.c (remap_dependence_clique): Do not use the
9866         special clique value of one.
9867         (maybe_set_dependence_info): Use clique one.
9868         (clear_dependence_clique): New callback.
9869         (compute_dependence_clique): Clear clique one from all refs
9870         before assigning it (again).
9872 2019-02-21  Martin Sebor  <msebor@redhat.com>
9874         * doc/extend.texi (__clear_cache): Correct signature.
9876 2019-02-21  Ian Lance Taylor  <iant@golang.org>
9878         PR go/89170
9879         * varasm.c (decode_addr_const): Call lookup_constant_def rather
9880         than output_constant_def.
9881         (add_constant_to_table): New static function.
9882         (output_constant_def): Call add_constant_to_table.
9883         (tree_output_constant_def): Likewise.
9885 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
9887         PR c++/89285
9888         * builtins.c (fold_builtin_arith_overflow): If first two args are
9889         INTEGER_CSTs, set intres and ovfres to constants rather than calls
9890         to ifn.
9892 2019-02-21  H.J. Lu  <hongjiu.lu@intel.com>
9894         PR target/87412
9895         * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
9896         error for -mindirect-branch/-mfunction-return with incompatible
9897         -fcf-protection.
9899 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
9901         PR bootstrap/88714
9902         * constraints.md (q): Remove.
9903         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
9904         instead of q.
9906 2019-02-21  Martin Jambor  <mjambor@suse.cz>
9908         PR hsa/89302
9909         * omp-general.c (omp_extract_for_data): Removed a duplicate call
9910         to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
9911         (omp_adjust_for_condition): ...here.  Added necessary parameters.
9912         * omp-general.h (omp_adjust_for_condition): Updated declaration.
9913         * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
9914         proper values to new parameters of omp_adjust_for_condition.
9916 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
9918         PR middle-end/89412
9919         * expr.c (expand_assignment): If result is a MEM, use change_address
9920         instead of simplify_gen_subreg.
9922 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
9923             David Malcolm  <dmalcolm@redhat.com>
9925         PR middle-end/89091
9926         * fold-const.c (decode_field_reference): Return NULL_TREE if
9927         lang_hooks.types.type_for_size returns NULL.  Check it before
9928         overwriting *exp_.  Use return NULL_TREE instead of return 0.
9930 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
9932         PR middle-end/88074
9933         PR middle-end/89415
9934         * toplev.c (do_compile): Double the emin/emax exponents to workaround
9935         buggy mpc_norm.
9937 2019-02-20  UroÅ¡ Bizjak  <ubizjak@gmail.com>
9939         PR target/89397
9940         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
9941         TARGET_SSE in addition to TARGET_SSE_MATH.
9943         (ix86_excess_precision): Ditto.
9944         (ix86_float_exceptions_rounding_supported_p): Ditto.
9945         (use_rsqrt_p): Ditto.
9946         * config/i386/sse.md (rsqrt<mode>2): Ditto.
9948 2019-02-20  David Malcolm  <dmalcolm@redhat.com>
9950         PR c/89410
9951         * diagnostic-show-locus.c (layout::calculate_line_spans): Use
9952         linenum_arith_t when determining if two adjacent line spans are
9953         close enough to merge.
9954         (diagnostic_show_locus): Use linenum_arith_t when iterating over
9955         lines within each line_span.
9957 2019-02-20 Andre Vieira  <andre.simoesdiasvieira@arm.com>
9959         PR target/86487
9960         * lra-constraints.c(uses_hard_regs_p): Fix handling of
9961         paradoxical SUBREGS.
9963 2019-02-20  Li Jia He  <helijia@linux.ibm.com>
9965         PR target/88100
9966         * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
9967         <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
9968         ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
9969         range checking it.
9971 2019-02-19  Jonathan Wakely  <jwakely@redhat.com>
9973         * config/gcn/gcn.c (print_operand): Fix typo.
9975 2019-02-19  Richard Biener  <rguenther@suse.de>
9977         PR middle-end/88074
9978         * toplev.c (do_compile): Initialize mpfr's exponent range
9979         based on available float modes.
9981 2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
9983         * rtlanal.c (get_initial_register_offset): Fall back to the estimate
9984         as long as the epilogue isn't completed.
9986 2019-02-18  Martin Sebor  <msebor@redhat.com>
9988         * doc/cpp.texi (Conditional syntax): Add __has_attribute,
9989         __has_cpp_attribute, and __has_include.
9991 2019-02-18  Martin Sebor  <msebor@redhat.com>
9993         * doc/invoke.texi (-Wreturn-type): Correct and expand.
9995 2019-02-18  Martin Sebor  <msebor@redhat.com>
9997         PR middle-end/89294
9998         * tree.c (valid_constant_size_p): Avoid assuming size is a constant
9999         expression.
10000         * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
10002 2019-02-18  Richard Biener  <rguenther@suse.de>
10004         PR tree-optimization/89296
10005         * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
10006         of no-warning flag to cases that might emit the bogus warning.
10008 2019-02-18  Jakub Jelinek  <jakub@redhat.com>
10010         PR bootstrap/88714
10011         * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
10012         "q" constraint.
10013         * config/arm/vfp.md (*movdi_vfp): Likewise.
10014         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
10015         "q" constraint for operands[0].
10017         PR target/89369
10018         * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
10019         *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
10020         pattern in a temporary buffer.
10021         (*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
10022         than 64-operands[2].
10024         PR target/89361
10025         * config/s390/s390.c (s390_indirect_branch_attrvalue,
10026         s390_indirect_branch_settings): Define unconditionally.
10027         (s390_set_current_function): Likewise, but guard the whole body except
10028         the s390_indirect_branch_settings call with
10029         #if S390_USE_TARGET_ATTRIBUTE.
10030         (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
10032         * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
10033         *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
10034         Use HOST_WIDE_INT_M1U instead of ~(0ULL).
10035         (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
10036         HOST_WIDE_INT_1U instead of 1ULL.
10037         (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
10038         to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
10039         (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
10040         z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
10041         instead of 1UL.
10042         (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
10043         instead of 1ul.
10045 2019-02-18  Martin Jambor  <mjambor@suse.cz>
10047         PR tree-optimization/89209
10048         * tree-sra.c (create_access_replacement): New optional parameter
10049         reg_tree.  Use it as a type if non-NULL and access type is not of
10050         a register type.
10051         (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
10052         to create_access_replacement.
10053         (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
10054         Check lacc is non-NULL before attempting to re-create it on the RHS.
10056 2019-02-18  Martin Liska  <mliska@suse.cz>
10058         PR ipa/89306
10059         * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
10060         by default.
10061         (symbol_table::free_edge): Recycle m_summary_id.
10062         * cgraph.h (get_summary_id): New.
10063         (symbol_table::release_symbol): Set m_summary_id to -1
10064         by default.
10065         (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
10066         * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
10067         function_summary to fast_function_summary.
10068         * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
10069         * ipa-pure-const.c (class funct_state_summary_t):
10070         Switch from function_summary to fast_function_summary.
10071         * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
10072         (class ipa_ref_opt_summary_t): Switch from function_summary
10073         to fast_function_summary.
10074         * symbol-summary.h (class function_summary_base): New class
10075         that is created from base of former function_summary.
10076         (function_summary_base::unregister_hooks): New.
10077         (class function_summary): Inherit from function_summary_base.
10078         (class call_summary_base): New class
10079         that is created from base of former call_summary.
10080         (class call_summary): Inherit from call_summary_base.
10081         (struct is_same): New.
10082         (class fast_function_summary): New summary class.
10083         (class fast_call_summary): New summary class.
10084         * vec.h (vec_safe_grow_cleared): New function.
10086 2019-02-18  Martin Liska  <mliska@suse.cz>
10088         * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
10089         (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
10090         * doc/tm.texi: Document new target hook.
10091         * doc/tm.texi.in: Likewise.
10092         * target.def: Add new target macro.
10093         * gcc.c (find_fortran_preinclude_file): Do not search multilib
10094         suffixes.
10096 2019-02-17  Alan Modra  <amodra@gmail.com>
10098         PR target/89271
10099         * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
10100         output reg on add insn.
10101         (<bd>tf_<mode> split): Likewise.  Match predicates with insn.
10103 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
10105         PR target/89372
10106         * config/i386/sse.md (ssedoublemode): Remove V4HI.
10107         (PMULHRSW): Likewise.
10108         (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
10109         TARGET_AVX2.
10110         (ssse3_pmulhrswv4hi3): New expander.
10112 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
10114         * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
10115         MMX.  Add isa attribute.
10117 2019-02-16  Jakub Jelinek  <jakub@redhat.com>
10119         PR rtl-optimization/66152
10120         * builtins.h (c_readstr): Declare.
10121         * builtins.c (c_readstr): Remove forward declaration.  Add
10122         null_terminated_p argument, if false, read all bytes from the
10123         string instead of stopping after '\0'.
10124         * expr.c (string_cst_read_str): New function.
10125         (store_expr): Use string_cst_read_str instead of
10126         builtin_strncpy_read_str.  Try to store by pieces the whole
10127         exp_len first, and only if that fails, split it up into
10128         store by pieces followed by clear_storage.  Formatting fix.
10130         * config/i386/i386.md (*movqi_internal): Remove static from
10131         buf variable.  Use output_asm_insn (buf, operands); return "";
10132         instead of return buf;.
10133         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
10134         *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
10135         *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
10137 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
10139         * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
10140         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
10141         * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
10142         (CC1_SPEC): Likewise.
10143         * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
10145 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
10147         * asan.c (asan_emit_stack_protection): Use full-sized mask to align
10148         the base address on 64-bit strict-alignment platforms.
10150 2019-02-15  H.J. Lu  <hongjiu.lu@intel.com>
10152         * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
10154 2019-02-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10156         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
10158 2019-02-15  Aaron Sawdey  <acsawdey@linux.ibm.com>
10160         PR rtl-optimization/88308
10161         * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
10162         on copied instruction.
10164 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
10166         * final.c (insn_current_reference_address): Replace test on JUMP_P
10167         with test on jump_to_label_p.
10168         * config/visium/visium-passes.def: New file.
10169         * config/visium/t-visium (PASSES_EXTRA): Define.
10170         * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
10171         * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
10172         (TRAMPOLINE_ALIGNMENT): Define.
10173         * config/visium/visium.c (visium_option_override): Do not register
10174         the machine-specific reorg pass here.
10175         (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
10176         for the GR6.
10177         (output_branch): Adjust threshold for long branch instruction.
10178         * config/visium/visium.md (cpu): Move around.
10179         (length): Adjust for the GR6.
10181 2019-02-15  Richard Biener  <rguenther@suse.de>
10182             Jakub Jelinek  <jakub@redhat.com>
10184         PR tree-optimization/89278
10185         * tree-loop-distribution.c: Include tree-eh.h.
10186         (generate_memset_builtin, generate_memcpy_builtin): Call
10187         rewrite_to_non_trapping_overflow on builtin->size before passing it
10188         to force_gimple_operand_gsi.
10190 2019-02-15  Jakub Jelinek  <jakub@redhat.com>
10192         PR other/89342
10193         * optc-save-gen.awk: Handle optimize_fast like optimize_size or
10194         optimize_debug.
10195         * opth-gen.awk: Likewise.
10197 2019-02-15  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10199         * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
10200         Enable MMX, SSE and SSE2 by default.
10201         * config/i386/i386.c (ix86_option_override_internal): Do not
10202         explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
10204 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
10206         PR rtl-optimization/89354
10207         * combine.c (make_extraction): Punt if extraction_mode is narrower
10208         than len bits.
10210 2019-02-14  Maya Rashish  <coypu@sdf.org>
10212         * config.gcc (*-*-netbsd*): Add netbsd-d.o.
10213         * config/netbsd-d.c: New file.
10214         * config/t-netbsd: Add netbsd-d.o
10216 2018-02-14  Steve Ellcey  <sellcey@marvell.com>
10218         * config/aarch64/aarch64.c (aarch64_attribute_table): Change
10219         affects_type_identity to true for aarch64_vector_pcs.
10220         (aarch64_comp_type_attributes): New function.
10221         (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
10223 2019-02-14  Tamar Christina  <tamar.christina@arm.com>
10225         PR target/88850
10226         * config/arm/iterators.md (ANY64): Add V4HF.
10228 2019-02-14  Martin Liska  <mliska@suse.cz>
10230         PR rtl-optimization/89242
10231         * dce.c (delete_unmarked_insns): Call free_dominance_info we
10232         process a transformation.
10234 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
10236         PR tree-optimization/89314
10237         * fold-const.c (fold_binary_loc): Cast strlen argument to
10238         const char * before dereferencing it.  Formatting fixes.
10240         PR middle-end/89284
10241         * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
10243 2019-02-13  Ian Lance Taylor  <iant@golang.org>
10245         * optc-save-gen.awk: Set var_opt_hash for initial optimizations
10246         and set current index for other optimizations.
10248 2019-02-13  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10250         * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
10251         nonimmediate_operand as operand 2 predicate.
10252         (vec_set<VF2_512_256:mode>_0): Ditto.
10253         (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
10254         (*vec_concatv2si): Remove alternative 2.
10255         (*vec_concatv4si_0): Use vm constraint for alternative 0.
10256         (*vec_concatv4si_0): Remove preferred_for_speed attribute.
10257         (vec_concatv2di): Split alternatives 4,5,6 to ...
10258         (*vec_concatv2di_0) ... new pattern.
10260 2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>
10262         PR target/89190
10263         * config/arm/arm.c (ldm_stm_operation_p) Set
10264         addr_reg_in_reglist correctly for first register.
10265         (load_multiple_sequence): Remove dead base check.
10266         (gen_ldm_seq): Correctly set write_back for Thumb-1.
10268 2019-02-13  Tamar Christina  <tamar.christina@arm.com>
10270         PR target/88847
10271         * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
10272         Expose as @aarch64_pred_mov.
10273         * config/aarch64/aarch64.c (aarch64_classify_address):
10274         Use expand_insn which legitimizes operands.
10276 2019-02-13  Martin Liska  <mliska@suse.cz>
10278         * builtins.h (expand_builtin_with_bounds): Remove declaration.
10279         * calls.c (struct arg_data): Remove special_slot, pointer_arg
10280         and pointer_offset fields.
10281         (initialize_argument_information): Remove usage of dead
10282         fields.
10283         * cgraph.h (struct cgraph_thunk_info): Remove
10284         add_pointer_bounds_args.
10285         * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
10286         fields.
10287         (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
10288         fields.
10289         * config/i386/i386.c (ix86_function_arg_advance): Remove
10290         unrelated comment.
10291         (struct builtin_isa): Remove leaf_p and nothrow_p fields.
10292         (def_builtin):  Remove usage of dead
10293         fields.
10294         (ix86_add_new_builtins): Likewise.
10295         * ipa-fnsummary.c (compute_fn_summary): Likewise.
10296         * ipa-icf.c (sem_function::equals_wpa): Likewise.
10297         (sem_function::init): Likewise.
10298         (sem_variable::merge): Likewise.
10299         * ipa-visibility.c (function_and_variable_visibility): Likewise.
10300         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
10301         * lto-cgraph.c (lto_output_node): Likewise.
10302         (lto_output_varpool_node): Likewise.
10303         (input_node): Likewise.
10304         (input_varpool_node): Likewise.
10305         * lto-streamer-out.c (lto_output): Likewise.
10306         * tree-inline.c (expand_call_inline): Remove usage of
10307         assign_stmts.
10308         * tree-inline.h (struct copy_body_data): Likewise.
10309         * varpool.c (varpool_node::dump): Likewise.
10311 2019-02-13  Jakub Jelinek  <jakub@redhat.com>
10313         PR middle-end/89303
10314         * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
10315         into pt->vars_contains_escaped_heap instead of setting
10316         pt->vars_contains_escaped_heap to it.
10318         PR middle-end/89281
10319         * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
10320         INTVAL (size), compare it to GET_MODE_MASK instead of
10321         1 << GET_MODE_BITSIZE.
10323         PR target/89290
10324         * config/i386/predicates.md (x86_64_immediate_operand): Allow
10325         TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
10326         -mcmodel=large.
10328 2019-02-13  Martin Liska  <mliska@suse.cz>
10330         PR lto/88858
10331         * cfgrtl.c (remove_barriers_from_footer): New function.
10332         (try_redirect_by_replacing_jump): Use it.
10333         (cfg_layout_redirect_edge_and_branch): Likewise.
10335 2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
10337         * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
10338         vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
10339         * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
10340         (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
10341         * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
10342         (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
10343         New BU_CRYPTO_2.
10344         * config/rs6000/rs6000.c (builtin_function_type)
10345         <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
10346         CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
10347         CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
10348         * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
10349         vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
10351 2019-02-12  Pat Haugen  <pthaugen@us.ibm.com>
10353         * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
10354         -maltivec. Delete -maltivec=be and -maltivec=le documentation.
10356 2019-02-12  H.J. Lu  <hongjiu.lu@intel.com>
10358         PR target/89229
10359         * config/i386/i386.md (*movoi_internal_avx): Revert revision
10360         268678 and revision 268657.
10361         (*movti_internal): Likewise.
10363 2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>
10365         PR target/89233
10366         * config/s390/s390.c (s390_decompose_address): Update comment.
10367         (s390_check_qrst_address): Reject invalid address forms after
10368         LRA.
10370 2019-02-12  Martin Liska  <mliska@suse.cz>
10372         PR lto/88876
10373         * ipa-pure-const.c (propagate_pure_const): Revert hunk as
10374         we need default values of funct_state for a function that
10375         is not optimized.
10377 2019-02-12  Eric Botcazou  <ebotcazou@adacore.com>
10379         * asan.c (asan_expand_mark_ifn): Take into account the alignment of
10380         the object to pick the size of stores on strict-alignment platforms.
10382         * config/sparc/sparc.md (*movsi_insn): Minor tweak.
10383         (*movdi_insn_sp32): Likewise.
10384         (*movdi_insn_sp64): Likewise.
10386 2019-02-12  Jan Hubicka  <hubicka@ucw.cz>
10388         PR lto/88677
10389         * cgraphunit.c (analyze_functions): Clear READONLY flag for external
10390         types that needs constructiong.
10391         * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
10393 2019-02-12  Richard Biener  <rguenther@suse.de>
10395         PR tree-optimization/89253
10396         * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
10397         duplicate the loop.
10399 2019-02-11  David Malcolm  <dmalcolm@redhat.com>
10401         PR lto/88147
10402         * input.c (selftest::test_line_offset_overflow): New selftest.
10403         (selftest::input_c_tests): Call it.
10405 2019-02-11  Martin Sebor  <msebor@redhat.com>
10407         PR tree-optimization/88771
10408         * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
10409         when -Wstringop-overflow is set.
10410         (builtin_memref::builtin_memref): Adjust excessive upper bound
10411         only when lower bound is not excessive.
10412         (maybe_diag_overlap): Detect and diagnose excessive bounds via
10413         -Wstringop-ovefflow.
10414         (maybe_diag_offset_bounds): Rename...
10415         (maybe_diag_access_bounds): ...to this.
10416         (check_bounds_or_overlap): Adjust for name change above.
10418 2019-02-11  Martin Sebor  <msebor@redhat.com>
10420         PR c++/87996
10421         * builtins.c (max_object_size): Move from here...
10422         * builtins.h (max_object_size): ...and here...
10423         * tree.c (max_object_size): ...to here...
10424         * tree.h (max_object_size): ...and here.
10426 2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>
10428         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
10429         and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
10430         for correct semantics.
10432 2019-02-11  Alan Modra  <amodra@gmail.com>
10434         * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
10435         -mlongcall and -mpltseq.
10436         (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
10437         (RS/6000 and PowerPC Options <-mpltseq>): Document.
10438         * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
10439         * config/rs6000/sysv4.opt (mpltseq): New option.
10440         * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
10441         (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
10442         support is lacking.  Don't allow -mpltseq with -mbss-plt.
10443         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
10444         -mpltseq given for ELFv1.
10445         * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
10446         Only use UNSPEC_PLTSEQ for inline PLT calls.
10447         (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments.  Only
10448         use UNSPEC_PLTSEQ for inline PLT calls.
10449         (rs6000_indirect_call_template_1, rs6000_longcall_ref),
10450         (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
10451         uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
10452         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
10453         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
10454         (pltseq_mtctr_<mode>): Likewise.
10456 2019-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
10458         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
10459         Solaris ld.
10460         * configure: Regenerate.
10462 2019-02-11  Jakub Jelinek  <jakub@redhat.com>
10464         PR bootstrap/88714
10465         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
10466         instead of r.
10468 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
10470         * function.c (assign_parm_setup_block): Use the stored
10471         size, not the passed size, when allocating stack-space,
10472         also for a parameter with alignment larger than
10473         MAX_SUPPORTED_STACK_ALIGNMENT.
10475 2019-02-11  Martin Liska  <mliska@suse.cz>
10477         PR ipa/89009
10478         * ipa-cp.c (build_toporder_info): Remove usage of a param.
10479         * ipa-inline.c (inline_small_functions): Likewise.
10480         * ipa-pure-const.c (propagate_pure_const): Likewise.
10481         (propagate_nothrow): Likewise.
10482         * ipa-reference.c (propagate): Likewise.
10483         * ipa-utils.c (struct searchc_env): Remove unused field.
10484         (searchc): Always search across AVAIL_INTERPOSABLE.
10485         (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
10486         the only called IPA pure const can properly not propagate
10487         across interposable boundary.
10488         * ipa-utils.h (ipa_reduced_postorder): Remove param.
10490 2019-02-11  Chung-Ju Wu  <jasonwucj@gmail.com>
10492         * config/nds32/nds32.md (call_internal, call_value_internal,
10493         sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
10495 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
10497         * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
10498         typo.
10500 2019-02-10  H.J. Lu  <hongjiu.lu@intel.com>
10502         * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
10503         in comments
10505 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
10507         * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
10509 2019-02-10  Jakub Jelinek  <jakub@redhat.com>
10511         PR tree-optimization/89268
10512         * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
10513         if preds is non-NULL.
10515 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
10517         PR lto/89272
10518         * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
10519         polymorphic types.
10521 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
10523         * config/nds32/nds32.md (trap): New pattern.
10525 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
10527         * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
10528         dwarf span.
10530 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
10532         * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
10533         to split POST_INC.
10535 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
10537         * ipa-visibility.c (localize_node): Also do not localize
10538         LDPR_PREVAILING_DEF_IRONLY_EXP.
10540 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
10542         PR lto/87957
10543         * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
10544         instead of type_with_linkage.
10546 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
10548         PR ipa/88755
10549         * params.def (uninlined-function-insns, uninlined-function-time,
10550         uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
10551         bound so we don't get overflows.
10553 2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
10555         * config/rs6000/rs6000-string.c (expand_compare_loop,
10556         expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
10557         memcmp/strncmp.
10559 2019-02-09  Jakub Jelinek  <jakub@redhat.com>
10561         PR middle-end/89246
10562         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10563         If !node->definition and TYPE_ARG_TYPES is non-NULL, use
10564         TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
10566 2019-02-09  Alan Modra  <amodra@gmail.com>
10568         PR target/88343
10569         * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
10570         case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
10571         setup.
10573 2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>
10575         PR middle-end/88560
10576         * lra-constraints.c (process_alt_operands): Don't increase reject
10577         for memory when offset memory is required.
10579 2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>
10581         * config/s390/vector.md: Implement vector copysign.
10583 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
10585         * expr.c (expand_constructor): Correct indentations.
10587 2019-02-08  Richard Biener  <rguenther@suse.de>
10589         PR tree-optimization/89247
10590         * tree-if-conv.c: Include tree-cfgcleanup.h.
10591         (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
10592         (tree_if_conversion): Pass through predicate vector.
10593         (pass_if_conversion::execute): Do CFG cleanup and SSA update
10594         inline, see if any if-converted loops we refrece in
10595         LOOP_VECTORIZED calls vanished and fixup.
10596         * tree-if-conv.h (tree_if_conversion): Adjust prototype.
10598 2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>
10600         * config/s390/constraints.md (jdd): New constraint.
10602 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
10604         PR target/89229
10605         * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
10606         upper 16 vector registers without TARGET_AVX512VL.
10607         (*movti_internal): Likewise.
10609 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
10611         PR rtl-optimization/89234
10612         * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
10613         is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
10614         (copy_reg_eh_region_note_backward): Likewise.
10616 2019-02-08  Richard Biener  <rguenther@suse.de>
10618         PR middle-end/89223
10619         * tree-data-ref.c (initialize_matrix_A): Fail if constant
10620         doesn't fit in HWI.
10621         (analyze_subscript_affine_affine): Handle failure from
10622         initialize_matrix_A.
10624 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
10626         * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
10627         cfun everywhere.
10629 2019-02-07  David Malcolm  <dmalcolm@redhat.com>
10631         PR tree-optimization/86637
10632         PR tree-optimization/89235
10633         * tree-vect-loop.c (optimize_mask_stores): Add an
10634         auto_purge_vect_location sentinel to ensure that vect_location is
10635         purged on exit.
10636         * tree-vectorizer.c
10637         (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
10638         (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
10639         to ensure that vect_location is purged on exit.
10640         (pass_slp_vectorize::execute): Likewise, replacing the manual
10641         reset.
10642         * tree-vectorizer.h (class auto_purge_vect_location): New class.
10644 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10646         * config/aarch64/iterators.md (max_opp): New code_attr.
10647         (USMAX): New code iterator.
10648         * config/aarch64/predicates.md (aarch64_smin): New predicate.
10649         (aarch64_smax): Likewise.
10650         * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
10651         (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
10652         MINUS (MAX MIN).
10654 2019-02-07  H.J. Lu  <hongjiu.lu@intel.com>
10656         PR target/89229
10657         * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
10658         for TARGET_AVX512VL.
10659         (*movti_internal): Set mode to TI for TARGET_AVX512VL.
10661 2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
10663         * config/s390/s390-builtin-types.def: Add new types.
10664         * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
10665         (s390_vec_xlw4): Make the memory operand into a const pointer.
10666         (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
10667         float.
10668         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
10669         a new vector type with the alignment of the scalar memory operand.
10671 2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
10672             Jakub Jelinek  <jakub@redhat.com>
10674         PR bootstrap/88714
10675         * config/arm/arm-protos.h (valid_operands_ldrd_strd,
10676         arm_count_ldrdstrd_insns): New declarations.
10677         * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
10678         MINUS.
10679         (valid_operands_ldrd_strd): New function.
10680         (arm_count_ldrdstrd_insns): New function.
10681         * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
10682         sets instead of single DImode set and define new insns to match this.
10684 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
10686         * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
10687         Make it a C initializer.
10689 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
10691         PR/target 88850
10692         * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
10694 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10696         * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
10697         Use neon_dot<q> for type.
10698         (neon_<sup>dot_lane<vsi2qi>): Likewise.
10700 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
10702         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
10703         Use neon_dot<q> for type.
10704         (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
10705         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
10707 2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>
10709         PR rtl-optimization/89225
10710         * lra-constaints.c (simplify_operand_subreg): Add subreg mode
10711         sizes check.
10713 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
10715         * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
10716         after restoring registers saved to allocate the frame on Windows.
10718 2019-02-06  Richard Biener  <rguenther@suse.de>
10720         PR tree-optimization/89182
10721         * graphite.h (cached_scalar_evolution_in_region): Declare.
10722         * graphite.c (struct seir_cache_key): New.
10723         (struct sese_scev_hash): Likewise.
10724         (seir_cache): New global.
10725         (cached_scalar_evolution_in_region): New function.
10726         (graphite_transform_loops): Allocate and release seir_cache.
10727         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
10728         cached_scalar_evolution_in_region.
10729         * graphite-scop-detection.c (scop_detection::can_represent_loop):
10730         Simplify.
10731         (scop_detection::graphite_can_represent_expr: Use
10732         cached_scalar_evolution_in_region.
10733         (scop_detection::stmt_simple_for_scop_p): Likewise.
10734         (find_params_in_bb): Likewise.
10735         (gather_bbs::before_dom_children): Likewise.
10736         * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
10737         (add_loop_constraints): Likewise.
10739 2019-02-06  Jakub Jelinek  <jakub@redhat.com>
10741         PR middle-end/89210
10742         * fold-const-call.c (fold_const_vec_convert): Pass true as last
10743         operand to new_unary_operation only if both element types are integral
10744         and it isn't a widening conversion.  Return NULL_TREE if
10745         new_unary_operation failed.
10747 2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
10749         PR target/88856
10750         * config/s390/s390.md: Remove load and test FP splitter.
10752 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
10754         PR target/89112
10755         * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
10756         expand_compare_loop, expand_block_compare_gpr,
10757         expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
10758         REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
10759         #include "profile-count.h" and "predict.h" for types and functions
10760         needed to work with REG_BR_PROB notes.
10762 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
10764         PR target/89112
10765         * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
10766         for the long branch case.
10768 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
10770         PR target/89188
10771         * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
10772         can throw, non-call exceptions are enabled and we can't delete
10773         dead exceptions or alter cfg.  Set must_clean if
10774         delete_insn_and_edges returns true, don't set it blindly for calls.
10775         Assert that delete_unreachable_blocks is called only if can_alter_cfg.
10777         PR rtl-optimization/89195
10778         * combine.c (make_extraction): For MEMs, don't extract bytes outside
10779         of the original MEM.
10781 2019-02-05  Martin Liska  <mliska@suse.cz>
10783         PR gcov-profile/89000
10784         * gcov.c (function_summary): Remove argument.
10785         (file_summary): New function.
10786         (print_usage): Replace tabs with spaces.
10787         (generate_results): Use new function file_summary.
10789 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
10791         PR target/89186
10792         * optabs.c (prepare_cmp_insn): Pass x and y to
10793         emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
10795 2019-02-05  Richard Biener  <rguenther@suse.de>
10797         PR middle-end/89150
10798         * bitmap.h (struct bitmap_obstack): Do not mark GTY.
10799         (struct bitmap_element): Drop chain_prev so we properly recurse on
10800         the prev member, supporting tree views.
10801         (struct bitmap_head): GTY skip the obstack member.
10803 2019-02-04  Alexander Monakov  <amonakov@ispras.ru>
10805         PR c/88698
10806         * doc/extend.texi (Vector Extensions): Add an example of using vector
10807         types together with x86 intrinsics.
10809 2019-02-04  Alan Modra  <amodra@gmail.com>
10811         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
10812         str[] size to 160, and comment.
10814 2019-02-04  Alan Modra  <amodra@gmail.com>
10816         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
10817         (rs6000_pltseq_template): Guard output of TLS markers with
10818         TARGET_TLS_MARKERS.
10819         (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
10820         (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
10821         to use inline PLT sequences.
10822         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
10823         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
10824         (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
10826 2019-02-04  Martin Liska  <mliska@suse.cz>
10828         PR ipa/88985
10829         * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
10830         out when ipa_fn_summaries does not contain entry for callee.
10832 2019-02-04  Eric Botcazou  <ebotcazou@adacore.com>
10834         * config/sparc/sparc.h: Remove superfluous blank lines.
10835         * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
10836         (got_register_rtx): ...this.
10837         (sparc_got): Adjust to above renaming.
10838         (sparc_tls_got): Likewise.
10839         (sparc_delegitimize_address): Likewise.
10840         (sparc_output_mi_thunk): Likewise.
10841         (sparc_init_pic_reg): Likewise.
10842         (save_local_or_in_reg_p): Fix test on the GOT register.
10843         (USE_HIDDEN_LINKONCE): Move around.
10844         (get_pc_thunk_name): Likewise.
10845         (gen_load_pcrel_sym): Likewise.
10846         (load_got_register): Likewise.
10848 2019-02-04  Kito Cheng  <kito.cheng@gmail.com>
10850         * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
10851         of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
10853 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
10855         * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
10856         into consideration.
10858 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
10860         * config.gcc (with_nds32_lib, glibc):
10861         Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
10862         * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
10863         (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
10865 2019-02-03  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10867         PR target/89071
10868         * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
10869         Do not prefer (v,v) alternative for non-AVX targets and (m,v)
10870         alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
10871         (*rcpsf2_sse): Ditto.
10872         (*rsqrtsf2_sse): Ditto.
10873         (sse4_1_round<mode<2): Ditto.
10875 2019-02-03  Richard Biener  <rguenther@suse.de>
10877         PR debug/87295
10878         * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
10879         orig.
10881 2019-02-02  Jakub Jelinek  <jakub@redhat.com>
10883         PR middle-end/87887
10884         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
10885         Punt with warning on aggregate return or argument types.  Ignore
10886         type/mode checking for uniform arguments.
10888 2019-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
10890         * combine.c (try_combine): Do not print "Can't combine" messages unless
10891         printing failed combination attempts.
10893 2019-02-01  Martin Jambor  <mjambor@suse.cz>
10895         PR hsa/87863
10896         * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
10897         segment and global segment variables before making them static.
10899 2019-02-01  Martin Jambor  <mjambor@suse.cz>
10901         * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
10902         missed optimization dump with dump_enabled_p.
10904 2019-02-01  Richard Biener  <rguenther@suse.de>
10906         PR middle-end/88597
10907         * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
10908         the instantiate cache.
10909         (instantiate_scev_binary): Elide second operand procesing
10910         if equal to the first.
10911         * tree-chrec.c (chrec_contains_symbols): Add visited set.
10912         (chrec_contains_undetermined): Likewise.
10913         (tree_contains_chrecs): Likewise.
10915 2019-02-01  Jan Hubicka  <hubicka@ucw.cz>
10917         * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
10919 2019-02-01  Jakub Jelinek  <jakub@redhat.com>
10921         PR tree-optimization/89143
10922         * wide-int-range.h (wide_int_range_absu): Declare.
10923         * wide-int-range.cc (wide_int_range_absu): New function.
10924         * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
10926         PR tree-optimization/88107
10927         * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
10928         instead of assertion that eh_region_outermost is non-NULL, if it
10929         is NULL, set *ALL to true and return NULL.
10930         (move_sese_region_to_fn): Adjust caller, if all is set, call
10931         duplicate_eh_regions with NULL region.
10933 2019-02-01  Richard Biener  <rguenth@suse.de>
10935         PR rtl-optimization/88593
10936         * mode-switching.c (optimize_mode_switching): Free dominators before
10937         calling cleanup_cfg.
10939 2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
10941         PR tree-optimization/88932
10942         * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
10944 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
10946         PR middle-end/89137
10947         * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
10948         bogus clang warning.
10950 2019-01-31  UroÅ¡ Bizjak  <ubizjak@gmail.com>
10952         PR target/89071
10953         * config/i386/i386.md (*extendsfdf2): Split out reg->reg
10954         alternative to avoid partial SSE register stall for TARGET_AVX.
10955         (truncdfsf2): Ditto.
10956         (sse4_1_round<mode>2): Ditto.
10958 2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
10960         PR tree-optimization/89008
10961         * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
10962         process anything of the form X * 0.
10964 2019-01-31  Richard Biener  <rguenther@suse.de>
10966         PR tree-optimization/89135
10967         * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
10968         with abnormal preds.
10970 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
10972         PR sanitizer/89124
10973         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
10974         always_inline callees into no_sanitize_address callers.
10976 2019-01-31  Richard Biener  <rguenther@suse.de>
10978         PR rtl-optimization/89115
10979         * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
10981 2019-01-30  Martin Sebor  <msebor@redhat.com>
10983         PR other/89106
10984         * doc/extend.texi (cast to a union): Correct and expand.
10986 2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>
10988         PR rtl-optimization/87246
10989         * lra-constraints.c (simplify_operand_subreg): Reload memory
10990         in subreg if the address became invalid.
10992 2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
10994         PR target/87064
10995         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
10996         Disable for little-endian.
10998 2019-01-30  Richard Biener  <rguenther@suse.de>
11000         PR rtl-optimization/89115
11001         * opts.c (default_options_optimization): Reduce
11002         PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
11003         Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
11004         to the default.
11006 2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
11008         * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
11009         Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
11010         type of vector element when vec_extract is implemented by direct
11011         move.
11013 2019-01-30  Thomas Schwinge  <thomas@codesourcery.com>
11015         * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
11017 2019-01-30  Richard Biener  <rguenther@suse.de>
11019         PR tree-optimization/89111
11020         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
11021         canonicalization to appropriately sized access types.
11023 2019-01-30  Jakub Jelinek  <jakub@redhat.com>
11025         PR c++/89105
11026         * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
11027         for arguments to functions that are TU-local and shouldn't be
11028         referenced by assembly.
11030 2019-01-30  Ulrich Drepper  <drepper@redhat.com>
11032         * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
11033         after '='.
11035 2019-01-29  Martin Sebor  <msebor@redhat.com>
11037         PR c/88956
11038         * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
11040 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
11042         PR c++/66676
11043         PR ipa/89104
11044         * omp-simd-clone.c (simd_clone_clauses_extract)
11045         <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
11046         OMP_CLAUSE_ALIGNED_ALIGNMENT.
11048 2019-01-29  Vineet Gupta  <vgupta@synopsys.com>
11050         * config.gcc: Force .init_array for ARC.
11052 2019-01-29  Richard Biener  <rguenther@suse.de>
11054         PR debug/87295
11055         * dwarf2out.c (collect_skeleton_dies): New helper.
11056         (copy_decls_for_unworthy_types): Call it.
11057         (build_abbrev_table): Assert we do not try to replace
11058         DW_AT_signature refs with local refs.
11060 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
11062         PR middle-end/89002
11063         * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
11064         for lastprivate/linear IV, push gimplify context around gimplify_assign
11065         and, if it needed any temporaries, pop it into a gimple bind around the
11066         sequence.
11068 2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11070         * common.opt (-Wattribute-alias): Remove "no-" from name.
11071         Make -Wattribute-alias command line option and
11072         #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
11074 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
11076         PR target/89073
11077         * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
11078         -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
11079         x86 ISA options.
11080         (bmi2): Add missing @opindex.
11081         * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
11082         options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
11083         avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
11084         avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
11085         avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
11086         cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
11087         fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
11088         pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
11089         sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
11090         xsavec, xsaveopt and xsaves options.
11092 2019-01-28  Richard Biener  <rguenther@suse.de>
11094         PR debug/89076
11095         * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
11096         support removal.
11098 2019-01-28  Richard Biener  <rguenther@suse.de>
11100         PR tree-optimization/88739
11101         * tree-cfg.c (verify_types_in_gimple_reference): Verify
11102         BIT_FIELD_REFs only are applied to mode-precision operands
11103         when they are integral.
11104         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
11105         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
11106         BIT_FIELD_REFs of non-mode-precision integral operands.
11108 2019-01-27  Jakub Jelinek  <jakub@redhat.com>
11110         PR target/87214
11111         * config/i386/sse.md
11112         (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
11113         avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
11114         first constants in pairs are multiples of 2.  Formatting fixes.
11115         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
11116         avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
11117         first constants in each quadruple are multiples of 4.  Formatting fixes.
11119 2019-01-26  Martin Jambor  <mjambor@suse.cz>
11121         PR ipa/88933
11122         * tree-inline.c: Include tree-cfgcleanup.h.
11123         (delete_unreachable_blocks_update_callgraph): Move...
11124         * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
11125         ...here, make externally visible, make second argument bool, adjust
11126         all callers.
11127         * tree-cfgcleanup.c: Include cgraph.h.
11128         * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
11129         Declare.
11130         * ipa-prop.c: Include tree-cfgcleanup.h.
11131         (ipcp_transform_function): Call
11132         delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
11134 2019-01-25  Vladimir Makarov  <vmakarov@redhat.com>
11136         PR rtl-optimization/88846
11137         * ira.c (process_set_for_memref_referenced_p): New.
11138         (memref_referenced_p): Add new param.  Use
11139         process_set_for_memref_referenced_p.  Add new switch cases.
11140         (memref_used_between_p): Pass new arg to memref_referenced_p.
11142 2019-01-25  Richard Earnshaw  <rearnsha@arm.com>
11144         PR target/88469
11145         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
11146         argument ABI_BREAK.  Set to true if the calculated alignment has
11147         changed in gcc-9.  Check bit-fields for their base type alignment.
11148         (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
11149         (aarch64_function_arg_boundary): Likewise.
11150         (aarch64_gimplify_va_arg_expr): Likewise.
11152 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
11154         PR middle-end/89037
11155         * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
11156         instead of accessing TREE_INT_CST_ELT directly.
11158 2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>
11160         * doc/sourcebuild.texi (Environment attributes): Add fenv and
11161         fenv_exceptions description.
11163 2019-01-25  Wilco Dijkstra  <wdijkstr@arm.com>
11165         PR rtl-optimization/87763
11166         * config/aarch64/aarch64.c (aarch64_select_cc_mode):
11167         Allow SUBREG when matching CC_NZmode compare.
11169 2019-01-25  Richard Biener  <rguenther@suse.de>
11171         PR tree-optimization/89049
11172         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
11173         Look at the pattern stmt to determine if the stmt is vectorized.
11175 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
11177         * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
11178         (pred_mov<mode>): Handle all-register forms using both a new
11179         alternative and a split.
11181 2019-01-25  Richard Biener  <rguenther@suse.de>
11183         PR tree-optimization/86865
11184         * graphite-scop-detection.c (scop_detection::can_represent_loop):
11185         Reject non-do-while loops.
11187 2019-01-24  Peter Bergner  <bergner@linux.ibm.com>
11189         * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
11190         * config/rs6000/constraints.md (Q constraint): Use REG_P.
11191         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
11192         * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
11193         SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
11194         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11195         * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
11196         vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
11197         vlogical_operand, gpc_reg_operand, int_reg_operand,
11198         int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
11199         (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
11200         cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
11201         (save_world_operation, restore_world_operation, lmw_operation,
11202         stmw_operation): Use MEM_P and REG_P.
11203         (tie_operand): Use MEM_P.
11204         (vrsave_operation, crsave_operation): Use REG_P.
11205         (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
11206         (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
11207         (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
11208         (call_operand): Use HARD_REGISTER_P.
11209         (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
11210         Use CONST_INT_P.
11211         (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
11212         * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
11213         quad_aligned_load_p, replace_swapped_aligned_store,
11214         recombine_lvx_pattern, replace_swapped_aligned_load,
11215         recombine_stvx_pattern): Use MEM_P.
11216         (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
11217         Use MEM_P and SYMBOL_REF_P.
11218         (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
11219         (insn_is_swappable_p): Use REG_P and MEM_P.
11220         (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
11221         * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
11222         Use CONST_INT_P.
11223         * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
11224         Use CONST_DOUBLE_P.
11225         (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
11226         CONST_WIDE_INT_P.
11227         (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
11228         CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
11229         (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
11230         HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
11231         reg_or_subregno:
11232         (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
11233         (easy_altivec_constant, rs6000_legitimate_offset_address_p,
11234         rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
11235         rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
11236         rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
11237         rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
11238         rs6000_split_logical_di): Use CONST_INT_P.
11239         (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
11240         REG_P and SYMBOL_REF_P.
11241         (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
11242         (print_operand): Use CONST_INT_P, MEM_P and REG_P.
11243         (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
11244         mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
11245         (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
11246         (small_data_operand, print_operand_address): Use CONST_INT_P and
11247         SYMBOL_REF_P.
11248         (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
11249         (rs6000_init_hard_regno_mode_ok, direct_move_p):
11250         Use HARD_REGISTER_NUM_P.
11251         (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
11252         (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
11253         SUBREG_P and SYMBOL_REF_P.
11254         (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
11255         and HARD_REGISTER_NUM_P.
11256         (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
11257         reg_or_subregno.
11258         (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
11259         (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
11260         MEM_P and REG_P.
11261         (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
11262         registers_ok_for_quad_peep, rs6000_output_function_epilogue,
11263         find_addr_reg): Use REG_P.
11264         (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
11265         (rs6000_emit_le_vsx_move): Use SUBREG_P.
11266         (offsettable_ok_by_alignment, constant_pool_expr_p,
11267         legitimate_small_data_p, rs6000_output_dwarf_dtprel,
11268         rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
11269         rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
11270         rs6000_assemble_integer, create_TOC_reference,
11271         rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
11272         rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
11273         (rs6000_split_vec_extract_var): Use reg_or_subregno.
11274         * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
11275         CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
11276         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11277         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
11278         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
11279         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
11280         (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
11281         (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
11282         * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
11283         and cbranch<mode>4): Use CONST_INT_P.
11284         (multiple define_splits): Use REG_P and SUBREG_P.
11285         (define_expands call, call_value): Use MEM_P.
11286         (define_expands sibcall, sibcall_value): Use CONST_INT_P and  MEM_P.
11287         (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
11288         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
11289         *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
11290         and HARD_REGISTER_NUM_P.
11291         (multiple define_splits): Use HARD_REGISTER_NUM_P.
11293 2019-01-24  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11295         PR rtl-optimization/88948
11296         * rtl.h (prepare_copy_insn): New prototype.
11297         * gcse.c (prepare_copy_insn): New function, split out from
11298         process_insert_insn.
11299         (process_insert_insn): Use prepare_copy_insn.
11300         * store-motion.c (replace_store_insn): Use prepare_copy_insn
11301         instead of gen_move_insn.
11303 2019-01-24  Jakub Jelinek  <jakub@redhat.com>
11305         PR debug/89006
11306         * config/i386/i386.c (ix86_pic_register_p): Return true for
11307         UNSPEC_SET_GOT too.
11309         PR tree-optimization/88964
11310         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
11311         punt if HONOR_SNANS (chrec).
11313         PR middle-end/89015
11314         * tree-nested.c (convert_nonlocal_reference_stmt,
11315         convert_local_reference_stmt, convert_tramp_reference_stmt,
11316         convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
11317         gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
11318         or GIMPLE_OMP_TASK.
11320         PR tree-optimization/89027
11321         * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
11322         for "omp simd array" variables.
11324 2019-01-24  Richard Earnshaw  <rearnsha@arm.com>
11326         PR target/88469
11327         * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
11328         force the alignment of m_val.
11330 2019-01-24  Richard Biener  <rguenther@suse.de>
11332         PR lto/87187
11333         * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
11334         When in "legacy" debug mode make sure to reset self-origins.
11336 2019-01-24  Martin Liska  <mliska@suse.cz>
11338         PR gcov-profile/88994
11339         * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
11340         result will be always smaller or equal to the original.
11341         * gcov.c (mangle_name): Fix else branch where we should
11342         also copy to PTR and shift the pointer.
11344 2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
11346         * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
11347         * vr-values.c (find_case_label_ranges): Fix a comment typo.
11349 2019-01-23  Xuepeng Guo  <xuepeng.guo@intel.com>
11351         * common/config/i386/i386-common.c
11352         (OPTION_MASK_ISA_ENQCMD_SET,
11353         OPTION_MASK_ISA_ENQCMD_UNSET): New macros.
11354         (ix86_handle_option): Handle -menqcmd.
11355         * config.gcc (enqcmdintrin.h): New header file.
11356         * config/i386/cpuid.h (bit_ENQCMD): New bit.
11357         * config/i386/driver-i386.c (host_detect_local_cpu): Handle
11358         -menqcmd.
11359         * config/i386/i386-builtin-types.def ((INT, PVOID, PCVOID)): New
11360         function type.
11361         * config/i386/i386-builtin.def (__builtin_ia32_enqcmd,
11362         __builtin_ia32_enqcmds): New builtins.
11363         * config/i386/i386-c.c (__ENQCMD__): New macro.
11364         * config/i386/i386-option.c (ix86_target_string): Add
11365         -menqcmd.
11366         (ix86_valid_target_attribute_inner_p): Likewise.
11367         * config/i386/i386-expand.c
11368         (ix86_expand_builtin): Expand IX86_BUILTIN_ENQCMD and
11369         IX86_BUILTIN_ENQCMDS.
11370         * config/i386/i386.h (TARGET_ENQCMD): New.
11371         * config/i386/i386.md (UNSPECV_ENQCMD, UNSPECV_ENQCMDS): New.
11372         (@enqcmd<enqcmd_sfx>_<mode>): New insn pattern.
11373         (movdir64b_<mode>): Parameterize to enable share expansion code
11374         with ENQCMD in function ix86_expand_builtin.
11375         * config/i386/i386.opt: Add -menqcmd.
11376         * config/i386/immintrin.h: Include enqcmdintrin.h.
11377         * config/i386/enqcmdintrin.h: New intrinsic file.
11378         * doc/invoke.texi: Add -menqcmd.
11380 2019-01-23  Bin Cheng  <bin.cheng@arm.com>
11381             Steve Ellcey <sellcey@marvell.com>
11383         PR target/85711
11384         * recog.c (address_operand): Return false on wrong mode for address.
11385         (constrain_operands): Check for mode with 'p' constraint.
11387 2019-01-23  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11389         PR target/88998
11390         * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
11391         Disparage MMX alternative.
11392         (sse2_cvtpd2pi): Ditto.
11393         (sse2_cvttpd2pi): Ditto.
11395 2019-01-23  David Malcolm  <dmalcolm@redhat.com>
11397         PR driver/89014
11398         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
11399         use-after-free of the result of
11400         aarch64_get_extension_string_for_isa_flags.
11402 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
11404         PR c/44715
11405         * doc/extend.texi: Document break and continue behavior in
11406         statement expressions.
11408 2019-01-23  Richard Biener  <rguenther@suse.de>
11410         PR tree-optimization/89008
11411         * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
11412         not leave another stray operand.
11414 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
11416         * BASE-VER: Bump to 9.0.1.
11418 2019-01-23  Eric Botcazou  <ebotcazou@adacore.com>
11420         * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
11421         thunk that returns by reference, use the type of the return object
11422         of the thunk instead of that of the alias to build the dereference.
11424 2019-01-23  Vineet Gupta  <vgupta@synopsys.com>
11426         * config/arc/atomic.md: Add operand to DMB instruction.
11428 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
11430         PR tree-optimization/88964
11431         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
11432         build_zero_cst instead of build_int_cst.  Return false for loop
11433         invariants which honor signed zeros.
11435 2019-01-22  Segher Boessenkool  <segher@kernel.crashing.org>
11437         * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
11439 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
11441         PR target/88965
11442         * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
11443         (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
11444         is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
11446         PR middle-end/88968
11447         * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
11448         non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
11450         PR target/87064
11451         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
11452         Disable for little endian.
11454 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
11456         PR target/88469
11457         * config/arm/arm.c (arm_needs_double_word_align): Check
11458         DECL_BIT_FIELD_TYPE.
11460 2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
11461             H.J. Lu  <hongjiu.lu@intel.com>
11463         PR target/88909
11464         * config/i386/i386-builtin.def: Add mask2 to all builtin
11465         initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
11466         SPECIAL_ARGS.
11467         * config/i386/i386.c (BDESC): Add mask2 to the definition.
11468         (BDESC_FIRST): Likewise.
11469         (define_builtin): Add an argument for mask2.  Updated to handle
11470         both ix86_isa_flags and ix86_isa_flags2.
11471         (define_builtin_const): Likewise.
11472         (define_builtin_pure): Likewise.
11473         (define_builtin2): Deleted.
11474         (define_builtin_const2): Likewise.
11475         (builtin_description): Add a member, mask2.
11476         (bdesc_*): Add mask2 to builtin initializations.
11477         (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
11478         def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
11479         support.
11480         (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
11482 2019-01-22  H.J. Lu  <hongjiu.lu@intel.com>
11484         PR target/88954
11485         * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
11486         noplt attribute.
11488 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
11490         PR target/88469
11491         * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
11492         alignment is dominated by a bitfield with 64-bit aligned base type.
11493         (arm_function_arg): Emit a warning if the alignment has changed since
11494         earlier GCC releases.
11495         (arm_function_arg_boundary): Likewise.
11496         (arm_setup_incoming_varargs): Likewise.
11498 2019-01-22  Richard Biener  <rguenther@suse.de>
11500         PR tree-optimization/88862
11501         * graphite-scop-detection.c
11502         (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
11504 2019-01-22  Andrew Stubbs  <ams@codesourcery.com>
11506         * doc/extend.tex (AMD GCN Function Attributes): New section.
11507         * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
11508         * doc/invoke.texi (AMD GCN Options): New section.
11509         * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
11511 2019-01-22  Eric Botcazou  <ebotcazou@adacore.com>
11513         * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
11514         register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
11516 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
11518         PR tree-optimization/88044
11519         * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
11520         is false in the first iteration, but !every_iteration, return false
11521         instead of true with niter->niter zero.
11523         PR rtl-optimization/88904
11524         * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
11525         any nonequal registers before processing BB_END (b).
11527         PR target/88905
11528         * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
11529         GET_MODE (op0).
11530         (expand_binop_directly, expand_doubleword_clz,
11531         expand_doubleword_popcount, expand_ctz, expand_ffs,
11532         expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
11534         PR rtl-optimization/49429
11535         PR target/49454
11536         PR rtl-optimization/86334
11537         PR target/88906
11538         * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
11539         addressable from here...
11540         (emit_block_op_via_libcall): ... to here.
11542 2019-01-22  Richard Biener  <rguenther@suse.de>
11544         * tree-vect-loop.c (vect_analyze_loop_operations): Use
11545         auto_vec for cost vector to fix memleak.
11546         (vectorize_fold_left_reduction): Properly gather SLP defs.
11547         (vectorizable_comparison): Do not swap operands to properly
11548         gather SLP defs.
11550 2019-01-22  Alan Modra  <amodra@gmail.com>
11552         PR target/88614
11553         * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
11554         stays a reg.  Allow a const_int.
11555         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
11556         * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
11557         (IS_NOMARK_TLSGETADDR): Define.
11558         * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
11559         (rs6000_output_tlsargs): New function.
11560         (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
11561         __tls_get_addr call takes an arg.
11562         (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
11563         * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
11564         delete split..
11565         (call_value_nonlocal_sysv): ..or here, delete split.
11566         (tls_gdld_nomark): Delete.
11567         (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
11568         predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
11569         (call_value_nonlocal_sysv): Likewise.
11570         (call_value_nonlocal_sysv_secure): Likewise.
11571         (call_value_nonlocal_aix): Likewise.
11572         (call_value_indirect_aix): Likewise.
11573         (call_value_indirect_elfv2): Likewise.
11574         (call_value_local32, call_value_local64): Disable for no-mark tls.
11575         (call_value_local_aix): Likewise.
11577 2019-01-21  UroÅ¡ Bizjak  <ubizjak@gmail.com>
11579         PR target/88938
11580         * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
11581         case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
11583 2019-01-21  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
11585         * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
11586         string contents as hash_map keys.
11588 2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
11590         PR c/88928
11591         * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
11592         for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
11593         instead of TYPE_ALIGN.
11594         (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
11595         Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
11596         pointer from TYPE_STUB_DECL.
11598 2019-01-21  Richard Biener  <rguenther@suse.de>
11600         PR tree-optimization/88934
11601         * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
11602         at the possibly non-constant operand.
11603         (vect_get_constant_vectors): Adjust.
11605 2019-01-21  H.J. Lu  <hongjiu.lu@intel.com>
11607         PR target/71659
11608         * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
11609         * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
11610         instead of _X86INTRIN_H_INCLUDED.
11611         * onfig/i386/clwbintrin.h: Likewise.
11612         * config/i386/pkuintrin.h: Likewise.
11613         * config/i386/prfchwintrin.h: Likewise.
11614         * config/i386/rdseedintrin.h: Likewise.
11615         * config/i386/wbnoinvdintrin.h: Likewise.
11616         * config/i386/xsavecintrin.h: Likewise.
11617         * config/i386/xsavesintrin.h: Likewise.
11618         * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
11619         * config/i386/xsaveintrin.h: Likewise.
11620         * config/i386/xsaveoptintrin.h: Likewise.
11621         * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
11622         <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
11623         <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
11624         <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
11625         <wbnoinvdintrin.h> and <pkuintrin.h> to ...
11626         * config/i386/immintrin.h: Here.
11628 2019-01-20  Martin Jambor  <mjambor@suse.cz>
11630         PR ipa/87615
11631         * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
11632         with aa_walk_budget.
11633         * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
11634         aa_walk_budget_p parameter.
11635         * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
11636         walk.  Updated all callers.
11637         (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
11638         (eliminated_by_inlining_prob): New parameter fbi, pass it on to
11639         unmodified_parm.
11640         (will_be_nonconstant_expr_predicate): New parameter fbi, removed
11641         parameter info.  Extract info from fbi.  Pass fbi to recursive calls
11642         and to unmodified_parm.
11643         (phi_result_unknown_predicate): New parameter fbi, removed parameter
11644         info, updated call to will_be_nonconstant_expr_predicate.
11645         (param_change_prob): New parameter fbi, limit AA walking.
11646         (analyze_function_body): Initialize aa_walk_budget in fbi.  Update
11647         calls to various above functions.
11648         * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
11649         parameter.  Use it to limit AA walking.
11650         * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
11651         fbi, limit AA walk.
11652         (detect_type_change): New parameter fbi, pass it on to
11653         detect_type_change_from_memory_writes.
11654         (detect_type_change_ssa): Likewise.
11655         (aa_overwalked): Removed.
11656         (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
11657         accordingly, adjust to the neew AA limiting scheme.
11658         (parm_ref_data_preserved_p): Likewise.
11659         (ipa_compute_jump_functions_for_edge): Adjust call to
11660         get_dynamic_type.
11661         (ipa_analyze_call_uses): Likewise.
11662         (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
11663         (ipa_analyze_node): Initialize aa_walk_budget.
11664         (ipcp_transform_function): Likewise.
11665         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
11666         to get_dynamic_type.
11668 2019-01-19  Jakub Jelinek  <jakub@redhat.com>
11670         * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
11671         outside of #if CHECKING_P code.
11673 2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>
11675         * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
11676         New function, split out from...
11677         (loop_versioning::analyze_stride): ...here.
11678         (loop_versioning::find_per_loop_multiplication): Use gassign.
11679         (loop_versioning::analyze_term_using_scevs): Return a success code.
11680         (loop_versioning::analyze_arbitrary_term): New function.
11681         (loop_versioning::analyze_address_fragment): Use
11682         analyze_arbitrary_term if all else fails.
11684 2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
11686         PR target/88892
11687         * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
11688         operands.
11690 2019-01-18  Richard Biener  <rguenther@suse.de>
11692         PR tree-optimization/88903
11693         * tree-vect-stmts.c (vectorizable_shift): Verify we see all
11694         scalar stmts a SLP shift amount is composed of when detecting
11695         shifts by scalars.
11697 2019-01-18  Richard Earnshaw  <rearnsha@arm.com>
11699         PR target/88799
11700         * config/arm/arm-cpus.in (mp): New feature.
11701         (sec): New feature.
11702         (fgroup ARMv7ve): Add mp and sec features.
11703         (arch armv7-a): Add options to allow mp and sec extensions.
11704         (cpu generic-armv7-a): Add options to allow mp and sec extensions.
11705         (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
11706         extenstions to the base architecture.
11707         (cpu cortex-a8): Add sec extension to the base architecture.
11708         (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
11709         * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
11710         variants down to the base v7-a varaint.
11711         * config/arm/t-multilib (v7_a_arch_variants): New variable.
11712         * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
11713         of permitted extensions for -march=armv7-a and for
11714         -mcpu=generic-armv7-a.
11716 2019-01-18  Martin Liska  <mliska@suse.cz>
11718         * params.def: Fix comment.
11719         * tree-profile.c (gimple_init_gcov_profiler): Bump function
11720         name.
11721         (gimple_gen_ic_func_profiler): Likewise.
11723 2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
11725         * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
11726         * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
11727         and put in error checks for stack protector guard options.
11728         (aarch64_stack_protect_guard): New.
11729         (TARGET_STACK_PROTECT_GUARD): Define.
11730         * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
11731         (reg_stack_protect_address<mode>): New.
11732         (stack_protect_set): Adjust for SSP_GLOBAL.
11733         (stack_protect_test): Likewise.
11734         * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
11735         (-mstack-protector-guard): Likewise.
11736         (-mstack-protector-guard-offset): Likewise.
11738 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
11740         PR tree-optimization/86214
11741         * tree-inline.h (struct copy_body_data): Add
11742         add_clobbers_to_eh_landing_pads member.
11743         * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
11744         (copy_edges_for_bb): Call it if EH edge destination is <
11745         id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
11746         (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
11747         if flag_stack_reuse != SR_NONE and clear it afterwards.
11749 2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>
11751         PR target/85596
11752         * doc/install.texi (with-multilib-list): Document for aarch64.
11754 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
11756         PR target/88734
11757         * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
11758         (("..."))) with ("...").
11760 2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
11762         * doc/extend.texi (Built-in Functions for Memory Model Aware
11763         Atomic Operations): Document atomic fetch and nand.
11765 2019-01-18  Martin Liska  <mliska@suse.cz>
11766             Richard Biener  <rguenther@suse.de>
11768         PR middle-end/88587
11769         * cgraph.h (create_version_clone_with_body): Add new argument
11770         with attributes.
11771         * cgraphclones.c (cgraph_node::create_version_clone): Add
11772         DECL_ATTRIBUTES to a newly created decl.  And call
11773         valid_attribute_p so that proper cl_target_optimization_node
11774         is set for the newly created declaration.
11775         * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
11776         for declaration.
11777         (expand_target_clones): Do not call valid_attribute_p, it must
11778         be already done.
11779         * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
11780         vector types.
11782 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
11784         PR target/88734
11785         * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
11786         (("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
11787         arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
11789 2019-01-17  Martin Sebor  <msebor@redhat.com>
11791         PR middle-end/88273
11792         * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
11793         Handle anti-ranges the same as no range at all.
11795 2018-01-17  Steve Ellcey  <sellcey@cavium.com>
11797         * config/aarch64/aarch64.c (cgraph.h): New include.
11798         (intl.h): New include.
11799         (supported_simd_type): New function.
11800         (currently_supported_simd_type): Ditto.
11801         (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
11802         (aarch64_simd_clone_adjust): Ditto.
11803         (aarch64_simd_clone_usable): Ditto.
11804         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
11805         (TARGET_SIMD_CLONE_ADJUST): Ditto.
11806         (TARGET_SIMD_CLONE_USABLE): Ditto.
11807         * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
11808         * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
11809         call.
11811 2019-01-17  Martin Sebor  <msebor@redhat.com>
11813         PR tree-optimization/88800
11814         * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
11815         NO_WARNING bit here.  Avoid folding out-of-bounds calls.
11816         * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
11817         redundant argument.  Add new argument and issue diagnostics under
11818         its control.  Detect out-of-bounds access even with warnings
11819         disabled.
11820         (check_bounds_or_overlap): Change return type.  Add argument.
11821         (wrestrict_dom_walker::check_call): Adjust.
11822         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
11823         * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
11824         check_bounds_or_overlap's return value.
11825         (handle_builtin_stxncpy): Same.
11826         (handle_builtin_strcat): Same.
11828 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
11829             Kwok Cheung Yeung  <kcy@codesourcery.com>
11830             Julian Brown  <julian@codesourcery.com>
11831             Tom de Vries  <tom@codesourcery.com>
11833         * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
11835 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
11837         * doc/sourcebuild.texi: Document dg-require-effective-target
11838         llvm_binutils and offload_gcn.
11840 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
11841             Kwok Cheung Yeung  <kcy@codesourcery.com>
11842             Julian Brown  <julian@codesourcery.com>
11843             Tom de Vries  <tom@codesourcery.com>
11845         * doc/sourcebuild.texi: Document dg-required-effective-target
11846         exceptions.
11848 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
11849             Kwok Cheung Yeung  <kcy@codesourcery.com>
11850             Julian Brown  <julian@codesourcery.com>
11851             Tom de Vries  <tom@codesourcery.com>
11852             Jan Hubicka  <hubicka@ucw.cz>
11853             Martin Jambor  <mjambor@suse.cz>
11855         * config.gcc: Add amdgcn*-*-amdhsa configuration.
11856         * configure.ac: Check for dlopen.
11857         * configure: Regenerate.
11859 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
11860             Kwok Cheung Yeung  <kcy@codesourcery.com>
11861             Julian Brown  <julian@codesourcery.com>
11862             Tom de Vries  <tom@codesourcery.com>
11863             Jan Hubicka  <hubicka@ucw.cz>
11864             Martin Jambor  <mjambor@suse.cz>
11866         * common/config/gcn/gcn-common.c: New file.
11867         * config/gcn/driver-gcn.c: New file.
11868         * config/gcn/gcn-builtins.def: New file.
11869         * config/gcn/gcn-hsa.h: New file.
11870         * config/gcn/gcn-modes.def: New file.
11871         * config/gcn/gcn-opts.h: New file.
11872         * config/gcn/gcn-passes.def: New file.
11873         * config/gcn/gcn-protos.h: New file.
11874         * config/gcn/gcn-run.c: New file.
11875         * config/gcn/gcn-tree.c: New file.
11876         * config/gcn/gcn.c: New file.
11877         * config/gcn/gcn.h: New file.
11878         * config/gcn/gcn.opt: New file.
11879         * config/gcn/t-gcn-hsa: New file.
11881 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
11882             Kwok Cheung Yeung  <kcy@codesourcery.com>
11883             Julian Brown  <julian@codesourcery.com>
11884             Tom de Vries  <tom@codesourcery.com>
11885             Jan Hubicka  <hubicka@ucw.cz>
11886             Martin Jambor  <mjambor@suse.cz>
11888         * config/gcn/constraints.md: New file.
11889         * config/gcn/gcn-valu.md: New file.
11890         * config/gcn/gcn.md: New file.
11891         * config/gcn/predicates.md: New file.
11893 2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
11895         * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
11896         flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
11897         (stmt_uses_0_or_null_in_undefined_way): Likewise.
11898         * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
11900 2019-01-17  Tamar Christina  <tamar.christina@arm.com>
11902         PR target/88851
11903         * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
11904         * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
11905         it and document registers.
11907 2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
11909         * config/aarch64/aarch64.c (ares_tunings): Define.
11910         * config/aarch64/aarch64-cores.def (ares): Use the above.
11912 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
11914         PR target/88794
11915         Revert:
11916         2018-11-06  Wei Xiao  <wei3.xiao@intel.com>
11918         * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
11919         (_mm512_fixupimm_round_pd): Update parameters and builtin.
11920         (_mm512_maskz_fixupimm_round_pd): Ditto.
11921         (_mm512_fixupimm_round_ps): Ditto.
11922         (_mm512_maskz_fixupimm_round_ps): Ditto.
11923         (_mm_fixupimm_round_sd): Ditto.
11924         (_mm_maskz_fixupimm_round_sd): Ditto.
11925         (_mm_fixupimm_round_ss): Ditto.
11926         (_mm_maskz_fixupimm_round_ss): Ditto.
11927         (_mm512_fixupimm_pd): Ditto.
11928         (_mm512_maskz_fixupimm_pd): Ditto.
11929         (_mm512_fixupimm_ps): Ditto.
11930         (_mm512_maskz_fixupimm_ps): Ditto.
11931         (_mm_fixupimm_sd): Ditto.
11932         (_mm_maskz_fixupimm_sd): Ditto.
11933         (_mm_fixupimm_ss): Ditto.
11934         (_mm_maskz_fixupimm_ss): Ditto.
11935         (_mm512_mask_fixupimm_round_pd): Update builtin.
11936         (_mm512_mask_fixupimm_round_ps): Ditto.
11937         (_mm_mask_fixupimm_round_sd): Ditto.
11938         (_mm_mask_fixupimm_round_ss): Ditto.
11939         (_mm512_mask_fixupimm_pd): Ditto.
11940         (_mm512_mask_fixupimm_ps): Ditto.
11941         (_mm_mask_fixupimm_sd): Ditto.
11942         (_mm_mask_fixupimm_ss): Ditto.
11943         * config/i386/avx512vlintrin.h:
11944         (_mm256_fixupimm_pd): Update parameters and builtin.
11945         (_mm256_maskz_fixupimm_pd): Ditto.
11946         (_mm256_fixupimm_ps): Ditto.
11947         (_mm256_maskz_fixupimm_ps): Ditto.
11948         (_mm_fixupimm_pd): Ditto.
11949         (_mm_maskz_fixupimm_pd): Ditto.
11950         (_mm_fixupimm_ps): Ditto.
11951         (_mm_maskz_fixupimm_ps): Ditto.
11952         (_mm256_mask_fixupimm_pd): Update builtin.
11953         (_mm256_mask_fixupimm_ps): Ditto.
11954         (_mm_mask_fixupimm_pd): Ditto.
11955         (_mm_mask_fixupimm_ps): Ditto.
11956         * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
11957         * config/i386/i386-builtin.def: Update builtin definitions.
11958         * config/i386/i386.c: Handle new builtin types and remove useless ones.
11959         * config/i386/sse.md: Update VFIXUPIMM* patterns.
11960         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
11961         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
11962         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
11963         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
11964         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
11965         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
11966         * config/i386/subst.md:
11967         (round_saeonly_sd_mask_operand4): Add new subst_attr.
11968         (round_saeonly_sd_mask_op4): Ditto.
11969         (round_saeonly_expand_operand5): Ditto.
11970         (round_saeonly_expand): Update.
11972 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
11974         PR target/88794
11975         Revert:
11976         2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
11978         * config/i386/sse.md: Combine VFIXUPIMM* patterns
11979         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
11980         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
11981         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
11982         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
11983         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
11984         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
11986 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
11988         PR target/88794
11989         Revert:
11990         2018-12-15  Jakub Jelinek  <jakub@redhat.com>
11992         PR target/88489
11993         * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
11994         (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
11995         instead of UNSPEC_FIXUPIMM.
11997 2019-01-17  Richard Biener  <rguenther@suse.de>
11999         PR lto/86736
12000         * dwarf2out.c (want_pubnames): Never generate pubnames sections
12001         and friends for the LTO part of debug info.
12003 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
12005         PR tree-optimization/86214
12006         * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
12007         if x == y.
12009         PR rtl-optimization/88870
12010         * dce.c (deletable_insn_p): Never delete const/pure calls that can
12011         throw if we can't alter the cfg or delete dead exceptions.
12012         (mark_insn): Don't call find_call_stack_args for such calls.
12014 2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
12016         * doc/extend.texi: Add four new prototypes for vec_ld and seven new
12017         prototypes for vec_st.
12018         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
12019         for scalar address type variants of altivec_vec_ld/altivec_vec_st,
12020         mainly on signed/unsigned long long and double.
12022 2019-01-16  David Malcolm  <dmalcolm@redhat.com>
12024         PR target/88861
12025         * combine.c (delete_noop_moves): Convert to "bool" return,
12026         returning true if any edges are eliminated.
12027         (combine_instructions): Also return true if delete_noop_moves
12028         returns true.
12030 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
12032         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
12033         correct max nunits for endian swap.
12034         (aarch64_expand_fcmla_builtin): Correct subreg code.
12035         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
12036         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
12037         lane endianness.
12039 2019-01-16  UroÅ¡ Bizjak  <ubizjak@gmail.com>
12041         * config/alpha/alpha.c (alpha_gimplify_va_arg):
12042         Handle split indirect COMPLEX_TYPE arguments.
12044 2019-01-16  Richard Earnshaw  <rearnsha@arm.com>
12046         PR target/86891
12047         * config/aarch64/aarch64-modes.def: Add comment about how the carry
12048         bit is set by add and compare.
12049         (CC_ADC): New CC_MODE.
12050         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
12051         to cache the code and mode of X.  Adjust the shape of a CC_Cmode
12052         comparison.  Add detection for CC_ADCmode.
12053         (aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
12054         CC_ADCmode.
12055         * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
12056         (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
12057         (add<mode>3_compareC_cconly_imm): Delete.  Merge into...
12058         (add<mode>3_compareC_cconly): ... this.  Restructure the comparison
12059         to eliminate the need for zero-extending the operands.
12060         (add<mode>3_compareC_imm): Delete.  Merge into ...
12061         (add<mode>3_compareC): ... this.  Restructure the comparison to
12062         eliminate the need for zero-extending the operands.
12063         (add<mode>3_carryin): Use LTU for the overflow detection.
12064         (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
12065         Reexpress comparison for overflow.
12066         (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
12067         (add<mode>3_carryinC): Likewise.
12068         (add<mode>3_carryinV): Use LTU for carry between partials.
12069         * config/aarch64/predicates.md (aarch64_carry_operation): Update
12070         handling of CC_Cmode and add CC_ADCmode.
12071         (aarch64_borrow_operation): Likewise.
12073 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
12075         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
12076         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
12077         * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
12078         neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
12080 2019-01-16  Martin Liska  <mliska@suse.cz>
12082         * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
12083         for GCC driver.
12084         * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
12085         a new argument.
12086         * gcc.c (add_sysrooted_hdrs_prefix): New function.
12087         (path_prefix_reset): Move up in the source file.
12088         (find_fortran_preinclude_file): Make complex search for the
12089         fortran header files.
12091 2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>
12093         * godump.c (go_output_typedef): When outputting a typedef, refer
12094         to the underlying type by its name and not its structure.
12096 2019-01-15  David Malcolm  <dmalcolm@redhat.com>
12098         PR c++/88795
12099         * tree.c (build_function_type): Assert that arg_types is not
12100         error_mark_node.
12102 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
12104         PR inline-asm/52813
12105         * doc/extend.texi: Document that listing the stack pointer in the
12106         clobber list of an asm is a deprecated feature.
12107         * common.opt (Wdeprecated): Moved from c-family/c.opt.
12108         * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
12109         warning instead of an error for clobbers of the stack pointer.
12110         Add a note explaining why.
12112 2019-01-15  Richard Biener  <rguenther@suse.de>
12114         PR debug/88046
12115         * dwarf2out.c (gen_member_die): Do not generate inheritance
12116         DIEs late.
12118 2019-01-15  Richard Biener  <rguenther@suse.de>
12120         PR tree-optimization/88855
12121         * tree-if-conv.c (combine_blocks): Collect
12122         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
12124 2019-01-15  Tom de Vries  <tdevries@suse.de>
12126         PR target/80547
12127         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
12128         lhs == NULL_TREE for gang-level reduction.
12130 2019-01-15  Richard Biener  <rguenther@suse.de>
12131             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
12133         PR ipa/88788
12134         * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
12135         return true if SSA_NAME is already marked in visited bitmap.
12136         (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
12138 2019-01-15  Jakub Jelinek  <jakub@redhat.com>
12140         PR tree-optimization/88775
12141         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
12142         equal == 0 equality pointer comparisons some more if compared in
12143         integral types and either one points to an automatic var and the
12144         other to a global, or we can prove at least one points to the middle
12145         or both point to start or both point to end.
12147 2019-01-14  Andi Kleen  <ak@linux.intel.com>
12149         * Makefile.in: Lower autofdo sampling rate by 10x.
12150         * Makefile.tpl: Dito.
12152 2019-01-14  Tom Honermann  <tom@honermann.net>
12154         * defaults.h: Define CHAR8_TYPE.
12156 2019-01-14  Martin Sebor  <msebor@redhat.com>
12158         PR target/88638
12159         * doc/extend.texi (Darwin Format Checks): Clarify.
12161 2019-01-14  Richard Biener  <rguenther@suse.de>
12163         * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
12164         whether we are in (simplify ...) or (match ...) context.
12166 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
12168         PR rtl-optimization/88796
12169         * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
12170         * cfgexpand.c (stack_protect_prologue): Initialize
12171         crtl->stack_protect_guard_decl.
12172         * function.c (stack_protect_epilogue): Use it instead of calling
12173         targetm.stack_protect_guard again.
12174         * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
12175         MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
12176         crtl->stack_protect_guard_decl.
12177         * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
12178         on the returned MEM_EXPR.
12180 2019-01-12  Tom de Vries  <tdevries@suse.de>
12182         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
12183         vector length using -fopenacc-dim.
12185 2019-01-12  Tom de Vries  <tdevries@suse.de>
12187         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
12188         lengths into account.
12190 2019-01-12  Svante Signell  <svante.signell@gmail.com>
12192         * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
12193         (TARGET_CAN_SPLIT_STACK): Define.
12194         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
12196 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
12198         * params.def (inline-unit-growth): Set to 40.
12200 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
12202         * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
12204 2019-01-12  Tom de Vries  <tdevries@suse.de>
12206         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
12207         region calling vector-partitionable routine, set default_vector_length
12208         to WARP_SIZE.
12210 2019-01-12  Tom de Vries  <tdevries@suse.de>
12212         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
12213         variable default_vector_length.
12215 2019-01-12  Tom de Vries  <tdevries@suse.de>
12217         PR middle-end/88703
12218         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
12219         from oacc_default_dims, as oacc_validate_dims would do it, and apply
12220         dimensions limits.
12222 2019-01-12  Tom de Vries  <tdevries@suse.de>
12224         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
12225         (nvptx_goacc_validate_dims): Add used parameter.
12226         * doc/tm.texi: Regenerate.
12227         * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
12228         argument to call to targetm.goacc.validate_dims.
12229         (default_goacc_validate_dims): Add used
12230         parameter.
12231         * target.def (validate_dims): Add used parameter in DEFHOOK.
12232         * targhooks.h (default_goacc_validate_dims): Add used parameter.
12234 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
12236         PR middle-end/85956
12237         PR lto/88733
12238         * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
12239         field.
12240         * tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
12241         ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
12242         a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
12243         * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
12245 2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>
12247         PR rtl-optimization/87305
12248         * lra-assigns.c
12249         (setup_live_pseudos_and_spill_after_risky_transforms): Add code
12250         for little endian pseudos used as paradoxical subreg.
12252 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
12254         PR tree-optimization/88693
12255         * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
12256         for STRING_CSTs that don't contain any NUL characters in the first
12257         TREE_STRING_LENGTH bytes.
12259 2019-01-11  Alan Modra  <amodra@gmail.com>
12261         PR 88777
12262         PR 88614
12263         * genattrtab.c (min_fn): Don't translate values.
12264         (min_attr_value): Return INT_MAX when the value can't be calculated.
12265         Return minimum among any values that can be calculated.
12266         (max_attr_value): Adjust.
12268 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
12270         * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
12272 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
12274         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
12275         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
12276         (aarch64_return_call_with_max_clobbers): New function.
12277         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
12278         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
12279         argument.
12280         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
12281         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
12282         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
12283         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
12284         * cselib.c (cselib_process_insn): Add argument to
12285         targetm.hard_regno_call_part_clobbered call.
12286         * ira-conflicts.c (ira_build_conflicts): Ditto.
12287         * ira-costs.c (ira_tune_allocno_costs): Ditto.
12288         * lra-constraints.c (inherit_reload_reg): Ditto.
12289         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
12290         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
12291         argument.  Call targetm.return_call_with_max_clobbers.
12292         Add argument to targetm.hard_regno_call_part_clobbered call.
12293         (calls_have_same_clobbers_p): New function.
12294         (process_bb_lives): Add call_insn and last_call_insn variables.
12295         Pass call_insn to check_pseudos_live_through_calls.
12296         Modify if stmt to check targetm.return_call_with_max_clobbers.
12297         Update setting of flush variable.
12298         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
12299         to false.
12300         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
12301         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
12302         targetm.hard_regno_call_part_clobbered call.
12303         * reginfo.c (choose_hard_reg_mode): Ditto.
12304         * regrename.c (check_new_reg_p): Ditto.
12305         * reload.c (find_equiv_reg): Ditto.
12306         * reload1.c (emit_reload_insns): Ditto.
12307         * sched-deps.c (deps_analyze_insn): Ditto.
12308         * sel-sched.c (init_regs_for_mode): Ditto.
12309         (mark_unavailable_hard_regs): Ditto.
12310         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
12311         * target.def (hard_regno_call_part_clobbered): Add insn argument.
12312         (return_call_with_max_clobbers): New target function.
12313         * doc/tm.texi: Regenerate.
12314         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
12315         * hooks.c (hook_bool_uint_mode_false): Change to
12316         hook_bool_insn_uint_mode_false.
12317         * hooks.h (hook_bool_uint_mode_false): Ditto.
12319 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
12321         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
12322         (aarch64_remove_extra_call_preserved_regs): New function.
12323         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
12324         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
12325         * doc/tm.texi: Regenerate.
12326         * final.c (get_call_reg_set_usage): Call new hook.
12327         * target.def (remove_extra_call_preserved_regs): New hook.
12328         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
12329         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
12331 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
12333         PR bootstrap/88714
12334         * passes.c (finish_optimization_passes): Call print_combine_total_stats
12335         inside of pass_combine_1 dump rather than pass_profile_1.
12337 2019-01-11  Tom de Vries  <tdevries@suse.de>
12339         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
12340         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
12341         (PTX_NUM_PER_WORKER_BARRIERS): Define.
12342         (nvptx_apply_dim_limits): Prevent vector_length 64 and
12343         num_workers 16.
12345 2019-01-11  Tom de Vries  <tdevries@suse.de>
12347         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
12349 2019-01-11  Jan Beulich  <jbeulich@suse.com>
12351         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
12352         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
12353         sse2_cvtsi2sd): Add {l}.
12354         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
12355         syntax.
12357 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
12359         PR target/88785
12360         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
12361         define_expand.
12362         (*float<floatunssuffix>v2div2sf2): New define_insn.
12363         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
12364         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
12365         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
12366         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
12367         match_operands with "const0_operand" "C".
12369 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
12371         * config/aarch64/aarch64-builtins.c
12372         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
12373         (aarch64_init_simd_builtins): ...Here
12375 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
12377         PR rtl-optimization/87305
12378         * lra-assigns.c
12379         (setup_live_pseudos_and_spill_after_risky_transforms): Check
12380         allocation for big endian pseudos used as paradoxical subregs and
12381         spill them if it is wrong.
12382         * lra-constraints.c (lra_constraints): Add a comment.
12384 2019-01-10  Richard Biener  <rguenther@suse.de>
12386         PR tree-optimization/88792
12387         * tree-ssa-pre.c (get_representative_for): Do not return a
12388         value-number here.
12390 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
12392         PR middle-end/84877
12393         PR bootstrap/88450
12394         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
12395         (assign_parm_setup_block): Do the argument slot realignment here
12396         instead.
12398 2019-01-10  Stefan Agner  <stefan@agner.ch>
12400         PR target/88648
12401         * config/arm/arm.c (arm_option_override_internal): Force
12402         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
12404 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
12406         PR c/88568
12407         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
12408         DECL_EXTERNAL.
12410 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
12412         * config/arm/arm-builtins.c
12413         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
12414         (MAC_LANE_PAIR_QUALIFIERS): New.
12415         (arm_expand_builtin_args): Use it.
12416         (arm_expand_builtin_1): Likewise.
12417         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
12418         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
12419         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
12420         * config/arm/arm_neon.h:
12421         (vcadd_rot90_f16): New.
12422         (vcaddq_rot90_f16): New.
12423         (vcadd_rot270_f16): New.
12424         (vcaddq_rot270_f16): New.
12425         (vcmla_f16): New.
12426         (vcmlaq_f16): New.
12427         (vcmla_lane_f16): New.
12428         (vcmla_laneq_f16): New.
12429         (vcmlaq_lane_f16): New.
12430         (vcmlaq_laneq_f16): New.
12431         (vcmla_rot90_f16): New.
12432         (vcmlaq_rot90_f16): New.
12433         (vcmla_rot90_lane_f16): New.
12434         (vcmla_rot90_laneq_f16): New.
12435         (vcmlaq_rot90_lane_f16): New.
12436         (vcmlaq_rot90_laneq_f16): New.
12437         (vcmla_rot180_f16): New.
12438         (vcmlaq_rot180_f16): New.
12439         (vcmla_rot180_lane_f16): New.
12440         (vcmla_rot180_laneq_f16): New.
12441         (vcmlaq_rot180_lane_f16): New.
12442         (vcmlaq_rot180_laneq_f16): New.
12443         (vcmla_rot270_f16): New.
12444         (vcmlaq_rot270_f16): New.
12445         (vcmla_rot270_lane_f16): New.
12446         (vcmla_rot270_laneq_f16): New.
12447         (vcmlaq_rot270_lane_f16): New.
12448         (vcmlaq_rot270_laneq_f16): New.
12449         (vcadd_rot90_f32): New.
12450         (vcaddq_rot90_f32): New.
12451         (vcadd_rot270_f32): New.
12452         (vcaddq_rot270_f32): New.
12453         (vcmla_f32): New.
12454         (vcmlaq_f32): New.
12455         (vcmla_lane_f32): New.
12456         (vcmla_laneq_f32): New.
12457         (vcmlaq_lane_f32): New.
12458         (vcmlaq_laneq_f32): New.
12459         (vcmla_rot90_f32): New.
12460         (vcmlaq_rot90_f32): New.
12461         (vcmla_rot90_lane_f32): New.
12462         (vcmla_rot90_laneq_f32): New.
12463         (vcmlaq_rot90_lane_f32): New.
12464         (vcmlaq_rot90_laneq_f32): New.
12465         (vcmla_rot180_f32): New.
12466         (vcmlaq_rot180_f32): New.
12467         (vcmla_rot180_lane_f32): New.
12468         (vcmla_rot180_laneq_f32): New.
12469         (vcmlaq_rot180_lane_f32): New.
12470         (vcmlaq_rot180_laneq_f32): New.
12471         (vcmla_rot270_f32): New.
12472         (vcmlaq_rot270_f32): New.
12473         (vcmla_rot270_lane_f32): New.
12474         (vcmla_rot270_laneq_f32): New.
12475         (vcmlaq_rot270_lane_f32): New.
12476         (vcmlaq_rot270_laneq_f32): New.
12477         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
12478         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180,
12479         vcmla_lane270, vcmla_laneq0, vcmla_laneq90, vcmla_laneq180,
12480         vcmla_laneq270, vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180,
12481         vcmlaq_lane270): New.
12482         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
12483         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
12484         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
12485         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
12486         (arm_option_reconfigure_globals): Use them.
12487         * config/arm/iterators.md (VDF, VQ_HSF): New.
12488         (VCADD, VCMLA): New.
12489         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
12490         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>):
12491         New.
12492         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
12493         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
12495 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
12497         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
12498         Add qualifier_lane_pair_index.
12499         (emit-rtl.h): Include.
12500         (TYPES_QUADOP_LANE_PAIR): New.
12501         (aarch64_simd_expand_args): Use it.
12502         (aarch64_simd_expand_builtin): Likewise.
12503         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum):
12504         New.
12505         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
12506         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
12507         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
12508         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
12509         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
12510         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF,
12511         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
12512         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF,
12513         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
12514         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF,
12515         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
12516         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
12517         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
12518         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins):
12519         Add __ARM_FEATURE_COMPLEX.
12520         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0,
12521         fcmla90, fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180,
12522         fcmla_lane270, fcmla_laneq0, fcmla_laneq90, fcmla_laneq180,
12523         fcmla_laneq270, fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180,
12524         fcmlaq_lane270): New.
12525         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
12526         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,
12527         aarch64_fcadd<rot><mode>, aarch64_fcmla<rot><mode>): New.
12528         * config/aarch64/arm_neon.h:
12529         (vcadd_rot90_f16): New.
12530         (vcaddq_rot90_f16): New.
12531         (vcadd_rot270_f16): New.
12532         (vcaddq_rot270_f16): New.
12533         (vcmla_f16): New.
12534         (vcmlaq_f16): New.
12535         (vcmla_lane_f16): New.
12536         (vcmla_laneq_f16): New.
12537         (vcmlaq_lane_f16): New.
12538         (vcmlaq_rot90_lane_f16): New.
12539         (vcmla_rot90_laneq_f16): New.
12540         (vcmla_rot90_lane_f16): New.
12541         (vcmlaq_rot90_f16): New.
12542         (vcmla_rot90_f16): New.
12543         (vcmlaq_laneq_f16): New.
12544         (vcmla_rot180_laneq_f16): New.
12545         (vcmla_rot180_lane_f16): New.
12546         (vcmlaq_rot180_f16): New.
12547         (vcmla_rot180_f16): New.
12548         (vcmlaq_rot90_laneq_f16): New.
12549         (vcmlaq_rot270_laneq_f16): New.
12550         (vcmlaq_rot270_lane_f16): New.
12551         (vcmla_rot270_laneq_f16): New.
12552         (vcmlaq_rot270_f16): New.
12553         (vcmla_rot270_f16): New.
12554         (vcmlaq_rot180_laneq_f16): New.
12555         (vcmlaq_rot180_lane_f16): New.
12556         (vcmla_rot270_lane_f16): New.
12557         (vcadd_rot90_f32): New.
12558         (vcaddq_rot90_f32): New.
12559         (vcaddq_rot90_f64): New.
12560         (vcadd_rot270_f32): New.
12561         (vcaddq_rot270_f32): New.
12562         (vcaddq_rot270_f64): New.
12563         (vcmla_f32): New.
12564         (vcmlaq_f32): New.
12565         (vcmlaq_f64): New.
12566         (vcmla_lane_f32): New.
12567         (vcmla_laneq_f32): New.
12568         (vcmlaq_lane_f32): New.
12569         (vcmlaq_laneq_f32): New.
12570         (vcmla_rot90_f32): New.
12571         (vcmlaq_rot90_f32): New.
12572         (vcmlaq_rot90_f64): New.
12573         (vcmla_rot90_lane_f32): New.
12574         (vcmla_rot90_laneq_f32): New.
12575         (vcmlaq_rot90_lane_f32): New.
12576         (vcmlaq_rot90_laneq_f32): New.
12577         (vcmla_rot180_f32): New.
12578         (vcmlaq_rot180_f32): New.
12579         (vcmlaq_rot180_f64): New.
12580         (vcmla_rot180_lane_f32): New.
12581         (vcmla_rot180_laneq_f32): New.
12582         (vcmlaq_rot180_lane_f32): New.
12583         (vcmlaq_rot180_laneq_f32): New.
12584         (vcmla_rot270_f32): New.
12585         (vcmlaq_rot270_f32): New.
12586         (vcmlaq_rot270_f64): New.
12587         (vcmla_rot270_lane_f32): New.
12588         (vcmla_rot270_laneq_f32): New.
12589         (vcmlaq_rot270_lane_f32): New.
12590         (vcmlaq_rot270_laneq_f32): New.
12591         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
12592         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
12593         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
12594         (FCADD, FCMLA): New.
12595         (rot): New.
12596         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
12598 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
12600         PR other/16615
12602         * config/pa/pa.c: Change "can not" to "cannot".
12603         * gimple-ssa-evrp-analyze.c: Likewise.
12604         * ipa-icf.c: Likewise.
12605         * ipa-polymorphic-call.c: Likewise.
12606         * ipa-pure-const.c: Likewise.
12607         * lra-constraints.c: Likewise.
12608         * lra-remat.c: Likewise.
12609         * reload1.c: Likewise.
12610         * reorg.c: Likewise.
12611         * tree-ssa-uninit.c: Likewise.
12613 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
12615         PR other/16615
12617         * Makefile.in: Mechanically replace "can not" with "cannot".
12618         * alias.c: Likewise.
12619         * builtins.c: Likewise.
12620         * calls.c: Likewise.
12621         * cgraph.c: Likewise.
12622         * cgraph.h: Likewise.
12623         * cgraphclones.c: Likewise.
12624         * cgraphunit.c: Likewise.
12625         * combine-stack-adj.c: Likewise.
12626         * combine.c: Likewise.
12627         * common/config/i386/i386-common.c: Likewise.
12628         * config/aarch64/aarch64.c: Likewise.
12629         * config/alpha/sync.md: Likewise.
12630         * config/arc/arc.c: Likewise.
12631         * config/arc/predicates.md: Likewise.
12632         * config/arm/arm-c.c: Likewise.
12633         * config/arm/arm.c: Likewise.
12634         * config/arm/arm.h: Likewise.
12635         * config/arm/arm.md: Likewise.
12636         * config/arm/cortex-r4f.md: Likewise.
12637         * config/csky/csky.c: Likewise.
12638         * config/csky/csky.h: Likewise.
12639         * config/darwin-f.c: Likewise.
12640         * config/epiphany/epiphany.md: Likewise.
12641         * config/i386/i386.c: Likewise.
12642         * config/i386/sol2.h: Likewise.
12643         * config/m68k/m68k.c: Likewise.
12644         * config/mcore/mcore.h: Likewise.
12645         * config/microblaze/microblaze.md: Likewise.
12646         * config/mips/20kc.md: Likewise.
12647         * config/mips/sb1.md: Likewise.
12648         * config/nds32/nds32.c: Likewise.
12649         * config/nds32/predicates.md: Likewise.
12650         * config/pa/pa.c: Likewise.
12651         * config/rs6000/e300c2c3.md: Likewise.
12652         * config/rs6000/rs6000.c: Likewise.
12653         * config/s390/s390.h: Likewise.
12654         * config/sh/sh.c: Likewise.
12655         * config/sh/sh.md: Likewise.
12656         * config/spu/vmx2spu.h: Likewise.
12657         * cprop.c: Likewise.
12658         * dbxout.c: Likewise.
12659         * df-scan.c: Likewise.
12660         * doc/cfg.texi: Likewise.
12661         * doc/extend.texi: Likewise.
12662         * doc/fragments.texi: Likewise.
12663         * doc/gty.texi: Likewise.
12664         * doc/invoke.texi: Likewise.
12665         * doc/lto.texi: Likewise.
12666         * doc/md.texi: Likewise.
12667         * doc/objc.texi: Likewise.
12668         * doc/rtl.texi: Likewise.
12669         * doc/tm.texi: Likewise.
12670         * dse.c: Likewise.
12671         * emit-rtl.c: Likewise.
12672         * emit-rtl.h: Likewise.
12673         * except.c: Likewise.
12674         * expmed.c: Likewise.
12675         * expr.c: Likewise.
12676         * fold-const.c: Likewise.
12677         * genautomata.c: Likewise.
12678         * gimple-fold.c: Likewise.
12679         * hard-reg-set.h: Likewise.
12680         * ifcvt.c: Likewise.
12681         * ipa-comdats.c: Likewise.
12682         * ipa-cp.c: Likewise.
12683         * ipa-devirt.c: Likewise.
12684         * ipa-fnsummary.c: Likewise.
12685         * ipa-icf.c: Likewise.
12686         * ipa-inline-transform.c: Likewise.
12687         * ipa-inline.c: Likewise.
12688         * ipa-polymorphic-call.c: Likewise.
12689         * ipa-profile.c: Likewise.
12690         * ipa-prop.c: Likewise.
12691         * ipa-pure-const.c: Likewise.
12692         * ipa-reference.c: Likewise.
12693         * ipa-split.c: Likewise.
12694         * ipa-visibility.c: Likewise.
12695         * ipa.c: Likewise.
12696         * ira-build.c: Likewise.
12697         * ira-color.c: Likewise.
12698         * ira-conflicts.c: Likewise.
12699         * ira-costs.c: Likewise.
12700         * ira-int.h: Likewise.
12701         * ira-lives.c: Likewise.
12702         * ira.c: Likewise.
12703         * ira.h: Likewise.
12704         * loop-invariant.c: Likewise.
12705         * loop-unroll.c: Likewise.
12706         * lower-subreg.c: Likewise.
12707         * lra-assigns.c: Likewise.
12708         * lra-constraints.c: Likewise.
12709         * lra-eliminations.c: Likewise.
12710         * lra-lives.c: Likewise.
12711         * lra-remat.c: Likewise.
12712         * lra-spills.c: Likewise.
12713         * lra.c: Likewise.
12714         * lto-cgraph.c: Likewise.
12715         * lto-streamer-out.c: Likewise.
12716         * postreload-gcse.c: Likewise.
12717         * predict.c: Likewise.
12718         * profile-count.h: Likewise.
12719         * profile.c: Likewise.
12720         * recog.c: Likewise.
12721         * ree.c: Likewise.
12722         * reload.c: Likewise.
12723         * reload1.c: Likewise.
12724         * reorg.c: Likewise.
12725         * resource.c: Likewise.
12726         * rtl.def: Likewise.
12727         * rtl.h: Likewise.
12728         * rtlanal.c: Likewise.
12729         * sched-deps.c: Likewise.
12730         * sched-ebb.c: Likewise.
12731         * sched-rgn.c: Likewise.
12732         * sel-sched-ir.c: Likewise.
12733         * sel-sched.c: Likewise.
12734         * shrink-wrap.c: Likewise.
12735         * simplify-rtx.c: Likewise.
12736         * symtab.c: Likewise.
12737         * target.def: Likewise.
12738         * toplev.c: Likewise.
12739         * tree-call-cdce.c: Likewise.
12740         * tree-cfg.c: Likewise.
12741         * tree-complex.c: Likewise.
12742         * tree-core.h: Likewise.
12743         * tree-eh.c: Likewise.
12744         * tree-inline.c: Likewise.
12745         * tree-loop-distribution.c: Likewise.
12746         * tree-nrv.c: Likewise.
12747         * tree-profile.c: Likewise.
12748         * tree-sra.c: Likewise.
12749         * tree-ssa-alias.c: Likewise.
12750         * tree-ssa-dce.c: Likewise.
12751         * tree-ssa-dom.c: Likewise.
12752         * tree-ssa-forwprop.c: Likewise.
12753         * tree-ssa-loop-im.c: Likewise.
12754         * tree-ssa-loop-ivcanon.c: Likewise.
12755         * tree-ssa-loop-ivopts.c: Likewise.
12756         * tree-ssa-loop-niter.c: Likewise.
12757         * tree-ssa-phionlycprop.c: Likewise.
12758         * tree-ssa-phiopt.c: Likewise.
12759         * tree-ssa-propagate.c: Likewise.
12760         * tree-ssa-threadedge.c: Likewise.
12761         * tree-ssa-threadupdate.c: Likewise.
12762         * tree-ssa-uninit.c: Likewise.
12763         * tree-ssanames.c: Likewise.
12764         * tree-streamer-out.c: Likewise.
12765         * tree.c: Likewise.
12766         * tree.h: Likewise.
12767         * vr-values.c: Likewise.
12769 2019-01-09  UroÅ¡ Bizjak  <ubizjak@gmail.com>
12771         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
12772         (ix86_split_xorsign): Ditto.
12773         * config/i386/i386.c (ix86_expand_xorsign): New function.
12774         (ix86_split_xorsign): Ditto.
12775         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
12776         (xorsign<mode>3): New expander.
12777         (xorsign<mode>3_1): New insn_and_split pattern.
12778         * config/i386/sse.md (xorsign<mode>3): New expander.
12780 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
12782         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
12783         (*tablejump_sp64): Likewise.
12784         (*tablejump<P:mode>): ...this.
12785         (*call_address_sp32): Merge into...
12786         (*call_address_sp64): Likewise.
12787         (*call_address<P:mode>): ...this.
12788         (*call_symbolic_sp32): Merge into...
12789         (*call_symbolic_sp64): Likewise.
12790         (*call_symbolic<P:mode>): ...this.
12791         (call_value): Remove constraint and add predicate.
12792         (*call_value_address_sp32): Merge into...
12793         (*call_value_address_sp64): Likewise.
12794         (*call_value_address<P:mode>): ...this.
12795         (*call_value_symbolic_sp32): Merge into...
12796         (*call_value_symbolic_sp64): Likewise.
12797         (*call_value_symbolic<P:mode>): ...this.
12798         (*sibcall_symbolic_sp32): Merge into...
12799         (*sibcall_symbolic_sp64): Likewise.
12800         (*sibcall_symbolic<P:mode>): ...this.
12801         (sibcall_value): Remove constraint and add predicate.
12802         (*sibcall_value_symbolic_sp32): Merge into...
12803         (*sibcall_value_symbolic_sp64): Likewise.
12804         (*sibcall_value_symbolic<P:mode>): ...this.
12805         (window_save): Minor tweak.
12806         (*branch_sp32): Merge into...
12807         (*branch_sp64): Likewise.
12808         (*branch<P:mode>): ...this.
12810 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
12811             James Clarke  <jrtc27@jrtc27.com>
12813         PR target/84010
12814         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
12815         consistently in TLS address generation and adjust code to the renaming
12816         of patterns.  Mark calls to __tls_get_addr as const.
12817         * config/sparc/sparc.md (tgd_hi22): Turn into...
12818         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
12819         (tgd_lo10): Turn into...
12820         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
12821         (tgd_add32): Merge into...
12822         (tgd_add64): Likewise.
12823         (tgd_add<P:mode>): ...this and use Pmode throughout.
12824         (tldm_hi22): Turn into...
12825         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
12826         (tldm_lo10): Turn into...
12827         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
12828         (tldm_add32): Merge into...
12829         (tldm_add64): Likewise.
12830         (tldm_add<P:mode>): ...this and use Pmode throughout.
12831         (tldm_call32): Merge into...
12832         (tldm_call64): Likewise.
12833         (tldm_call<P:mode>): ...this and use Pmode throughout.
12834         (tldo_hix22): Turn into...
12835         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
12836         (tldo_lox10): Turn into...
12837         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
12838         (tldo_add32): Merge into...
12839         (tldo_add64): Likewise.
12840         (tldo_add<P:mode>): ...this and use Pmode throughout.
12841         (tie_hi22): Turn into...
12842         (tie_hi22<P:mode>): ...this and use Pmode throughout.
12843         (tie_lo10): Turn into...
12844         (tie_lo10<P:mode>): ...this and use Pmode throughout.
12845         (tie_ld64): Use DImode throughout.
12846         (tie_add32): Merge into...
12847         (tie_add64): Likewise.
12848         (tie_add<P:mode>): ...this and use Pmode throughout.
12849         (tle_hix22_sp32): Merge into...
12850         (tle_hix22_sp64): Likewise.
12851         (tle_hix22<P:mode>): ...this and use Pmode throughout.
12852         (tle_lox22_sp32): Merge into...
12853         (tle_lox22_sp64): Likewise.
12854         (tle_lox22<P:mode>): ...this and use Pmode throughout.
12855         (*tldo_ldub_sp32): Merge into...
12856         (*tldo_ldub_sp64): Likewise.
12857         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
12858         (*tldo_ldub1_sp32): Merge into...
12859         (*tldo_ldub1_sp64): Likewise.
12860         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
12861         (*tldo_ldub2_sp32): Merge into...
12862         (*tldo_ldub2_sp64): Likewise.
12863         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
12864         (*tldo_ldsb1_sp32): Merge into...
12865         (*tldo_ldsb1_sp64): Likewise.
12866         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
12867         (*tldo_ldsb2_sp32): Merge into...
12868         (*tldo_ldsb2_sp64): Likewise.
12869         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
12870         (*tldo_ldub3_sp64): Use DImode throughout.
12871         (*tldo_ldsb3_sp64): Likewise.
12872         (*tldo_lduh_sp32): Merge into...
12873         (*tldo_lduh_sp64): Likewise.
12874         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
12875         (*tldo_lduh1_sp32): Merge into...
12876         (*tldo_lduh1_sp64): Likewise.
12877         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
12878         (*tldo_ldsh1_sp32): Merge into...
12879         (*tldo_ldsh1_sp64): Likewise.
12880         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
12881         (*tldo_lduh2_sp64): Use DImode throughout.
12882         (*tldo_ldsh2_sp64): Likewise.
12883         (*tldo_lduw_sp32): Merge into...
12884         (*tldo_lduw_sp64): Likewise.
12885         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
12886         (*tldo_lduw1_sp64): Use DImode throughout.
12887         (*tldo_ldsw1_sp64): Likewise.
12888         (*tldo_ldx_sp64): Likewise.
12889         (*tldo_stb_sp32): Merge into...
12890         (*tldo_stb_sp64): Likewise.
12891         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
12892         (*tldo_sth_sp32): Merge into...
12893         (*tldo_sth_sp64): Likewise.
12894         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
12895         (*tldo_stw_sp32): Merge into...
12896         (*tldo_stw_sp64): Likewise.
12897         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
12898         (*tldo_stx_sp64): Use DImode throughout.
12900 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
12902         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
12903         check configure option to set BTI and Return Address Signing.
12904         * configure.ac: Add --enable-standard-branch-protection and
12905         --disable-standard-branch-protection.
12906         * configure: Regenerated.
12907         * doc/install.texi: Document the same.
12909 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
12910             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
12912         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
12913         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
12914         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
12915         if bti is enabled.
12916         * config/aarch64/aarch64-bti-insert.c: New file.
12917         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
12918         pass.
12919         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
12920         new bti pass.
12921         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
12922         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
12923         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
12924         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
12926 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
12928         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
12929         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
12930         Disable bti for -mbranch-protection=none.
12931         (aarch64_handle_standard_branch_protection): Enable bti for
12932         -mbranch-protection=standard.
12933         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
12934         -mbranch-protection.
12935         (aarch64_bti_enabled): Check if bti is enabled.
12936         * config/aarch64/aarch64.opt: Declare target variable.
12937         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
12939 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
12941         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
12942         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
12943         (aarch64_expand_epilogue): Likewise.
12944         (aarch64_output_mi_thunk): Likewise
12945         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
12946         TAILCALL_ADDR_REGS to x16 and x17.
12947         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
12949 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
12951         * config/aarch64/aarch64-option-extensions.def: Define
12952         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
12953         * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
12954         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
12955         (AARCH64_FL_PREDRES): New.
12956         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
12957         AARCH64_FL_PREDRES by default.
12958         * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
12960 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
12962         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
12963         ARMv8.5-A.
12964         * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
12965         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
12966         * doc/invoke.texi: Document ARMv8.5-A.
12968 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
12970         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
12971         (xorsign<mode>3): Likewise.
12973 2019-01-09  Jelinek  <jakub@redhat.com>
12975         PR middle-end/88758
12976         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
12977         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
12979         PR rtl-optimization/88331
12980         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
12981         not currently_expanding_to_rtl.
12983 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
12985         * doc/invoke.texi (-Os): Remove trailing spaces.
12986         (-finline-functions): Remove reference to -O2.
12988 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
12990         PR rtl-optimization/79593
12991         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
12993         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
12994         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
12996 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
12998         PR bootstrap/88721
12999         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
13000         to -1 on entry.
13002         PR debug/88723
13003         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
13004         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
13006 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
13008         PR target/88717
13009         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
13010         ix86_avx_u128_mode_entry.
13012 2019-01-08  Martin Liska  <mliska@suse.cz>
13014         PR tree-optimization/88753
13015         * tree-switch-conversion.c (switch_conversion::build_one_array):
13016         Come up with local variable constructor.  Convert first to
13017         type of constructor values.
13019 2019-01-08  Richard Biener  <rguenther@suse.de>
13021         PR tree-optimization/86554
13022         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
13023         rpo_avail): Move earlier.
13024         (visit_nary_op): When value-numbering to expressions
13025         with different overflow behavior make sure there's an
13026         available expression on the path.
13028 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
13030         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
13031         aarch64_parse_branch_protection,
13032         struct aarch64_branch_protect_type,
13033         aarch64_handle_no_branch_protection,
13034         aarch64_handle_standard_branch_protection,
13035         aarch64_validate_mbranch_protection,
13036         aarch64_handle_pac_ret_protection,
13037         aarch64_handle_attr_branch_protection,
13038         accepted_branch_protection_string,
13039         aarch64_pac_ret_subtypes,
13040         aarch64_branch_protect_types,
13041         aarch64_handle_pac_ret_leaf): Define.
13042         (aarch64_override_options_after_change_1, aarch64_override_options):
13043         Add check for accepted_branch_protection_string.
13044         (aarch64_option_save): Save accepted_branch_protection_string.
13045         (aarch64_option_restore): Save accepted_branch_protection_string.
13046         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
13047         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
13048         msign-return-address.
13049         * doc/invoke.texi: Add mbranch-protection.
13051 2019-01-08  Alan Modra  <amodra@gmail.com>
13053         PR target/88614
13054         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
13055         Delete "unknownp" parameter.  Adjust callers.  Handle
13056         CONST_INT, PLUS, MINUS, and MULT.
13057         (attr_value_aligned): Renamed from or_attr_value.
13058         (min_attr_value): Return INT_MIN for unhandled rtl case..
13059         (min_fn): ..and translate to INT_MAX here.
13060         (write_length_unit_log): Modify to cope without "unknown".
13061         (write_attr_value): Handle IF_THEN_ELSE.
13063 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
13065         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
13066         optimization for masked stores.
13068 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
13070         PR middle-end/88567
13071         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
13072         output vector directly to duplicate_and_interleave instead of
13073         going through a temporary.  Postpone insertion of ctor_seq to
13074         the end of the loop.
13076 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
13078         PR target/86891
13079         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
13080         unsigned_p.  Handle signed and unsigned overflow correction as
13081         required.
13082         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
13083         prototype.
13084         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
13085         for operand 2.
13086         (add<mode>3_compareV_imm): Make this callable for expanding.
13087         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
13088         aarch64_plus_operand for operand 2.
13089         (subv<GPI:mode>_insn): New insn pattern.
13090         (subv<GPI:mode>_imm): Likewise.
13091         (negv<GPI:mode>3): New expand pattern.
13092         (negv<GPI:mode>_insn): New insn pattern.
13093         (negv<GPI:mode>_cmp_only): Likewise.
13094         (cmpv<GPI:mode>_insn): Likewise.
13095         (subvti4): Use register_operand for operand 1.  Update call to
13096         aarch64_expand_subvti.
13097         (usubvti4): Likewise.
13098         (negvti3): New expand pattern.
13099         (negdi_carryout): New insn pattern.
13100         (negvdi_carryinV): New insn pattern.
13101         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
13102         version the named version.
13103         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
13104         operands.
13105         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
13106         patterns.
13107         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
13108         patterns.
13109         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
13110         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
13111         (sub<mode>3_carryinCV): Delete.
13112         (sub<GPI:mode>3_carryinV): New expand pattern.
13113         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
13115 2019-01-07  Richard Biener  <rguenther@suse.de>
13117         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
13118         of tree_operand_hash.
13120 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
13122         PR tree-optimization/88598
13123         * tree.h (single_nonzero_element): Declare.
13124         * tree.c (single_nonzero_element): New function.
13125         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
13126         if I is the only nonzero element of CST.
13128 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
13130         PR tree-optimization/88598
13131         * tree.h (initializer_each_zero_or_onep): Declare.
13132         * tree.c (initializer_each_zero_or_onep): New function.
13133         (signed_or_unsigned_type_for): Handle float types too.
13134         (unsigned_type_for, signed_type_for): Update comments accordingly.
13135         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
13136         x & { 0 or -1, 0 or -1, ... }.
13138 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
13140         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
13141         with x86_64-pc-linux-gnu.
13143 2019-01-07  Tom de Vries  <tdevries@suse.de>
13145         PR target/85486
13146         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
13147         function.
13148         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
13149         routines.
13151 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
13153         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
13154         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
13155         TARGET_AVX512F as condition.
13157         PR debug/88723
13158         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
13159         const_not_ok_for_debug_p target hook.
13160         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
13161         on UNSPEC and subexpressions thereof if all subexpressions of the
13162         UNSPEC are CONSTANT_P.
13164         PR tree-optimization/88676
13165         * tree-ssa-phiopt.c (two_value_replacement): New function.
13166         (tree_ssa_phiopt_worker): Call it.
13168         PR sanitizer/88619
13169         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
13170         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
13172         PR c++/85052
13173         * tree-vect-generic.c: Include insn-config.h and recog.h.
13174         (expand_vector_piecewise): Add defaulted ret_type argument,
13175         if non-NULL, use that in preference to type for the result type.
13176         (expand_vector_parallel): Formatting fix.
13177         (do_vec_conversion, do_vec_narrowing_conversion,
13178         expand_vector_conversion): New functions.
13179         (expand_vector_operations_1): Call expand_vector_conversion
13180         for VEC_CONVERT ifn calls.
13181         * internal-fn.def (VEC_CONVERT): New internal function.
13182         * internal-fn.c (expand_VEC_CONVERT): New function.
13183         * fold-const-call.c (fold_const_vec_convert): New function.
13184         (fold_const_call): Use it for CFN_VEC_CONVERT.
13185         * doc/extend.texi (__builtin_convertvector): Document.
13187 2019-01-07  Tom de Vries  <tdevries@suse.de>
13189         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
13190         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
13191         vector_red_partition, vector_red_sym): New global variables.
13192         (nvptx_option_override): Initialize vector_red_sym.
13193         (nvptx_declare_function_name): Restore red_partition register.
13194         (nvptx_file_end): Emit code to declare the vector reduction variables.
13195         (nvptx_output_red_partition): New function.
13196         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
13197         large vector reductions.
13198         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
13199         (nvptx_init_builtins): Add VECTOR_ADDR.
13200         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
13201         Handle nvptx_expand_shared_addr.
13202         (nvptx_get_shared_red_addr): Add vector argument and handle large
13203         vectors.
13204         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
13205         large vectors.
13206         (nvptx_goacc_reduction_init): Likewise.
13207         (nvptx_goacc_reduction_fini): Likewise.
13208         (nvptx_goacc_reduction_teardown): Likewise.
13209         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
13210         init,fini,teardown}.
13211         (nvptx_init_axis_predicate): Initialize vector_red_partition.
13212         (nvptx_set_current_function): Init vector_red_partition.
13213         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
13214         (nvptx_red_partition): New insn.
13215         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
13217 2019-01-07  Tom de Vries  <tdevries@suse.de>
13219         PR target/85381
13220         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
13221         empty loops.
13223 2019-01-07  Tom de Vries  <tdevries@suse.de>
13225         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
13226         (nvptx_option_override): Init oacc_bcast_partition.
13227         (nvptx_init_oacc_workers): New function.
13228         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
13229         (nvptx_needs_shared_bcast): New function.
13230         (nvptx_find_par): Generalize to enable vectors to use shared-memory
13231         to propagate state.
13232         (nvptx_shared_propagate): Initialize vector bcast partition and
13233         synchronization state.
13234         (nvptx_single):  Generalize to enable vectors to use shared-memory
13235         to propagate state.
13236         (nvptx_process_pars): Likewise.
13237         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
13238         * config/nvptx/nvptx.h (struct machine_function): Add
13239         bcast_partition and sync_bar members.
13241 2019-01-07  Tom de Vries  <tdevries@suse.de>
13243         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
13244         (nvptx_apply_dim_limits): New function.
13245         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
13246         PTX_WARP_SIZE.
13248 2019-01-07  Tom de Vries  <tdevries@suse.de>
13250         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
13251         as late as possible.
13253 2019-01-07  Tom de Vries  <tdevries@suse.de>
13255         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
13256         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
13257         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
13258         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
13259         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
13261 2019-01-07  Tom de Vries  <tdevries@suse.de>
13263         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
13265 2019-01-07  Tom de Vries  <tdevries@suse.de>
13267         * omp-offload.c (oacc_get_min_dim): New function.
13268         * omp-offload.h (oacc_get_min_dim): Declare.
13270 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
13272         PR target/88521
13273         * config/i386/i386.c (function_value_ms_64): Return small sturct in
13274         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
13276 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
13278         PR tree-opt/86020
13279         Revert:
13280         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
13282         * ipa-inline.c (edge_badness): Use inlined_time instead of
13283         inline_summaries->get.
13285 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
13287         * opts.c (enable_fdo_optimizations): Enable
13288         version-loops-for-strides, loop-interchange, unrol-and-jam
13289         and tree-loop-distribution.
13290         * invoke.texi: Document newly enabled options.
13292 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
13294         * doc/invoke.texi (max-inline-insns-small): New parameters.
13295         * ipa-inline.c (want_early_inline_function_p): simplify.
13296         (want_inline_small_function_p): Fix pasto from previous patch;
13297         use max-inline-insns-small bound.
13298         * params.def (max-inline-insns-small): New param.
13299         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
13300         variables correctly.
13302 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
13304         * doc/invoke.texi: Document max-inline-insns-size,
13305         uninlined-function-insns, uninlined-function-time,
13306         uninlined-thunk-insns and uninlined-thunk-time.
13307         * params.def: Add max-inline-insns-size,
13308         uninlined-function-insns, uninlined-function-time,
13309         uninlined-thunk-insns and uninlined-thunk-time.
13310         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
13311         new parameters.
13312         * ipa-inline.c (can_inline_edge_by_limits_p,
13313         want_inline_small_function_p): Use new parameters.
13315 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
13317         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
13319 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
13321         PR middle-end/82564
13322         PR target/88620
13323         * expr.c (expand_assignment): For calls returning VLA structures
13324         if to_rtx is not a MEM, force it into a stack temporary.
13326         PR debug/88635
13327         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
13328         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
13329         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
13330         subexpressions of both operands.
13331         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
13332         subrtxes are CONSTANT_P.
13333         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
13334         2018-11-09 changes.
13336 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
13338         * params.def (hot-bb-count-ws-permille): Set to 990.
13340 2019-01-04  Martin Sebor  <msebor@redhat.com>
13342         PR c/88546
13343         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
13344         leaf.
13346 2019-01-04  Martin Sebor  <msebor@redhat.com>
13348         PR c/88363
13349         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
13351 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
13353         * gdbinit.in: Turn off pagination for the skip commands, restore
13354         it to previous state afterwards.
13356 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
13358         PR target/88594
13359         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
13360         of GET_MODE (opN) as modes of the libcall arguments.
13362 2019-01-04  Jan Beulich  <jbeulich@suse.com>
13364         * config/i386/sse.md
13365         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
13366         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
13367         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
13368         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
13369         avx512f_vmcmp<mode>3<round_saeonly_name>,
13370         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
13371         avx512f_maskcmp<mode>3,
13372         <avx512>_cvt<ssemodesuffix>2mask<mode>,
13373         <avx512>_cvt<ssemodesuffix>2mask<mode>,
13374         *<avx512>_cvtmask2<ssemodesuffix><mode>,
13375         *<avx512>_cvtmask2<ssemodesuffix><mode>,
13376         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
13377         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
13378         <avx512>_gt<mode>3<mask_scalar_merge_name>,
13379         <avx512>_gt<mode>3<mask_scalar_merge_name>,
13380         <avx512>_testm<mode>3<mask_scalar_merge_name>,
13381         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
13382         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
13383         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
13384         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
13385         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
13386         avx512cd_maskb_vec_dup<mode>,
13387         avx512cd_maskw_vec_dup<mode>,
13388         avx512dq_fpclass<mode><mask_scalar_merge_name>,
13389         avx512dq_vmfpclass<mode>,
13390         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
13391         instead of =Yk.
13393 2019-01-03  Martin Sebor  <msebor@redhat.com>
13395         PR tree-optimization/88659
13396         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
13398 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
13400         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
13401         unaligned vsx and avoid lxvd2x/stxvd2x.
13402         (gen_lvx_v4si_move): New function.
13404 2019-01-03  Tom de Vries  <tdevries@suse.de>
13406         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
13407         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
13408         function.
13409         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
13411 2019-01-03  Tom de Vries  <tdevries@suse.de>
13413         * config/nvptx/nvptx.c (struct offload_attrs): New.
13414         (populate_offload_attrs): New function.  Factor mask extraction out of
13415         nvptx_reorg.  Add extraction of dimensions.
13416         (nvptx_reorg): Use populate_offload_attrs.
13418 2019-01-03  Tom de Vries  <tdevries@suse.de>
13420         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
13421         cases for oacc_min_dims_p and routine_p.  Add asserts for
13422         oacc_default_dims_p and offload_region_p.
13424 2019-01-03  Tom de Vries  <tdevries@suse.de>
13426         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
13427         factored out of ...
13428         (nvptx_goacc_validate_dims): ... here.
13430 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
13432         PR tree-optimization/85574
13433         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
13434         structure.
13435         (struct ssa_equip_hash_traits): Declare.
13436         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
13438 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
13440         PR debug/88644
13441         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
13442         change it to qualified_type.
13444 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
13446         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
13447         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
13449 2019-01-02  Martin Sebor  <msebor@redhat.com>
13450             Jeff Law  <law@redhat.com>
13452         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
13453         (get_range_strlen_tree): Update appropriately.
13454         (get_range_strlen)
13455         * gimple-fold.h (get_range_strlen): Drop unused last argument.
13457         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
13458         rather than set_range_info.
13459         * tree-ssa-strlen.c (set_strlen_range): Extracted from
13460         maybe_set_strlen_range.  Handle potentially boundary crossing
13461         cases more conservatively.
13462         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
13463         Call set_strlen_range.
13464         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
13466         PR middle-end/88663
13467         * gimple-fold.c (get_range_strlen): Update prototype to no longer
13468         need the flexp argument.
13469         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
13470         from calls to get_range_strlen.  Update comments.  Just update
13471         VAL for an unterminated const char array and let the reset of the
13472         code handle it normally.  No longer try to set *flexp.  Adjust
13473         return value.
13474         (get_range_strlen): Update for the new get_range_strlen API.
13475         (get_maxval_strlen): Similarly.
13476         (gimple_fold_builtin_strlen): Handle update meaning of return value
13477         from get_range_strlen.
13478         * gimple-ssa-sprintf.c (get_string_length): Update for the new
13479         get_range_strlen API.
13481 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
13483         PR lto/88130
13484         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
13485         false at WPA time when body was removed.
13487 2019-01-02  Martin Liska  <mliska@suse.cz>
13489         PR tree-optimization/88650
13490         * predict.c (set_even_probabilities): Calculate probability
13491         remainer only when really used.
13493 2019-01-02  Richard Biener  <rguenther@suse.de>
13495         PR middle-end/88651
13496         * tree-data-ref.c (analyze_subscript_affine_affine): Use
13497         widest_ints when mangling max_stmt_execution results.
13499 2019-01-02  Richard Biener  <rguenther@suse.de>
13501         PR tree-optimization/88621
13502         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
13503         bitfields when canoncalizing.
13505 2019-01-02  Richard Biener  <rguenther@suse.de>
13507         PR target/87545
13508         * config/i386/x86-tune-costs.h (intel_cost): Adjust
13509         cost of cheap SSE instruction.
13511 2019-01-02  Richard Biener  <rguenther@suse.de>
13513         PR ipa/85574
13514         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
13515         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
13516         function.
13517         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
13518         set after UIDs before splitting them.
13520 2019-01-01  Martin Sebor  <msebor@redhat.com>
13521             Jeff Law  <law@redhat.com>
13523         * gimple-fold.c (get_range_strlen_tree): Record if the computed
13524         length is optimistic.  If it is, then arrange to compute the
13525         conservative length as well.
13527         * gimple-fold.h (get_range_strlen): Update prototype.
13528         * builtins.c (check_access): Update call to get_range_strlen to use
13529         c_strlen_data pointer.   Change various variable accesses to instead
13530         pull data from the c_strlen_data structure.
13531         (check_strncat_sizes, expand_builtin_strncat): Likewise.
13532         * calls.c (maybe_warn_nonstring_arg): Likewise.
13533         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
13534         minimum length if maximum lengh is unknown.
13535         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
13536         that used c_strlen, it's no longer needed.  Restructure slightly.
13537         (format_string): Set unlikely range appropriately.
13538         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
13539         formatting issues.
13540         (get_range_strlen):  Accept c_strlen_data pointer for external
13541         call sites as well.  Pass through to call to internal get_range_strlen.
13542         Adjust minlen, maxlen and maxbound as needed.
13543         (get_maxval_strlen): Update comments.
13544         (gimple_fold_builtin_strlen):  Update call to get_range_strlen
13545         to use c_strlen_data pointer.  Change variable accesses to instead
13546         use c_strlen_data data members.
13548         * gimple-fold.c (get_range_strlen): Update prototype.
13549         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
13550         local variables.  Use pdata to return information to caller.
13551         Update calls to get_range_strlen.  Update pdata->maxbound.
13552         (get_range_strlen -- static version): Similarly.
13553         (get_range_strlen -- extern version): Update for internal
13554         get_range_strlen API change.  Convert to external data format.
13555         (get_maxval_strlen): Similarly.
13557 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
13559         * coverage.c (get_coverage_counts): Use current_function_decl.
13560         * profile.c (read_thunk_profile): New function.
13561         (branch_prob): Add THUNK parameter.
13562         * tree-profile.c (tree_profiling): Handle thunks.
13563         * value-prof.c (init_node_map): Handle thunks.
13564         * value-prof.h (branch_prob): Upate prototype.
13565         (read_thunk_profile): Declare.
13567 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
13569         Update copyright years.
13571         * gcc.c (process_command): Update copyright notice dates.
13572         * gcov-dump.c (print_version): Ditto.
13573         * gcov.c (print_version): Ditto.
13574         * gcov-tool.c (print_version): Ditto.
13575         * gengtype.c (create_file): Ditto.
13576         * doc/cpp.texi: Bump @copying's copyright year.
13577         * doc/cppinternals.texi: Ditto.
13578         * doc/gcc.texi: Ditto.
13579         * doc/gccint.texi: Ditto.
13580         * doc/gcov.texi: Ditto.
13581         * doc/install.texi: Ditto.
13582         * doc/invoke.texi: Ditto.
13584 Copyright (C) 2019 Free Software Foundation, Inc.
13586 Copying and distribution of this file, with or without modification,
13587 are permitted in any medium without royalty provided the copyright
13588 notice and this notice are preserved.