re PR rtl-optimization/89490 (char array constant put in string merge section)
[official-gcc.git] / gcc / ChangeLog
blobd7e81db4a12c10e42a815f5abe5c05658d5eb167
1 2019-02-27  Bernd Edlinger  <bernd.edlinger@hotmail.de>
3         PR rtl-optimization/89490
4         * varasm.c (get_block_for_section): Bail out for mergeable sections.
5         (default_use_anchors_for_symbol_p, output_object_block): Assert the
6         block section is not mergeable.
8 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
10         PR target/70341
11         * config/arm/arm.md (arm_casesi_internal): New define_expand.  Rename
12         old define_insn to ...
13         (*arm_casesi_internal): ... this.  Add mode to LABEL_REFs.
14         * config/arm/thumb2.md (thumb2_casesi_internal): New define_expand.
15         Rename old define_insn to ...
16         (*thumb2_casesi_internal): ... this.  Add mode to LABEL_REFs.
17         (thumb2_casesi_internal_pic): New define_expand.  Rename old
18         define_insn to ...
19         (*thumb2_casesi_internal_pic): ... this.  Add mode to LABEL_REFs.
20         * config/aarch64/aarch64.md (casesi): Create the casesi_dispatch
21         MEM manually here, set MEM_READONLY_P and MEM_NOTRAP_P on it.
23 2019-02-27  Richard Biener  <rguenther@suse.de>
25         PR debug/88878
26         * dwarf2out.c (use_debug_types): Disable when in_lto_p.
28 2019-02-27  Richard Biener  <rguenther@suse.de>
30         * passes.c (should_skip_pass_p): Do not skip cgraph-edge
31         building.
33 2019-02-27  Richard Biener  <rguenther@suse.de>
35         PR debug/88878
36         * dwarf2out.c (output_comdat_type_unit): Add early_lto_debug
37         parameter, prefix section name with .gnu.debuglto_ if true.
38         (dwarf2out_finish): Pass false to output_comdat_type_unit.
39         (dwarf2out_early_finish): Pass true to output_comdat_type_unit.
41 2019-02-27  Richard Biener  <rguenther@suse.de>
43         PR debug/89514
44         * dwarf2out.c (size_of_die): Key on AT_ref (a)->comdat_type_p
45         rather than on use_debug_types, doing what output_die does.
46         (value_format): Likewise.
48 2019-02-27  Martin Jambor  <mjambor@suse.cz>
49             Martin Sebor  <msebor@redhat.com>
51         * doc/invoke.texi (Warning Options): Reword description of
52         -Wno-absolute-value.
54 2019-02-27  Jakub Jelinek  <jakub@redhat.com>
56         PR tree-optimization/89280
57         * tree-cfgcleanup.c (maybe_dead_abnormal_edge_p,
58         builtin_setjmp_setup_bb): New functions.
59         (cleanup_control_flow_pre): Ignore maybe_dead_abnormal_edge_p edges.
60         When visiting __builtin_setjmp_setup block, queue in special
61         setjmp_vec vector edges from .ABNORMAL_DISPATCHER to corresponding
62         __builtin_setjmp_receiver.  Remove .ABNORMAL_DISPATCHER basic blocks
63         from visited after the loop if they don't have any visited successor
64         blocks.
66 2018-02-26  Steve Ellcey  <sellcey@marvell.com>
68         * config/aarch64/aarch64.c (aarch64_get_multilib_abi_name):
69         New function.
70         (TARGET_GET_MULTILIB_ABI_NAME): New macro.
72 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
74         PR c++/89507
75         * tree.c (valid_constant_size_p): Deal with size INTEGER_CSTs
76         with types other than sizetype/ssizetype.
78 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
80         * config/sparc/sparc-opts.h (enum processor_type): Rename to...
81         (enum sparc_processor_type): ...this.
82         (enum sparc_code_model_type): New enumeration type.
83         (enum sparc_memory_model_type): Tweak comments.
84         * config/sparc/sparc.opt (mcpu): Adjust to above renaming.
85         (mtune): Likewise.
86         (mcmodel): Use sparc_code_model enumeration and variable.
87         (sparc_code_model): New enumeration.
88         (mdebug): Add Undocumented marker.
89         * config/sparc/sparc.h (enum cmodel): Delete.
90         (sparc_cmodel): Likewise.
91         (TARGET_CM_MEDLOW): Adjust to above renaming.
92         (TARGET_CM_MEDMID): Likewise.
93         (TARGET_CM_MEDANY): Likewise.
94         (TARGET_CM_EMBMEDANY): Likewise.
95         * config/sparc/sparc.c (sparc_cmodel): Delete.
96         (sparc_option_override): Remove string/value mapping support for the
97         code model.  Move code and memory model support to after the handling
98         of target flags.  Do private machine setup last.
99         (sparc_emit_set_symbolic_const64): Use sparc_code_model.
100         (sparc_legitimize_reload_address): Likewise.
101         (sparc_output_mi_thunk): Likewise.
102         * config/sparc/sparc.md (cpu): Adjust comment to above renaming.
104 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
106         PR tree-optimization/89500
107         * tree-ssa-strlen.c (stridx_strlenloc): Adjust comment.
108         (handle_builtin_strlen): Remove noncst_bound variable.  Always
109         optimize strnlen (x, 0) to 0.  Optimize strnlen (x, cst) to
110         cst if the first cst bytes starting at x are known to be non-zero,
111         even if the string is not zero terminated.  Don't try to modify
112         *si for strnlen.  Update strlen_to_stridx only for strlen or if
113         we can prove strnlen returns the same value as strlen would.
115 2019-02-26  Martin Liska  <mliska@suse.cz>
117         * alloc-pool.h (struct pool_usage): Remove extra
118         print_dash_line.
119         * bitmap.h (struct bitmap_usage): Likewise.
120         * ggc-common.c (struct ggc_usage): Likewise.
121         * mem-stats.h (struct mem_usage): Likewise.
122         (mem_alloc_description::dump): Print dash lines
123         here and repeat header at the end of a table report.
124         It's then more readable.
125         * tree-phinodes.c (phinodes_print_statistics): Make
126         horizontal alignment.
127         * tree-ssanames.c (ssanames_print_statistics): Likewise.
128         * vec.c (struct vec_usage): Remove extra print_dash_line.
129         * vec.h (vec_safe_grow_cleared): Pass PASS_MEM_STAT.
131 2019-02-26  Uroš Bizjak  <ubizjak@gmail.com>
133         * doc/extend.texi (__builtin_object_size):
134         Use @pxref instead of @xref inside parenthesis.
135         (__builtin_has_attribute): Add missing comma after @xref.
136         (__builtin_object_size): Ditto.
137         * doc/md.texi (cond_*{mode}): Use @samp instead of @var around op1[i].
138         * fortran/invoke.texi (-ffpe-trap): Use @var for every item
139         in the list.
141 2019-02-26  Jeff Law  <law@redhat.com>
143         PR rtl-optimization/87761
144         * regcprop.c (copyprop_hardreg_forward_1): Use REG_UNUSED notes to
145         detect obviously dead insns and delete them.
147 2019-02-26  Richard Biener  <rguenther@suse.de>
149         PR tree-optimization/89505
150         * tree-ssa-structalias.c (compute_dependence_clique): Make sure
151         to handle restrict pointed-to vars with multiple subvars
152         correctly.
154 2019-02-26  Richard Biener  <rguenther@suse.de>
156         PR tree-optimization/89489
157         * tree-parloops.c (create_loop_fn): Copy over last_clique.
159 2019-02-26  Eric Botcazou  <ebotcazou@adacore.com>
161         * tree-ssa-dom.c (edge_info::derive_equivalences) <BIT_IOR_EXPR>: Fix
162         and move around comment.
163         <BIT_AND_EXPR>: Likewise.
164         <BIT_NOT_EXPR>: Add specific handling for boolean types.
166 2019-02-26  Jakub Jelinek  <jakub@redhat.com>
168         PR target/89474
169         * config/i386/i386.c (remove_partial_avx_dependency): Call
170         df_analyze etc. before creation of the v4sf_const0 pseudo, rather than
171         after changing possibly many instructions to use that pseudo.  Fix up
172         insertion of v4sf_const0 setter at the start of bb.
174 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
176         PR c/80409
177         * doc/extend.texi (Variadic Pointer Args): New section.
179 2019-02-25  Sandra Loosemore  <sandra@codesourcery.com>
180             Martin Sebor  <msebor@gmail.com>
182         * common.opt (Wattribute-alias): Likewise.
183         * doc/invoke.texi (Option Summary): List general form of
184         -Wattribute-alias=.  List positive form of -Wmissing-attributes.
185         (-Wmissing-attributes): Invert entry, rewrite and correct default.
186         Add cross-references.
187         (-Wattribute-alias): Rewrite and correct default.  Mention
188         considered attributes (same as for -Wmissing-attributes).
190 2019-02-25  Paul A. Clarke  <pc@us.ibm.com>
192         * config/rs6000/emmintrin.h (_mm_cvtpd_epi32): Fix big endian.
193         (_mm_cvtpd_ps): Likewise.
194         (_mm_cvttpd_epi32): Likewise.
196         PR target/89338
197         * config/rs6000/xmmintrin.h (_mm_cvtss_f32):  Fix type mismatch.
198         (_mm_cvt_ss2si): Fix type mismatch and 32-bit.
200         PR target/89339
201         * config/rs6000/xmmintrin.h (_mm_movemask_pi8): Fix 32-bit.
203 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
205         PR target/88530
206         * common/config/aarch64/aarch64-common.c
207         (struct aarch64_option_extension): Add is_synthetic.
208         (all_extensions): Use it.
209         (TARGET_OPTION_INIT_STRUCT): Define hook.
210         (struct gcc_targetm_common): Moved to end.
211         (all_extensions_by_on): New.
212         (opt_ext_cmp, typedef opt_ext): New.
213         (aarch64_option_init_struct): New.
214         (aarch64_contains_opt): New.
215         (aarch64_get_extension_string_for_isa_flags): Output smallest set.
216         * config/aarch64/aarch64-option-extensions.def
217         (AARCH64_OPT_EXTENSION): Explicitly include AES and SHA2 in crypto.
218         (fp, simd, crc, lse, fp16, rcpc, rdma, dotprod, aes, sha2, sha3,
219         sm4, fp16fml, sve, profile, rng, memtag, sb, ssbs, predres):
220         Set is_synthetic to false.
221         (crypto): Set is_synthetic to true.
222         * config/aarch64/driver-aarch64.c (AARCH64_OPT_EXTENSION): Add
223         SYNTHETIC.
225 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
227         * config/arm/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
228         vfmlal_high_u32, vfmlsl_high_u32, vfmlalq_low_u32, vfmlslq_low_u32,
229         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
230         vfmlal_lane_high_u32, vfmlalq_laneq_low_u32, vfmlalq_lane_low_u32,
231         vfmlal_laneq_low_u32, vfmlalq_laneq_high_u32, vfmlalq_lane_high_u32,
232         vfmlal_laneq_high_u32, vfmlsl_lane_low_u32, vfmlsl_lane_high_u32,
233         vfmlslq_laneq_low_u32, vfmlslq_lane_low_u32, vfmlsl_laneq_low_u32,
234         vfmlslq_laneq_high_u32, vfmlslq_lane_high_u32, vfmlsl_laneq_high_u32):
235         Rename ...
236         (vfmlal_low_f16, vfmlsl_low_f16, vfmlal_high_f16, vfmlsl_high_f16,
237         vfmlalq_low_f16, vfmlslq_low_f16, vfmlalq_high_f16, vfmlslq_high_f16,
238         vfmlal_lane_low_f16, vfmlal_lane_high_f16, vfmlalq_laneq_low_f16,
239         vfmlalq_lane_low_f16, vfmlal_laneq_low_f16, vfmlalq_laneq_high_f16,
240         vfmlalq_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_lane_low_f16,
241         vfmlsl_lane_high_f16, vfmlslq_laneq_low_f16, vfmlslq_lane_low_f16,
242         vfmlsl_laneq_low_f16, vfmlslq_laneq_high_f16, vfmlslq_lane_high_f16,
243         vfmlsl_laneq_high_f16): ... To this.
244         * config/arm/neon.md: Update comments.
246 2019-02-25  Tamar Christina  <tamar.christina@arm.com>
248         * config/aarch64/arm_neon.h (vfmlal_low_u32, vfmlsl_low_u32,
249         vfmlalq_low_u32, vfmlslq_low_u32, vfmlal_high_u32, vfmlsl_high_u32,
250         vfmlalq_high_u32, vfmlslq_high_u32, vfmlal_lane_low_u32,
251         vfmlsl_lane_low_u32, vfmlal_laneq_low_u32, vfmlsl_laneq_low_u32,
252         vfmlalq_lane_low_u32, vfmlslq_lane_low_u32, vfmlalq_laneq_low_u32,
253         vfmlslq_laneq_low_u32, vfmlal_lane_high_u32, vfmlsl_lane_high_u32,
254         vfmlal_laneq_high_u32, vfmlsl_laneq_high_u32, vfmlalq_lane_high_u32,
255         vfmlslq_lane_high_u32, vfmlalq_laneq_high_u32, vfmlslq_laneq_high_u32):
256         Rename ...
257         (vfmlal_low_f16, vfmlsl_low_f16, vfmlalq_low_f16, vfmlslq_low_f16,
258         vfmlal_high_f16, vfmlsl_high_f16, vfmlalq_high_f16, vfmlslq_high_f16,
259         vfmlal_lane_low_f16, vfmlsl_lane_low_f16, vfmlal_laneq_low_f16,
260         vfmlsl_laneq_low_f16, vfmlalq_lane_low_f16, vfmlslq_lane_low_f16,
261         vfmlalq_laneq_low_f16, vfmlslq_laneq_low_f16, vfmlal_lane_high_f16,
262         vfmlsl_lane_high_f16, vfmlal_laneq_high_f16, vfmlsl_laneq_high_f16,
263         vfmlalq_lane_high_f16, vfmlslq_lane_high_f16, vfmlalq_laneq_high_f16,
264         vfmlslq_laneq_high_f16): ... To this.
266 2019-02-25  Alexander Monakov  <amonakov@ispras.ru>
268         PR rtl-optimization/86096
269         * df-scan.c (df_mw_compare): Do not check mw_reg fields when
270         comparing mw_order values.
272 2019-02-25  Jakub Jelinek  <jakub@redhat.com>
274         PR target/89434
275         * config/arm/arm.md (*subsi3_carryin_const): Use
276         arm_neg_immediate_operand predicate instead of
277         arm_not_immediate_operand, "L" constraint instead of "K" and
278         print it using %n2 instead of %B2.
279         (*subsi3_carryin_const0): New define_insn.
280         (*subsi3_carryin_compare_const): Use const_int_I_operand predicate
281         instead of arm_not_operand and "I" constraint instead of "K" and
282         print it using %n3 instead of %B2.  Instead of using match_dup 2 add
283         another match_operand and in the condition check that it is negation
284         of operands[2].
285         (*subsi3_carryin_compare_const0): New define_ins.
286         (*subdi_di_zesidi): Adjust to use *subsi3_carryin_const0 instead of
287         *subsi3_carryin_const.
288         (*arm_cmpdi_insn): Fix splitting into *subsi3_carryin_compare_const,
289         split into *subsi3_carryin_compare_const0 if the highpart is zero.
291         PR target/89438
292         * config/arm.vfp.md (*negdf2_vfp): Use
293         gen_int_mode (0x80000000, SImode) instead of GEN_INT (0x80000000).
294         * config/arm/neon.md (neon_copysignf<mode>): Likewise.
296 2019-02-24  Jakub Jelinek  <jakub@redhat.com>
298         PR rtl-optimization/89445
299         * simplify-rtx.c (simplify_ternary_operation): Don't use
300         simplify_merge_mask on operands that may trap.
301         * rtlanal.c (may_trap_p_1): Use FLOAT_MODE_P instead of
302         SCALAR_FLOAT_MODE_P checks.  For integral division by zero, if
303         second operand is CONST_VECTOR, check if any element could be zero.
304         Don't expect traps for VEC_{MERGE,SELECT,CONCAT,DUPLICATE} unless
305         their operands can trap.
307 2019-02-23  Martin Sebor  <msebor@redhat.com>
309         * gimple-ssa-sprintf.c (target_strtol): Rename...
310         (target_strtohwi): ...to this.  Handle values up to HOST_WIDE_INT_MAX.
311         (parse_directive): Adjust to name change.  Use HOST_WIDE_INT_MAX to
312         check for range error.
314 2019-02-23  H.J. Lu  <hongjiu.lu@intel.com>
316         PR driver/69471
317         * opts-common.c (prune_options): Also prune joined switches
318         with Negative and RejectNegative.
319         * config/i386/i386.opt (march=): Add Negative(march=).
320         (mtune=): Add Negative(mtune=).
321         * doc/options.texi: Document Negative used together with Joined
322         and RejectNegative.
324 2019-02-22  Martin Sebor  <msebor@redhat.com>
326         * doc/extend.texi (Other Builtins): Add
327         __builtin_is_constant_evaluated.
329 2019-02-22  Richard Biener  <rguenther@suse.de>
331         PR tree-optimization/87609
332         * tree-cfg.c (gimple_duplicate_bb): Only remap inlined cliques.
334 2019-02-22  Jeff Law  <law@redhat.com>
336         PR rtl-optimization/87761
337         * config/mips/mips.md: Add new combiner pattern to recognize
338         a bitfield extraction using (ashiftrt (truncate (ashift (...)))).
340 2019-02-22  Matthew Malcomson  <matthew.malcomson@arm.com>
342         PR target/89324
343         * config/aarch64/aarch64.md: Use aarch64_general_reg predicate on
344         destination register in peepholes generating patterns for ADDS/SUBS.
345         (add<mode>3_compare0,
346         *addsi3_compare0_uxtw, add<mode>3_compareC,
347         add<mode>3_compareV_imm, add<mode>3_compareV,
348         *adds_<optab><ALLX:mode>_<GPI:mode>,
349         *subs_<optab><ALLX:mode>_<GPI:mode>,
350         *adds_<optab><ALLX:mode>_shift_<GPI:mode>,
351         *subs_<optab><ALLX:mode>_shift_<GPI:mode>,
352         *adds_<optab><mode>_multp2, *subs_<optab><mode>_multp2,
353         *sub<mode>3_compare0, *subsi3_compare0_uxtw,
354         sub<mode>3_compare1): Allow stack pointer for source register.
355         * config/aarch64/predicates.md (aarch64_general_reg): New predicate.
357 2019-02-22  Martin Sebor  <msebor@redhat.com>
359         PR tree-optimization/88993
360         PR tree-optimization/88853
361         * gimple-ssa-sprintf.c (sprintf_dom_walker::call_info::is_file_func):
362         New helper.
363         (sprintf_dom_walker::call_info::is_string_func): New helper.
364         (format_directive): Only issue "may exceed" 4095/INT_MAX warnings
365         for formatted string functions.
366         (sprintf_dom_walker::handle_gimple_call): Fix a typo in a comment.
368 2019-02-22  Martin Sebor  <msebor@redhat.com>
370         PR c/89425
371         * c-parser.c (sizeof_ptr_memacc_comptypes): Avoid warning in
372         unreachable subexpressions.
374 2019-02-22  H.J. Lu  <hongjiu.lu@intel.com>
375             Hongtao Liu  <hongtao.liu@intel.com>
376             Sunil K Pandey  <sunil.k.pandey@intel.com>
378         PR target/87007
379         * config/i386/i386-passes.def: Add
380         pass_remove_partial_avx_dependency.
381         * config/i386/i386-protos.h
382         (make_pass_remove_partial_avx_dependency): New.
383         * config/i386/i386.c (make_pass_remove_partial_avx_dependency):
384         New function.
385         (pass_data_remove_partial_avx_dependency): New.
386         (pass_remove_partial_avx_dependency): Likewise.
387         (make_pass_remove_partial_avx_dependency): Likewise.
388         * config/i386/i386.md (avx_partial_xmm_update): New attribute.
389         (*extendsfdf2): Add avx_partial_xmm_update.
390         (truncdfsf2): Likewise.
391         (*float<SWI48:mode><MODEF:mode>2): Likewise.
392         (SF/DF conversion splitters): Disabled for TARGET_AVX.
394 2019-02-22  Aldy Hernandez  <aldyh@redhat.com>
396         PR middle-end/85598
397         * gimple-ssa-sprintf.c (pass_sprintf_length::execute): Enable loop
398         analysis for pass.
400 2019-02-22  Thiago Macieira  <thiago.macieira@intel.com>
402         PR target/89444
403         * config/i386/i386.h (PTA_WESTMERE): Remove PTA_AES.
404         (PTA_SKYLAKE): Add PTA_AES.
405         (PTA_GOLDMONT): Likewise.
407 2019-02-22  Sudakshina Das  <sudi.das@arm.com>
409         * config/aarch64/aarch64.c (aarch64_output_mi_thunk): Add bti
410         instruction if enabled.
411         (aarch64_override_options): Remove reference to return address key.
413 2019-02-22  Richard Biener  <rguenther@suse.de>
415         PR tree-optimization/89440
416         * tree-vect-loop.c (vect_create_epilog_for_reduction): Remove
417         not necessary assert.
419 2019-02-22  Thomas Schwinge  <thomas@codesourcery.com>
421         PR fortran/72741
422         * omp-general.c (oacc_replace_fn_attrib): Mostly split out into...
423         (oacc_replace_fn_attrib_attr): ... this new function.
424         * omp-general.h (oacc_replace_fn_attrib_attr): New prototype.
425         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Revert workaround.
427 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
429         * config/arm/arm-cpus.in (ares): Rename to...
430         (neoverse-n1): ... This.  Add ares as alias.
431         * config/arm/arm-tables.opt: Regenerate.
432         * config/arm/arm-tune.md: Likewise.
433         * doc/invoke.txt (ARM Options): Document neoverse-n1.
435 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
437         * config/aarch64/aarch64-cores.def (neoverse-e1): Define.
438         * config/aarch64/aarch64-tune.md: Regenerate.
439         * doc/invoke.texi (AArch64 Options): Document neoverse-e1 -mcpu option.
441 2019-02-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
443         * config/aarch64/aarch64.c (ares_tunings): Rename to...
444         (neoversen1_tunings): ... This.
445         * config/aarch64/aarch64-cores.def (ares): Change tuning to the above.
446         (neoverse-n1): New CPU.
447         * config/aarch64/aarch64-tune.md: Regenerate.
448         * doc/invoke.txt (AArch64 Options): Document neoverse-n1.
450 2019-02-22  Richard Biener  <rguenther@suse.de>
452         PR middle-end/87609
453         * cfghooks.h (dependence_hash): New typedef.
454         (struct copy_bb_data): New type.
455         (cfg_hooks::duplicate_block): Adjust to take a copy_bb_data argument.
456         (duplicate_block): Likewise.
457         * cfghooks.c (duplicate_block): Pass down copy_bb_data.
458         (copy_bbs): Create and pass down copy_bb_data.
459         * cfgrtl.c (cfg_layout_duplicate_bb): Adjust.
460         (rtl_duplicate_bb): Likewise.
461         * tree-cfg.c (gimple_duplicate_bb): If the copy_bb_data arg is not NULL
462         remap dependence info.
464 2019-02-22  Richard Biener  <rguenther@suse.de>
466         PR tree-optimization/87609
467         * tree-core.h (tree_base): Document special clique values.
468         * tree-inline.c (remap_dependence_clique): Do not use the
469         special clique value of one.
470         (maybe_set_dependence_info): Use clique one.
471         (clear_dependence_clique): New callback.
472         (compute_dependence_clique): Clear clique one from all refs
473         before assigning it (again).
475 2019-02-21  Martin Sebor  <msebor@redhat.com>
477         * doc/extend.texi (__clear_cache): Correct signature.
479 2019-02-21  Ian Lance Taylor  <iant@golang.org>
481         PR go/89170
482         * varasm.c (decode_addr_const): Call lookup_constant_def rather
483         than output_constant_def.
484         (add_constant_to_table): New static function.
485         (output_constant_def): Call add_constant_to_table.
486         (tree_output_constant_def): Likewise.
488 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
490         PR c++/89285
491         * builtins.c (fold_builtin_arith_overflow): If first two args are
492         INTEGER_CSTs, set intres and ovfres to constants rather than calls
493         to ifn.
495 2019-02-21  H.J. Lu  <hongjiu.lu@intel.com>
497         PR target/87412
498         * config/i386/i386.c (ix86_set_indirect_branch_type): Issue an
499         error for -mindirect-branch/-mfunction-return with incompatible
500         -fcf-protection.
502 2019-02-21  Jakub Jelinek  <jakub@redhat.com>
504         PR bootstrap/88714
505         * constraints.md (q): Remove.
506         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use rk constraint
507         instead of q.
509 2019-02-21  Martin Jambor  <mjambor@suse.cz>
511         PR hsa/89302
512         * omp-general.c (omp_extract_for_data): Removed a duplicate call
513         to omp_adjust_for_condition, moved NE_EXPR code_cond processing...
514         (omp_adjust_for_condition): ...here.  Added necessary parameters.
515         * omp-general.h (omp_adjust_for_condition): Updated declaration.
516         * omp-grid.c (grid_attempt_target_gridification): Adjust to pass
517         proper values to new parameters of omp_adjust_for_condition.
519 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
521         PR middle-end/89412
522         * expr.c (expand_assignment): If result is a MEM, use change_address
523         instead of simplify_gen_subreg.
525 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
526             David Malcolm  <dmalcolm@redhat.com>
528         PR middle-end/89091
529         * fold-const.c (decode_field_reference): Return NULL_TREE if
530         lang_hooks.types.type_for_size returns NULL.  Check it before
531         overwriting *exp_.  Use return NULL_TREE instead of return 0.
533 2019-02-20  Jakub Jelinek  <jakub@redhat.com>
535         PR middle-end/88074
536         PR middle-end/89415
537         * toplev.c (do_compile): Double the emin/emax exponents to workaround
538         buggy mpc_norm.
540 2019-02-20  Uroš Bizjak  <ubizjak@gmail.com>
542         PR target/89397
543         * config/i386/i386.c (ix86_atomic_assign_expand_fenv): Check
544         TARGET_SSE in addition to TARGET_SSE_MATH.
546         (ix86_excess_precision): Ditto.
547         (ix86_float_exceptions_rounding_supported_p): Ditto.
548         (use_rsqrt_p): Ditto.
549         * config/i386/sse.md (rsqrt<mode>2): Ditto.
551 2019-02-20  David Malcolm  <dmalcolm@redhat.com>
553         PR c/89410
554         * diagnostic-show-locus.c (layout::calculate_line_spans): Use
555         linenum_arith_t when determining if two adjacent line spans are
556         close enough to merge.
557         (diagnostic_show_locus): Use linenum_arith_t when iterating over
558         lines within each line_span.
560 2019-02-20 Andre Vieira  <andre.simoesdiasvieira@arm.com>
562         PR target/86487
563         * lra-constraints.c(uses_hard_regs_p): Fix handling of
564         paradoxical SUBREGS.
566 2019-02-20  Li Jia He  <helijia@linux.ibm.com>
568         PR target/88100
569         * gcc/config/rs6000/rs6000.c (rs6000_gimple_fold_builtin)
570         <case ALTIVEC_BUILTIN_VSPLTISB, ALTIVEC_BUILTIN_VSPLTISH,
571         ALTIVEC_BUILTIN_VSPLTISW>: Don't convert the operand before
572         range checking it.
574 2019-02-19  Jonathan Wakely  <jwakely@redhat.com>
576         * config/gcn/gcn.c (print_operand): Fix typo.
578 2019-02-19  Richard Biener  <rguenther@suse.de>
580         PR middle-end/88074
581         * toplev.c (do_compile): Initialize mpfr's exponent range
582         based on available float modes.
584 2019-02-19  Eric Botcazou  <ebotcazou@adacore.com>
586         * rtlanal.c (get_initial_register_offset): Fall back to the estimate
587         as long as the epilogue isn't completed.
589 2019-02-18  Martin Sebor  <msebor@redhat.com>
591         * doc/cpp.texi (Conditional syntax): Add __has_attribute,
592         __has_cpp_attribute, and __has_include.
594 2019-02-18  Martin Sebor  <msebor@redhat.com>
596         * doc/invoke.texi (-Wreturn-type): Correct and expand.
598 2019-02-18  Martin Sebor  <msebor@redhat.com>
600         PR middle-end/89294
601         * tree.c (valid_constant_size_p): Avoid assuming size is a constant
602         expression.
603         * tree.h (cst_size_error): Add the cst_size_not_constant enumerator.
605 2019-02-18  Richard Biener  <rguenther@suse.de>
607         PR tree-optimization/89296
608         * tree-ssa-loop-ch.c (ch_base::copy_headers): Restrict setting
609         of no-warning flag to cases that might emit the bogus warning.
611 2019-02-18  Jakub Jelinek  <jakub@redhat.com>
613         PR bootstrap/88714
614         * config/arm/arm.md (*arm_movdi, *movdf_soft_insn): Use "r" instead of
615         "q" constraint.
616         * config/arm/vfp.md (*movdi_vfp): Likewise.
617         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use "r" instead of
618         "q" constraint for operands[0].
620         PR target/89369
621         * config/s390/s390.md (*r<noxa>sbg_<mode>_srl_bitmask,
622         *r<noxa>sbg_<mode>_sll, *r<noxa>sbg_<mode>_srl): Don't construct
623         pattern in a temporary buffer.
624         (*r<noxa>sbg_sidi_srl): Likewise.  Always use 32 as I3 rather
625         than 64-operands[2].
627         PR target/89361
628         * config/s390/s390.c (s390_indirect_branch_attrvalue,
629         s390_indirect_branch_settings): Define unconditionally.
630         (s390_set_current_function): Likewise, but guard the whole body except
631         the s390_indirect_branch_settings call with
632         #if S390_USE_TARGET_ATTRIBUTE.
633         (TARGET_SET_CURRENT_FUNCTION): Redefine unconditionally.
635         * config/s390/s390.md (*<risbg_n>_ior_and_sr_ze,
636         *<risbg_n>_<mode>_ior_and_lshiftrt, *<risbg_n>_sidi_ior_and_lshiftrt):
637         Use HOST_WIDE_INT_M1U instead of ~(0ULL).
638         (*<risbg_n>_and_subregdi_rotr, *<risbg_n>_and_subregdi_rotl): Use
639         HOST_WIDE_INT_1U instead of 1ULL.
640         (*pre_z10_extzv<mode>, *pre_z10_extv<mode>): Change mask type from int
641         to unsigned HOST_WIDE_INT, use HOST_WIDE_INT_1U instead of 1ul.
642         (*insv<mode><clobbercc_or_nocc>_appendbitsleft,
643         z = (x << c) | (y >> d) splitters): Use HOST_WIDE_INT_1U
644         instead of 1UL.
645         (*insv<mode>_mem_reg, *insvdi_mem_reghigh): Use HOST_WIDE_INT_1U
646         instead of 1ul.
648 2019-02-18  Martin Jambor  <mjambor@suse.cz>
650         PR tree-optimization/89209
651         * tree-sra.c (create_access_replacement): New optional parameter
652         reg_tree.  Use it as a type if non-NULL and access type is not of
653         a register type.
654         (get_repl_default_def_ssa_name): New parameter REG_TYPE, pass it
655         to create_access_replacement.
656         (sra_modify_assign): Pass LHS type to get_repl_default_def_ssa_name.
657         Check lacc is non-NULL before attempting to re-create it on the RHS.
659 2019-02-18  Martin Liska  <mliska@suse.cz>
661         PR ipa/89306
662         * cgraph.c (symbol_table::create_edge): Set m_summary_id to -1
663         by default.
664         (symbol_table::free_edge): Recycle m_summary_id.
665         * cgraph.h (get_summary_id): New.
666         (symbol_table::release_symbol): Set m_summary_id to -1
667         by default.
668         (symbol_table::allocate_cgraph_symbol): Recycle m_summary_id.
669         * ipa-fnsummary.c (ipa_fn_summary_t): Switch from
670         function_summary to fast_function_summary.
671         * ipa-fnsummary.h (ipa_fn_summary_t): Likewise.
672         * ipa-pure-const.c (class funct_state_summary_t):
673         Switch from function_summary to fast_function_summary.
674         * ipa-reference.c (class ipa_ref_var_info_summary_t): Likewise.
675         (class ipa_ref_opt_summary_t): Switch from function_summary
676         to fast_function_summary.
677         * symbol-summary.h (class function_summary_base): New class
678         that is created from base of former function_summary.
679         (function_summary_base::unregister_hooks): New.
680         (class function_summary): Inherit from function_summary_base.
681         (class call_summary_base): New class
682         that is created from base of former call_summary.
683         (class call_summary): Inherit from call_summary_base.
684         (struct is_same): New.
685         (class fast_function_summary): New summary class.
686         (class fast_call_summary): New summary class.
687         * vec.h (vec_safe_grow_cleared): New function.
689 2019-02-18  Martin Liska  <mliska@suse.cz>
691         * config/i386/i386.c (ix86_get_multilib_abi_name): New function.
692         (TARGET_GET_MULTILIB_ABI_NAME): New macro defined.
693         * doc/tm.texi: Document new target hook.
694         * doc/tm.texi.in: Likewise.
695         * target.def: Add new target macro.
696         * gcc.c (find_fortran_preinclude_file): Do not search multilib
697         suffixes.
699 2019-02-17  Alan Modra  <amodra@gmail.com>
701         PR target/89271
702         * config/rs6000/rs6000.md (<bd>_<mode> split): Check for an int
703         output reg on add insn.
704         (<bd>tf_<mode> split): Likewise.  Match predicates with insn.
706 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
708         PR target/89372
709         * config/i386/sse.md (ssedoublemode): Remove V4HI.
710         (PMULHRSW): Likewise.
711         (<ssse3_avx2>_pmulhrsw<mode>3): Require TARGET_SSSE3, not
712         TARGET_AVX2.
713         (ssse3_pmulhrswv4hi3): New expander.
715 2019-02-16  H.J. Lu  <hongjiu.lu@intel.com>
717         * config/i386/mmx.md (*vec_extractv2si_zext_mem): Doesn't require
718         MMX.  Add isa attribute.
720 2019-02-16  Jakub Jelinek  <jakub@redhat.com>
722         PR rtl-optimization/66152
723         * builtins.h (c_readstr): Declare.
724         * builtins.c (c_readstr): Remove forward declaration.  Add
725         null_terminated_p argument, if false, read all bytes from the
726         string instead of stopping after '\0'.
727         * expr.c (string_cst_read_str): New function.
728         (store_expr): Use string_cst_read_str instead of
729         builtin_strncpy_read_str.  Try to store by pieces the whole
730         exp_len first, and only if that fails, split it up into
731         store by pieces followed by clear_storage.  Formatting fix.
733         * config/i386/i386.md (*movqi_internal): Remove static from
734         buf variable.  Use output_asm_insn (buf, operands); return "";
735         instead of return buf;.
736         * config/i386/sse.md (<sse>_andnot<mode>3<mask_name>,
737         *<code><mode>3<mask_name>, *andnot<mode>3, *andnottf3, *<code><mode>3,
738         *<code>tf3, <mask_codefor><code><mode>3<mask_name>): Likewise.
740 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
742         * config/sparc/linux.h (ASAN_CC1_SPEC): Define.
743         (CC1_SPEC): Use GNU_USER_TARGET_CC1_SPEC and ASAN_CC1_SPEC.
744         * config/sparc/linux64.h (ASAN_CC1_SPEC): Likewise.
745         (CC1_SPEC): Likewise.
746         * config/sparc/sparc.c (sparc_asan_shadow_offset): Adjust for 64-bit.
748 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
750         * asan.c (asan_emit_stack_protection): Use full-sized mask to align
751         the base address on 64-bit strict-alignment platforms.
753 2019-02-15  H.J. Lu  <hongjiu.lu@intel.com>
755         * config/i386/i386.h (VALID_MMX_REG_MODE): Correct the misplaced ')'.
757 2019-02-15  Uroš Bizjak  <ubizjak@gmail.com>
759         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT_P): New define.
761 2019-02-15  Aaron Sawdey  <acsawdey@linux.ibm.com>
763         PR rtl-optimization/88308
764         * shrink-wrap.c (move_insn_for_shrink_wrap): Fix LABEL_NUSES counts
765         on copied instruction.
767 2019-02-15  Eric Botcazou  <ebotcazou@adacore.com>
769         * final.c (insn_current_reference_address): Replace test on JUMP_P
770         with test on jump_to_label_p.
771         * config/visium/visium-passes.def: New file.
772         * config/visium/t-visium (PASSES_EXTRA): Define.
773         * config/visium/visium-protos.h (make_pass_visium_reorg): Declare.
774         * config/visium/visium.h (TRAMPOLINE_SIZE): Adjust.
775         (TRAMPOLINE_ALIGNMENT): Define.
776         * config/visium/visium.c (visium_option_override): Do not register
777         the machine-specific reorg pass here.
778         (visium_trampoline_init): Align the BRA insn on a 64-bit boundary
779         for the GR6.
780         (output_branch): Adjust threshold for long branch instruction.
781         * config/visium/visium.md (cpu): Move around.
782         (length): Adjust for the GR6.
784 2019-02-15  Richard Biener  <rguenther@suse.de>
785             Jakub Jelinek  <jakub@redhat.com>
787         PR tree-optimization/89278
788         * tree-loop-distribution.c: Include tree-eh.h.
789         (generate_memset_builtin, generate_memcpy_builtin): Call
790         rewrite_to_non_trapping_overflow on builtin->size before passing it
791         to force_gimple_operand_gsi.
793 2019-02-15  Jakub Jelinek  <jakub@redhat.com>
795         PR other/89342
796         * optc-save-gen.awk: Handle optimize_fast like optimize_size or
797         optimize_debug.
798         * opth-gen.awk: Likewise.
800 2019-02-15  Uroš Bizjak  <ubizjak@gmail.com>
802         * config/i386/i386.h (TARGET_SUBTARGET64_ISA_DEFAULT):
803         Enable MMX, SSE and SSE2 by default.
804         * config/i386/i386.c (ix86_option_override_internal): Do not
805         explicitly set MMX, SSE and SSE2 flags for TARGET_64BIT here.
807 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
809         PR rtl-optimization/89354
810         * combine.c (make_extraction): Punt if extraction_mode is narrower
811         than len bits.
813 2019-02-14  Maya Rashish  <coypu@sdf.org>
815         * config.gcc (*-*-netbsd*): Add netbsd-d.o.
816         * config/netbsd-d.c: New file.
817         * config/t-netbsd: Add netbsd-d.o
819 2018-02-14  Steve Ellcey  <sellcey@marvell.com>
821         * config/aarch64/aarch64.c (aarch64_attribute_table): Change
822         affects_type_identity to true for aarch64_vector_pcs.
823         (aarch64_comp_type_attributes): New function.
824         (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
826 2019-02-14  Tamar Christina  <tamar.christina@arm.com>
828         PR target/88850
829         * config/arm/iterators.md (ANY64): Add V4HF.
831 2019-02-14  Martin Liska  <mliska@suse.cz>
833         PR rtl-optimization/89242
834         * dce.c (delete_unmarked_insns): Call free_dominance_info we
835         process a transformation.
837 2019-02-14  Jakub Jelinek  <jakub@redhat.com>
839         PR tree-optimization/89314
840         * fold-const.c (fold_binary_loc): Cast strlen argument to
841         const char * before dereferencing it.  Formatting fixes.
843         PR middle-end/89284
844         * passes.def: Swap pass_ubsan and pass_early_warn_uninitialized.
846 2019-02-13  Ian Lance Taylor  <iant@golang.org>
848         * optc-save-gen.awk: Set var_opt_hash for initial optimizations
849         and set current index for other optimizations.
851 2019-02-13  Uroš Bizjak  <ubizjak@gmail.com>
853         * config/i386/sse.md (vec_set<VI4F_256_512:mode>_0): Use
854         nonimmediate_operand as operand 2 predicate.
855         (vec_set<VF2_512_256:mode>_0): Ditto.
856         (vec_set<VI8_AVX_AVX512F:mode>_0): Ditto.
857         (*vec_concatv2si): Remove alternative 2.
858         (*vec_concatv4si_0): Use vm constraint for alternative 0.
859         (*vec_concatv4si_0): Remove preferred_for_speed attribute.
860         (vec_concatv2di): Split alternatives 4,5,6 to ...
861         (*vec_concatv2di_0) ... new pattern.
863 2019-02-13  Wilco Dijkstra  <wdijkstr@arm.com>
865         PR target/89190
866         * config/arm/arm.c (ldm_stm_operation_p) Set
867         addr_reg_in_reglist correctly for first register.
868         (load_multiple_sequence): Remove dead base check.
869         (gen_ldm_seq): Correctly set write_back for Thumb-1.
871 2019-02-13  Tamar Christina  <tamar.christina@arm.com>
873         PR target/88847
874         * config/aarch64/aarch64-sve.md (*pred_mov<mode>, pred_mov<mode>):
875         Expose as @aarch64_pred_mov.
876         * config/aarch64/aarch64.c (aarch64_classify_address):
877         Use expand_insn which legitimizes operands.
879 2019-02-13  Martin Liska  <mliska@suse.cz>
881         * builtins.h (expand_builtin_with_bounds): Remove declaration.
882         * calls.c (struct arg_data): Remove special_slot, pointer_arg
883         and pointer_offset fields.
884         (initialize_argument_information): Remove usage of dead
885         fields.
886         * cgraph.h (struct cgraph_thunk_info): Remove
887         add_pointer_bounds_args.
888         * cgraphunit.c (cgraph_node::expand_thunk): Remove usage of dead
889         fields.
890         (cgraph_node::assemble_thunks_and_aliases): Remove usage of dead
891         fields.
892         * config/i386/i386.c (ix86_function_arg_advance): Remove
893         unrelated comment.
894         (struct builtin_isa): Remove leaf_p and nothrow_p fields.
895         (def_builtin):  Remove usage of dead
896         fields.
897         (ix86_add_new_builtins): Likewise.
898         * ipa-fnsummary.c (compute_fn_summary): Likewise.
899         * ipa-icf.c (sem_function::equals_wpa): Likewise.
900         (sem_function::init): Likewise.
901         (sem_variable::merge): Likewise.
902         * ipa-visibility.c (function_and_variable_visibility): Likewise.
903         * ipa.c (symbol_table::remove_unreachable_nodes): Likewise.
904         * lto-cgraph.c (lto_output_node): Likewise.
905         (lto_output_varpool_node): Likewise.
906         (input_node): Likewise.
907         (input_varpool_node): Likewise.
908         * lto-streamer-out.c (lto_output): Likewise.
909         * tree-inline.c (expand_call_inline): Remove usage of
910         assign_stmts.
911         * tree-inline.h (struct copy_body_data): Likewise.
912         * varpool.c (varpool_node::dump): Likewise.
914 2019-02-13  Jakub Jelinek  <jakub@redhat.com>
916         PR middle-end/89303
917         * tree-ssa-structalias.c (set_uids_in_ptset): Or in vi->is_heap_var
918         into pt->vars_contains_escaped_heap instead of setting
919         pt->vars_contains_escaped_heap to it.
921         PR middle-end/89281
922         * optabs.c (prepare_cmp_insn): Use UINTVAL (size) instead of
923         INTVAL (size), compare it to GET_MODE_MASK instead of
924         1 << GET_MODE_BITSIZE.
926         PR target/89290
927         * config/i386/predicates.md (x86_64_immediate_operand): Allow
928         TLS UNSPECs offsetted by signed 32-bit CONST_INT even with
929         -mcmodel=large.
931 2019-02-13  Martin Liska  <mliska@suse.cz>
933         PR lto/88858
934         * cfgrtl.c (remove_barriers_from_footer): New function.
935         (try_redirect_by_replacing_jump): Use it.
936         (cfg_layout_redirect_edge_and_branch): Likewise.
938 2019-02-13  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
940         * config/rs6000/altivec.h (vec_sbox_be, vec_cipher_be,
941         vec_cipherlast_be, vec_ncipher_be, vec_ncipherlast_be): New #defines.
942         * config/rs6000/crypto.md (CR_vqdi): New define_mode_iterator.
943         (crypto_vsbox_<mode>, crypto_<CR_insn>_<mode>): New define_insns.
944         * config/rs6000/rs6000-builtin.def (VSBOX_BE): New BU_CRYPTO_1.
945         (VCIPHER_BE, VCIPHERLAST_BE, VNCIPHER_BE, VNCIPHERLAST_BE):
946         New BU_CRYPTO_2.
947         * config/rs6000/rs6000.c (builtin_function_type)
948         <CRYPTO_BUILTIN_VSBOX_BE, CRYPTO_BUILTIN_VCIPHER_BE,
949         CRYPTO_BUILTIN_VCIPHERLAST_BE, CRYPTO_BUILTIN_VNCIPHER_BE,
950         CRYPTO_BUILTIN_VNCIPHERLAST_BE>: New switch options.
951         * doc/extend.texi (vec_sbox_be, vec_cipher_be, vec_cipherlast_be,
952         vec_ncipher_be, vec_ncipherlast_be): New builtin functions.
954 2019-02-12  Pat Haugen  <pthaugen@us.ibm.com>
956         * doc/invoke.texi (RS/6000 and PowerPC Options): Remove duplicate
957         -maltivec. Delete -maltivec=be and -maltivec=le documentation.
959 2019-02-12  H.J. Lu  <hongjiu.lu@intel.com>
961         PR target/89229
962         * config/i386/i386.md (*movoi_internal_avx): Revert revision
963         268678 and revision 268657.
964         (*movti_internal): Likewise.
966 2019-02-12  Ilya Leoshkevich  <iii@linux.ibm.com>
968         PR target/89233
969         * config/s390/s390.c (s390_decompose_address): Update comment.
970         (s390_check_qrst_address): Reject invalid address forms after
971         LRA.
973 2019-02-12  Martin Liska  <mliska@suse.cz>
975         PR lto/88876
976         * ipa-pure-const.c (propagate_pure_const): Revert hunk as
977         we need default values of funct_state for a function that
978         is not optimized.
980 2019-02-12  Eric Botcazou  <ebotcazou@adacore.com>
982         * asan.c (asan_expand_mark_ifn): Take into account the alignment of
983         the object to pick the size of stores on strict-alignment platforms.
985         * config/sparc/sparc.md (*movsi_insn): Minor tweak.
986         (*movdi_insn_sp32): Likewise.
987         (*movdi_insn_sp64): Likewise.
989 2019-02-12  Jan Hubicka  <hubicka@ucw.cz>
991         PR lto/88677
992         * cgraphunit.c (analyze_functions): Clear READONLY flag for external
993         types that needs constructiong.
994         * tree.h (may_be_aliased): Do not check TYPE_NEEDS_CONSTRUCTING.
996 2019-02-12  Richard Biener  <rguenther@suse.de>
998         PR tree-optimization/89253
999         * tree-ssa-loop-split.c (tree_ssa_split_loops): Check we can
1000         duplicate the loop.
1002 2019-02-11  David Malcolm  <dmalcolm@redhat.com>
1004         PR lto/88147
1005         * input.c (selftest::test_line_offset_overflow): New selftest.
1006         (selftest::input_c_tests): Call it.
1008 2019-02-11  Martin Sebor  <msebor@redhat.com>
1010         PR tree-optimization/88771
1011         * gimple-ssa-warn-restrict.c (pass_wrestrict::gate): Also enable
1012         when -Wstringop-overflow is set.
1013         (builtin_memref::builtin_memref): Adjust excessive upper bound
1014         only when lower bound is not excessive.
1015         (maybe_diag_overlap): Detect and diagnose excessive bounds via
1016         -Wstringop-ovefflow.
1017         (maybe_diag_offset_bounds): Rename...
1018         (maybe_diag_access_bounds): ...to this.
1019         (check_bounds_or_overlap): Adjust for name change above.
1021 2019-02-11  Martin Sebor  <msebor@redhat.com>
1023         PR c++/87996
1024         * builtins.c (max_object_size): Move from here...
1025         * builtins.h (max_object_size): ...and here...
1026         * tree.c (max_object_size): ...to here...
1027         * tree.h (max_object_size): ...and here.
1029 2019-02-11  Bill Schmidt  <wschmidt@linux.ibm.com>
1031         * config/rs6000/rs6000.c (rs6000_gimple_fold_builtin): Shift-right
1032         and shift-left vector built-ins need to include a TRUNC_MOD_EXPR
1033         for correct semantics.
1035 2019-02-11  Alan Modra  <amodra@gmail.com>
1037         * doc/invoke.texi (man page RS/6000 and PowerPC Options): Mention
1038         -mlongcall and -mpltseq.
1039         (RS/6000 and PowerPC Options <-mlongcall>): Mention inline PLT calls.
1040         (RS/6000 and PowerPC Options <-mpltseq>): Document.
1041         * config/rs6000/rs6000.h (TARGET_PLTSEQ): Define.
1042         * config/rs6000/sysv4.opt (mpltseq): New option.
1043         * config/rs6000/sysv4.h (TARGET_PLTSEQ): Redefine.
1044         (SUBTARGET_OVERRIDE_OPTIONS): Error if given -mpltseq when assembler
1045         support is lacking.  Don't allow -mpltseq with -mbss-plt.
1046         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Warn if
1047         -mpltseq given for ELFv1.
1048         * config/rs6000/rs6000.c (rs6000_call_aix): Comment on UNSPEC_PLTSEQ.
1049         Only use UNSPEC_PLTSEQ for inline PLT calls.
1050         (rs6000_call_sysv, rs6000_sibcall_sysv): Expand comments.  Only
1051         use UNSPEC_PLTSEQ for inline PLT calls.
1052         (rs6000_indirect_call_template_1, rs6000_longcall_ref),
1053         (rs6000_call_aix, rs6000_call_sysv, rs6000_sibcall_sysv): Replace
1054         uses of HAVE_AS_PLTSEQ with TARGET_PLTSEQ, simplifying.
1055         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1056         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1057         (pltseq_mtctr_<mode>): Likewise.
1059 2019-02-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
1061         * acinclude.m4 (gcc_AC_INITFINI_ARRAY): Use 8-byte strings with
1062         Solaris ld.
1063         * configure: Regenerate.
1065 2019-02-11  Jakub Jelinek  <jakub@redhat.com>
1067         PR bootstrap/88714
1068         * config/arm/ldrdstrd.md (*arm_ldrd, *arm_strd): Use q constraint
1069         instead of r.
1071 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
1073         * function.c (assign_parm_setup_block): Use the stored
1074         size, not the passed size, when allocating stack-space,
1075         also for a parameter with alignment larger than
1076         MAX_SUPPORTED_STACK_ALIGNMENT.
1078 2019-02-11  Martin Liska  <mliska@suse.cz>
1080         PR ipa/89009
1081         * ipa-cp.c (build_toporder_info): Remove usage of a param.
1082         * ipa-inline.c (inline_small_functions): Likewise.
1083         * ipa-pure-const.c (propagate_pure_const): Likewise.
1084         (propagate_nothrow): Likewise.
1085         * ipa-reference.c (propagate): Likewise.
1086         * ipa-utils.c (struct searchc_env): Remove unused field.
1087         (searchc): Always search across AVAIL_INTERPOSABLE.
1088         (ipa_reduced_postorder): Always allow AVAIL_INTERPOSABLE as
1089         the only called IPA pure const can properly not propagate
1090         across interposable boundary.
1091         * ipa-utils.h (ipa_reduced_postorder): Remove param.
1093 2019-02-11  Chung-Ju Wu  <jasonwucj@gmail.com>
1095         * config/nds32/nds32.md (call_internal, call_value_internal,
1096         sibcall_internal, sibcall_value_internal): Use SImode for mem rtx.
1098 2019-02-11  Hans-Peter Nilsson  <hp@axis.com>
1100         * config/cris/cris.c (cris_preferred_minimum_alignment): Fix name
1101         typo.
1103 2019-02-10  H.J. Lu  <hongjiu.lu@intel.com>
1105         * config/i386/constraints.md (Yd): Replace AVX512BW with AVX512DQ
1106         in comments
1108 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
1110         * config.gcc (with_nds32_lib): Set default --with-nds32-lib correctly.
1112 2019-02-10  Jakub Jelinek  <jakub@redhat.com>
1114         PR tree-optimization/89268
1115         * tree-if-conv.c (version_loop_for_if_conversion): Push to preds only
1116         if preds is non-NULL.
1118 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
1120         PR lto/89272
1121         * tree.c (fld_simplified_type_name): Also keep TYPE_DECL for
1122         polymorphic types.
1124 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
1126         * config/nds32/nds32.md (trap): New pattern.
1128 2019-02-10  Monk Chiang  <sh.chiang04@gmail.com>
1130         * config/nds32/nds32.c (nds32_dwarf_register_span): Refine register
1131         dwarf span.
1133 2019-02-10  Chung-Ju Wu  <jasonwucj@gmail.com>
1135         * config/nds32/nds32-md-auxiliary.c (nds32_spilt_doubleword): Support
1136         to split POST_INC.
1138 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
1140         * ipa-visibility.c (localize_node): Also do not localize
1141         LDPR_PREVAILING_DEF_IRONLY_EXP.
1143 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
1145         PR lto/87957
1146         * tree.c (fld_simplified_type_name): Use DECL_ASSEMBLER_NAME_SET_P
1147         instead of type_with_linkage.
1149 2019-02-09  Jan Hubicka  <hubicka@ucw.cz>
1151         PR ipa/88755
1152         * params.def (uninlined-function-insns, uninlined-function-time,
1153         uninlined-thunk-insns, uninlined-thunk-time): Add artificial upper
1154         bound so we don't get overflows.
1156 2019-02-09  Aaron Sawdey  <acsawdey@linux.ibm.com>
1158         * config/rs6000/rs6000-string.c (expand_compare_loop,
1159         expand_block_compare): Insert REG_BR_PROB notes in inline expansion of
1160         memcmp/strncmp.
1162 2019-02-09  Jakub Jelinek  <jakub@redhat.com>
1164         PR middle-end/89246
1165         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1166         If !node->definition and TYPE_ARG_TYPES is non-NULL, use
1167         TYPE_ARG_TYPES instead of DECL_ARGUMENTS.
1169 2019-02-09  Alan Modra  <amodra@gmail.com>
1171         PR target/88343
1172         * config/rs6000/rs6000.c (save_reg_p): Correct calls_eh_return
1173         case.  Match logic in rs6000_emit_prologue emitting pic_offset_table
1174         setup.
1176 2019-02-08  Vladimir Makarov  <vmakarov@redhat.com>
1178         PR middle-end/88560
1179         * lra-constraints.c (process_alt_operands): Don't increase reject
1180         for memory when offset memory is required.
1182 2019-02-08  Robin Dapp  <rdapp@linux.ibm.com>
1184         * config/s390/vector.md: Implement vector copysign.
1186 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
1188         * expr.c (expand_constructor): Correct indentations.
1190 2019-02-08  Richard Biener  <rguenther@suse.de>
1192         PR tree-optimization/89247
1193         * tree-if-conv.c: Include tree-cfgcleanup.h.
1194         (version_loop_for_if_conversion): Record LOOP_VECTORIZED call.
1195         (tree_if_conversion): Pass through predicate vector.
1196         (pass_if_conversion::execute): Do CFG cleanup and SSA update
1197         inline, see if any if-converted loops we refrece in
1198         LOOP_VECTORIZED calls vanished and fixup.
1199         * tree-if-conv.h (tree_if_conversion): Adjust prototype.
1201 2019-02-08  Ilya Leoshkevich  <iii@linux.ibm.com>
1203         * config/s390/constraints.md (jdd): New constraint.
1205 2019-02-08  H.J. Lu  <hongjiu.lu@intel.com>
1207         PR target/89229
1208         * config/i386/i386.md (*movoi_internal_avx): Set mode to XI for
1209         upper 16 vector registers without TARGET_AVX512VL.
1210         (*movti_internal): Likewise.
1212 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
1214         PR rtl-optimization/89234
1215         * except.c (copy_reg_eh_region_note_forward): Return if note_or_insn
1216         is a NOTE, CODE_LABEL etc. - rtx_insn * other than INSN_P.
1217         (copy_reg_eh_region_note_backward): Likewise.
1219 2019-02-08  Richard Biener  <rguenther@suse.de>
1221         PR middle-end/89223
1222         * tree-data-ref.c (initialize_matrix_A): Fail if constant
1223         doesn't fit in HWI.
1224         (analyze_subscript_affine_affine): Handle failure from
1225         initialize_matrix_A.
1227 2019-02-08  Jakub Jelinek  <jakub@redhat.com>
1229         * cfganal.c (pre_and_rev_post_order_compute_fn): Use fn instead of
1230         cfun everywhere.
1232 2019-02-07  David Malcolm  <dmalcolm@redhat.com>
1234         PR tree-optimization/86637
1235         PR tree-optimization/89235
1236         * tree-vect-loop.c (optimize_mask_stores): Add an
1237         auto_purge_vect_location sentinel to ensure that vect_location is
1238         purged on exit.
1239         * tree-vectorizer.c
1240         (auto_purge_vect_location::~auto_purge_vect_location): New dtor.
1241         (try_vectorize_loop_1): Add an auto_purge_vect_location sentinel
1242         to ensure that vect_location is purged on exit.
1243         (pass_slp_vectorize::execute): Likewise, replacing the manual
1244         reset.
1245         * tree-vectorizer.h (class auto_purge_vect_location): New class.
1247 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1249         * config/aarch64/iterators.md (max_opp): New code_attr.
1250         (USMAX): New code iterator.
1251         * config/aarch64/predicates.md (aarch64_smin): New predicate.
1252         (aarch64_smax): Likewise.
1253         * config/aarch64/aarch64-simd.md (abd<mode>_3): Rename to...
1254         (*aarch64_<su>abd<mode>_3): ... Change RTL representation to
1255         MINUS (MAX MIN).
1257 2019-02-07  H.J. Lu  <hongjiu.lu@intel.com>
1259         PR target/89229
1260         * config/i386/i386.md (*movoi_internal_avx): Set mode to OI
1261         for TARGET_AVX512VL.
1262         (*movti_internal): Set mode to TI for TARGET_AVX512VL.
1264 2019-02-07  Andreas Krebbel  <krebbel@linux.ibm.com>
1266         * config/s390/s390-builtin-types.def: Add new types.
1267         * config/s390/s390-builtins.def: (s390_vec_xl, s390_vec_xld2)
1268         (s390_vec_xlw4): Make the memory operand into a const pointer.
1269         (s390_vec_xld2, s390_vec_xlw4): Add a variant for single precision
1270         float.
1271         * config/s390/s390-c.c (s390_expand_overloaded_builtin): Generate
1272         a new vector type with the alignment of the scalar memory operand.
1274 2019-02-07  Matthew Malcomson  <matthew.malcomson@arm.com>
1275             Jakub Jelinek  <jakub@redhat.com>
1277         PR bootstrap/88714
1278         * config/arm/arm-protos.h (valid_operands_ldrd_strd,
1279         arm_count_ldrdstrd_insns): New declarations.
1280         * config/arm/arm.c (mem_ok_for_ldrd_strd): Remove broken handling of
1281         MINUS.
1282         (valid_operands_ldrd_strd): New function.
1283         (arm_count_ldrdstrd_insns): New function.
1284         * config/arm/ldrdstrd.md: Change peepholes to generate PARALLEL SImode
1285         sets instead of single DImode set and define new insns to match this.
1287 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
1289         * config/aarch64/aarch64-builtins.c (aarch64_fcmla_lane_builtin_data):
1290         Make it a C initializer.
1292 2019-02-07  Tamar Christina  <tamar.christina@arm.com>
1294         PR/target 88850
1295         * config/arm/neon.md (*neon_mov<mode>): Add r -> r case.
1297 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1299         * config/arm/neon.md (neon_<sup>dot<vsi2qi>):
1300         Use neon_dot<q> for type.
1301         (neon_<sup>dot_lane<vsi2qi>): Likewise.
1303 2019-02-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1305         * config/aarch64/aarch64-simd.md (aarch64_<sur>dot<vsi2qi>):
1306         Use neon_dot<q> for type.
1307         (aarch64_<sur>dot_lane<vsi2qi>): Likewise.
1308         (aarch64_<sur>dot_laneq<vsi2qi>): Likewise.
1310 2019-02-06  Vladimir Makarov  <vmakarov@redhat.com>
1312         PR rtl-optimization/89225
1313         * lra-constaints.c (simplify_operand_subreg): Add subreg mode
1314         sizes check.
1316 2019-02-06  Eric Botcazou  <ebotcazou@adacore.com>
1318         * config/i386/i386.c (ix86_expand_prologue): Emit a memory blockage
1319         after restoring registers saved to allocate the frame on Windows.
1321 2019-02-06  Richard Biener  <rguenther@suse.de>
1323         PR tree-optimization/89182
1324         * graphite.h (cached_scalar_evolution_in_region): Declare.
1325         * graphite.c (struct seir_cache_key): New.
1326         (struct sese_scev_hash): Likewise.
1327         (seir_cache): New global.
1328         (cached_scalar_evolution_in_region): New function.
1329         (graphite_transform_loops): Allocate and release seir_cache.
1330         * graphite-isl-ast-to-gimple.c (get_rename_from_scev): Use
1331         cached_scalar_evolution_in_region.
1332         * graphite-scop-detection.c (scop_detection::can_represent_loop):
1333         Simplify.
1334         (scop_detection::graphite_can_represent_expr: Use
1335         cached_scalar_evolution_in_region.
1336         (scop_detection::stmt_simple_for_scop_p): Likewise.
1337         (find_params_in_bb): Likewise.
1338         (gather_bbs::before_dom_children): Likewise.
1339         * graphite-sese-to-poly.c (create_pw_aff_from_tree): Likewise.
1340         (add_loop_constraints): Likewise.
1342 2019-02-06  Jakub Jelinek  <jakub@redhat.com>
1344         PR middle-end/89210
1345         * fold-const-call.c (fold_const_vec_convert): Pass true as last
1346         operand to new_unary_operation only if both element types are integral
1347         and it isn't a widening conversion.  Return NULL_TREE if
1348         new_unary_operation failed.
1350 2019-02-05  Andreas Krebbel  <krebbel@linux.ibm.com>
1352         PR target/88856
1353         * config/s390/s390.md: Remove load and test FP splitter.
1355 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
1357         PR target/89112
1358         * config/rs6000/rs6000-string.c (do_ifelse, expand_cmp_vec_sequence,
1359         expand_compare_loop, expand_block_compare_gpr,
1360         expand_strncmp_align_check, expand_strncmp_gpr_sequence): Insert
1361         REG_BR_PROB notes in inline expansion of memcmp/strncmp. Add
1362         #include "profile-count.h" and "predict.h" for types and functions
1363         needed to work with REG_BR_PROB notes.
1365 2019-02-05  Aaron Sawdey  <acsawdey@linux.ibm.com>
1367         PR target/89112
1368         * config/rs6000/rs6000.md (<bd>tf_<mode>): Generate a local label
1369         for the long branch case.
1371 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
1373         PR target/89188
1374         * dce.c (delete_unmarked_insns): Don't remove no-op moves if they
1375         can throw, non-call exceptions are enabled and we can't delete
1376         dead exceptions or alter cfg.  Set must_clean if
1377         delete_insn_and_edges returns true, don't set it blindly for calls.
1378         Assert that delete_unreachable_blocks is called only if can_alter_cfg.
1380         PR rtl-optimization/89195
1381         * combine.c (make_extraction): For MEMs, don't extract bytes outside
1382         of the original MEM.
1384 2019-02-05  Martin Liska  <mliska@suse.cz>
1386         PR gcov-profile/89000
1387         * gcov.c (function_summary): Remove argument.
1388         (file_summary): New function.
1389         (print_usage): Replace tabs with spaces.
1390         (generate_results): Use new function file_summary.
1392 2019-02-05  Jakub Jelinek  <jakub@redhat.com>
1394         PR target/89186
1395         * optabs.c (prepare_cmp_insn): Pass x and y to
1396         emit_block_comp_via_libcall rather than XEXP (x, 0) and XEXP (y, 0).
1398 2019-02-05  Richard Biener  <rguenther@suse.de>
1400         PR middle-end/89150
1401         * bitmap.h (struct bitmap_obstack): Do not mark GTY.
1402         (struct bitmap_element): Drop chain_prev so we properly recurse on
1403         the prev member, supporting tree views.
1404         (struct bitmap_head): GTY skip the obstack member.
1406 2019-02-04  Alexander Monakov  <amonakov@ispras.ru>
1408         PR c/88698
1409         * doc/extend.texi (Vector Extensions): Add an example of using vector
1410         types together with x86 intrinsics.
1412 2019-02-04  Alan Modra  <amodra@gmail.com>
1414         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1): Increase
1415         str[] size to 160, and comment.
1417 2019-02-04  Alan Modra  <amodra@gmail.com>
1419         * config/rs6000/rs6000.c (rs6000_indirect_call_template_1),
1420         (rs6000_pltseq_template): Guard output of TLS markers with
1421         TARGET_TLS_MARKERS.
1422         (rs6000_longcall_ref, rs6000_call_aix, rs6000_call_sysv),
1423         (rs6000_sibcall_sysv): Ignore TARGET_TLS_MARKERS when deciding
1424         to use inline PLT sequences.
1425         * config/rs6000/rs6000.md (pltseq_tocsave_<mode>),
1426         (pltseq_plt16_ha_<mode>, pltseq_plt16_lo_<mode>),
1427         (pltseq_mtctr_<mode>): Don't test TARGET_TLS_MARKERS in predicate.
1429 2019-02-04  Martin Liska  <mliska@suse.cz>
1431         PR ipa/88985
1432         * ipa-fnsummary.c (estimate_edge_devirt_benefit): Bail
1433         out when ipa_fn_summaries does not contain entry for callee.
1435 2019-02-04  Eric Botcazou  <ebotcazou@adacore.com>
1437         * config/sparc/sparc.h: Remove superfluous blank lines.
1438         * config/sparc/sparc.c (global_offset_table_rtx): Rename into...
1439         (got_register_rtx): ...this.
1440         (sparc_got): Adjust to above renaming.
1441         (sparc_tls_got): Likewise.
1442         (sparc_delegitimize_address): Likewise.
1443         (sparc_output_mi_thunk): Likewise.
1444         (sparc_init_pic_reg): Likewise.
1445         (save_local_or_in_reg_p): Fix test on the GOT register.
1446         (USE_HIDDEN_LINKONCE): Move around.
1447         (get_pc_thunk_name): Likewise.
1448         (gen_load_pcrel_sym): Likewise.
1449         (load_got_register): Likewise.
1451 2019-02-04  Kito Cheng  <kito.cheng@gmail.com>
1453         * config/nds32/linux.h (GLIBC_DYNAMIC_LINKER): Define the naming rule
1454         of the dynamic linker: "ld-linux-nds32[le|be][f].so.1".
1456 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
1458         * config/nds32/nds32.c (nds32_legitimate_address_p): Add TLS model
1459         into consideration.
1461 2019-02-04  Chung-Ju Wu  <jasonwucj@gmail.com>
1463         * config.gcc (with_nds32_lib, glibc):
1464         Remove TARGET_DEFAULT_TLSDESC_TRAMPOLINE=0 setting.
1465         * config/nds32/linux.h (TARGET_DEFAULT_TLSDESC_TRAMPOLINE): Delete.
1466         (NDS32_TLSDESC_TRAMPOLINE_SPEC): Delete.
1468 2019-02-03  Uroš Bizjak  <ubizjak@gmail.com>
1470         PR target/89071
1471         * config/i386/i386.md (*sqrt<mode>2_sse): Add (v,0) alternative.
1472         Do not prefer (v,v) alternative for non-AVX targets and (m,v)
1473         alternative for speed when TARGET_SSE_PARTIAL_REG_DEPENDENCY is set.
1474         (*rcpsf2_sse): Ditto.
1475         (*rsqrtsf2_sse): Ditto.
1476         (sse4_1_round<mode<2): Ditto.
1478 2019-02-03  Richard Biener  <rguenther@suse.de>
1480         PR debug/87295
1481         * dwarf2out.c (copy_ancestor_tree): Register non-stubs as
1482         orig.
1484 2019-02-02  Jakub Jelinek  <jakub@redhat.com>
1486         PR middle-end/87887
1487         * config/i386/i386.c (ix86_simd_clone_compute_vecsize_and_simdlen):
1488         Punt with warning on aggregate return or argument types.  Ignore
1489         type/mode checking for uniform arguments.
1491 2019-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
1493         * combine.c (try_combine): Do not print "Can't combine" messages unless
1494         printing failed combination attempts.
1496 2019-02-01  Martin Jambor  <mjambor@suse.cz>
1498         PR hsa/87863
1499         * omp-grid.c (grid_mark_variable_segment): Set assembler name of group
1500         segment and global segment variables before making them static.
1502 2019-02-01  Martin Jambor  <mjambor@suse.cz>
1504         * omp-grid.c (grid_target_follows_gridifiable_pattern): Guard two
1505         missed optimization dump with dump_enabled_p.
1507 2019-02-01  Richard Biener  <rguenther@suse.de>
1509         PR middle-end/88597
1510         * tree-scalar-evolution.c (analyze_scalar_evolution): Set up
1511         the instantiate cache.
1512         (instantiate_scev_binary): Elide second operand procesing
1513         if equal to the first.
1514         * tree-chrec.c (chrec_contains_symbols): Add visited set.
1515         (chrec_contains_undetermined): Likewise.
1516         (tree_contains_chrecs): Likewise.
1518 2019-02-01  Jan Hubicka  <hubicka@ucw.cz>
1520         * parms.def (MAX_INLINE_INSNS_SINGLE): Reduce from 400 to 200.
1522 2019-02-01  Jakub Jelinek  <jakub@redhat.com>
1524         PR tree-optimization/89143
1525         * wide-int-range.h (wide_int_range_absu): Declare.
1526         * wide-int-range.cc (wide_int_range_absu): New function.
1527         * tree-vrp.c (extract_range_from_unary_expr): Handle ABSU_EXPR.
1529         PR tree-optimization/88107
1530         * tree-cfg.c (find_outermost_region_in_block): Add ALL argument,
1531         instead of assertion that eh_region_outermost is non-NULL, if it
1532         is NULL, set *ALL to true and return NULL.
1533         (move_sese_region_to_fn): Adjust caller, if all is set, call
1534         duplicate_eh_regions with NULL region.
1536 2019-02-01  Richard Biener  <rguenth@suse.de>
1538         PR rtl-optimization/88593
1539         * mode-switching.c (optimize_mode_switching): Free dominators before
1540         calling cleanup_cfg.
1542 2019-02-01  Bin Cheng  <bin.cheng@linux.alibaba.com>
1544         PR tree-optimization/88932
1545         * tree-predcom.c (try_combine_chains): Get loop bbs in dom order.
1547 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
1549         PR middle-end/89137
1550         * omp-low.c (lower_omp_task_reductions): Drop redundant test to avoid
1551         bogus clang warning.
1553 2019-01-31  Uroš Bizjak  <ubizjak@gmail.com>
1555         PR target/89071
1556         * config/i386/i386.md (*extendsfdf2): Split out reg->reg
1557         alternative to avoid partial SSE register stall for TARGET_AVX.
1558         (truncdfsf2): Ditto.
1559         (sse4_1_round<mode>2): Ditto.
1561 2018-01-31  Bill Schmidt  <wschmidt@linux.ibm.com>
1563         PR tree-optimization/89008
1564         * gimple-ssa-strength-reduction.c (slsr_process_mul): Don't
1565         process anything of the form X * 0.
1567 2019-01-31  Richard Biener  <rguenther@suse.de>
1569         PR tree-optimization/89135
1570         * tree-ssa-phiprop.c (pass_phiprop::execute): Skip blocks
1571         with abnormal preds.
1573 2019-01-31  Jakub Jelinek  <jakub@redhat.com>
1575         PR sanitizer/89124
1576         * ipa-inline.c (sanitize_attrs_match_for_inline_p): Allow inlining
1577         always_inline callees into no_sanitize_address callers.
1579 2019-01-31  Richard Biener  <rguenther@suse.de>
1581         PR rtl-optimization/89115
1582         * lra.c (lra_rtx_hash): Properly hash CONST_INT values.
1584 2019-01-30  Martin Sebor  <msebor@redhat.com>
1586         PR other/89106
1587         * doc/extend.texi (cast to a union): Correct and expand.
1589 2019-01-30  Vladimir Makarov  <vmakarov@redhat.com>
1591         PR rtl-optimization/87246
1592         * lra-constraints.c (simplify_operand_subreg): Reload memory
1593         in subreg if the address became invalid.
1595 2019-01-30  Bill Schmidt  <wschmidt@linux.ibm.com>
1597         PR target/87064
1598         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v4sf_scalar):
1599         Disable for little-endian.
1601 2019-01-30  Richard Biener  <rguenther@suse.de>
1603         PR rtl-optimization/89115
1604         * opts.c (default_options_optimization): Reduce
1605         PARAM_MAX_DSE_ACTIVE_LOCAL_STORES by a factor of 10 at -O1.
1606         Make PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP reduction relative
1607         to the default.
1609 2019-01-30  Kelvin Nilsen  <kelvin@gcc.gnu.org>
1611         * config/rs6000/rs6000-c.c (altivec-resolve_overloaded_builtin):
1612         Change handling of ALTIVEC_BUILTIN_VEC_EXTRACT.  Coerce result to
1613         type of vector element when vec_extract is implemented by direct
1614         move.
1616 2019-01-30  Thomas Schwinge  <thomas@codesourcery.com>
1618         * doc/invoke.texi (C Language Options): List "-fopenacc-dim".
1620 2019-01-30  Richard Biener  <rguenther@suse.de>
1622         PR tree-optimization/89111
1623         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Restrict
1624         canonicalization to appropriately sized access types.
1626 2019-01-30  Jakub Jelinek  <jakub@redhat.com>
1628         PR c++/89105
1629         * config/i386/i386.c (ix86_warn_parameter_passing_abi): Don't warn
1630         for arguments to functions that are TU-local and shouldn't be
1631         referenced by assembly.
1633 2019-01-30  Ulrich Drepper  <drepper@redhat.com>
1635         * dumpfile.c (opt_info_switch_p_1): Ignore '-' if it appears
1636         after '='.
1638 2019-01-29  Martin Sebor  <msebor@redhat.com>
1640         PR c/88956
1641         * gimple-fold.c (fold_array_ctor_reference): Avoid zero-length arrays.
1643 2019-01-29  Jakub Jelinek  <jakub@redhat.com>
1645         PR c++/66676
1646         PR ipa/89104
1647         * omp-simd-clone.c (simd_clone_clauses_extract)
1648         <case OMP_CLAUSE_ALIGNED>: Ignore clauses with NULL
1649         OMP_CLAUSE_ALIGNED_ALIGNMENT.
1651 2019-01-29  Vineet Gupta  <vgupta@synopsys.com>
1653         * config.gcc: Force .init_array for ARC.
1655 2019-01-29  Richard Biener  <rguenther@suse.de>
1657         PR debug/87295
1658         * dwarf2out.c (collect_skeleton_dies): New helper.
1659         (copy_decls_for_unworthy_types): Call it.
1660         (build_abbrev_table): Assert we do not try to replace
1661         DW_AT_signature refs with local refs.
1663 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
1665         PR middle-end/89002
1666         * gimplify.c (gimplify_omp_for): When adding OMP_CLAUSE_*_GIMPLE_SEQ
1667         for lastprivate/linear IV, push gimplify context around gimplify_assign
1668         and, if it needed any temporaries, pop it into a gimple bind around the
1669         sequence.
1671 2019-01-28  Bernd Edlinger  <bernd.edlinger@hotmail.de>
1673         * common.opt (-Wattribute-alias): Remove "no-" from name.
1674         Make -Wattribute-alias command line option and
1675         #pragma GCC diagnostic ignored "-Wattribute-alias" work again.
1677 2019-01-28  Jakub Jelinek  <jakub@redhat.com>
1679         PR target/89073
1680         * doc/invoke.texi (-mclwb, -mprfchw, -mrdpid, -mrdseed, -msgx,
1681         -madx, -mhle, -mavx5124fmaps, -mavx512vnni, -mavx5124vnniw): Document
1682         x86 ISA options.
1683         (bmi2): Add missing @opindex.
1684         * doc/extend.texi (x86 target attribute): Move fma4, lwp, ssse3
1685         options alphabetically.  Add missing 3dnow, 3dnowa, adx, avx, avx2,
1686         avx5124fmaps, avx5124vnniw, avx512bitalg, avx512bw, avx512cd,
1687         avx512dq, avx512er, avx512f, avx512ifma, avx512pf, avx512vbmi,
1688         avx512vbmi2, avx512vl, avx512vnni, avx512vpopcntdq, bmi, bmi2,
1689         cldemote, clflushopt, clwb, clzero, crc32, cx16, f16c, fma, fsgsbase,
1690         fxsr, gfni, hle, lzcnt, movbe, movdir64b, movdiri, mwaitx, pconfig,
1691         pku, prefetchwt1, prfchw, ptwrite, rdpid, rdrnd, rdseed, rtm, sahf,
1692         sgx, sha, shstk, tbm, vaes, vpclmulqdq, waitpkg, wbnoinvd, xsave,
1693         xsavec, xsaveopt and xsaves options.
1695 2019-01-28  Richard Biener  <rguenther@suse.de>
1697         PR debug/89076
1698         * dwarf2out.c (gen_subprogram_die): Remove leftover from MPX
1699         support removal.
1701 2019-01-28  Richard Biener  <rguenther@suse.de>
1703         PR tree-optimization/88739
1704         * tree-cfg.c (verify_types_in_gimple_reference): Verify
1705         BIT_FIELD_REFs only are applied to mode-precision operands
1706         when they are integral.
1707         (verify_gimple_assign_ternary): Likewise for BIT_INSERT_EXPR.
1708         * tree-ssa-sccvn.c (vn_reference_lookup_3): Avoid generating
1709         BIT_FIELD_REFs of non-mode-precision integral operands.
1711 2019-01-27  Jakub Jelinek  <jakub@redhat.com>
1713         PR target/87214
1714         * config/i386/sse.md
1715         (<mask_codefor>avx512dq_shuf_<shuffletype>64x2_1<mask_name>,
1716         avx512f_shuf_<shuffletype>64x2_1<mask_name>): Ensure the
1717         first constants in pairs are multiples of 2.  Formatting fixes.
1718         (avx512vl_shuf_<shuffletype>32x4_1<mask_name>,
1719         avx512vl_shuf_<shuffletype>32x4_1<mask_name>): Ensure the
1720         first constants in each quadruple are multiples of 4.  Formatting fixes.
1722 2019-01-26  Martin Jambor  <mjambor@suse.cz>
1724         PR ipa/88933
1725         * tree-inline.c: Include tree-cfgcleanup.h.
1726         (delete_unreachable_blocks_update_callgraph): Move...
1727         * tree-cfgcleanup.c (delete_unreachable_blocks_update_callgraph):
1728         ...here, make externally visible, make second argument bool, adjust
1729         all callers.
1730         * tree-cfgcleanup.c: Include cgraph.h.
1731         * tree-cfgcleanup.h (delete_unreachable_blocks_update_callgraph):
1732         Declare.
1733         * ipa-prop.c: Include tree-cfgcleanup.h.
1734         (ipcp_transform_function): Call
1735         delete_unreachable_blocks_update_callgraph instead of cleaning uo CFG.
1737 2019-01-25  Vladimir Makarov  <vmakarov@redhat.com>
1739         PR rtl-optimization/88846
1740         * ira.c (process_set_for_memref_referenced_p): New.
1741         (memref_referenced_p): Add new param.  Use
1742         process_set_for_memref_referenced_p.  Add new switch cases.
1743         (memref_used_between_p): Pass new arg to memref_referenced_p.
1745 2019-01-25  Richard Earnshaw  <rearnsha@arm.com>
1747         PR target/88469
1748         * config/aarch64/aarch64.c (aarch64_function_arg_alignment): Add new
1749         argument ABI_BREAK.  Set to true if the calculated alignment has
1750         changed in gcc-9.  Check bit-fields for their base type alignment.
1751         (aarch64_layout_arg): Warn if argument passing has changed in gcc-9.
1752         (aarch64_function_arg_boundary): Likewise.
1753         (aarch64_gimplify_va_arg_expr): Likewise.
1755 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
1757         PR middle-end/89037
1758         * varasm.c (output_constructor_bitfield): Use wi::extract_uhwi
1759         instead of accessing TREE_INT_CST_ELT directly.
1761 2019-01-25  Christophe Lyon  <christophe.lyon@linaro.org>
1763         * doc/sourcebuild.texi (Environment attributes): Add fenv and
1764         fenv_exceptions description.
1766 2019-01-25  Wilco Dijkstra  <wdijkstr@arm.com>
1768         PR rtl-optimization/87763
1769         * config/aarch64/aarch64.c (aarch64_select_cc_mode):
1770         Allow SUBREG when matching CC_NZmode compare.
1772 2019-01-25  Richard Biener  <rguenther@suse.de>
1774         PR tree-optimization/89049
1775         * tree-vect-loop.c (vect_compute_single_scalar_iteration_cost):
1776         Look at the pattern stmt to determine if the stmt is vectorized.
1778 2019-01-25  Richard Sandiford  <richard.sandiford@arm.com>
1780         * config/aarch64/aarch64-sve.md (*pred_mov<mode>)
1781         (pred_mov<mode>): Handle all-register forms using both a new
1782         alternative and a split.
1784 2019-01-25  Richard Biener  <rguenther@suse.de>
1786         PR tree-optimization/86865
1787         * graphite-scop-detection.c (scop_detection::can_represent_loop):
1788         Reject non-do-while loops.
1790 2019-01-24  Peter Bergner  <bergner@linux.ibm.com>
1792         * config/rs6000/altivec.md (build_vector_mask_for_load): Use MEM_P.
1793         * config/rs6000/constraints.md (Q constraint): Use REG_P.
1794         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Use SYMBOL_REF_P.
1795         * config/rs6000/freebsd64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1796         SYMBOL_REF_P, CONST_INT_P and CONST_DOUBLE_P.
1797         * config/rs6000/linux64.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1798         * config/rs6000/predicates.md (altivec_register_operand, vint_operand,
1799         vsx_register_operand, vsx_reg_sfsubreg_ok, vfloat_operand,
1800         vlogical_operand, gpc_reg_operand, int_reg_operand,
1801         int_reg_operand_not_pseudo): Use SUBREG_P and HARD_REGISTER_P.
1802         (ca_operand, base_reg_operand, htm_spr_reg_operand, cc_reg_operand,
1803         cc_reg_not_cr0_operand, input_operand): Use SUBREG_P.
1804         (save_world_operation, restore_world_operation, lmw_operation,
1805         stmw_operation): Use MEM_P and REG_P.
1806         (tie_operand): Use MEM_P.
1807         (vrsave_operation, crsave_operation): Use REG_P.
1808         (mfcr_operation, mtcrf_operation): Use REG_P and CONST_INT_P.
1809         (fpr_reg_operand): Use SUBREG_P and HARD_REGISTER_NUM_P.
1810         (quad_int_reg_operand): Use HARD_REGISTER_NUM_P.
1811         (call_operand): Use HARD_REGISTER_P.
1812         (indexed_or_indirect_operand, altivec_indexed_or_indirect_operand):
1813         Use CONST_INT_P.
1814         (lwa_operand): Use SUBREG_P, REG_P and CONST_INT_P.
1815         * config/rs6000/rs6000-p8swap.c (insn_is_load_p, insn_is_store_p,
1816         quad_aligned_load_p, replace_swapped_aligned_store,
1817         recombine_lvx_pattern, replace_swapped_aligned_load,
1818         recombine_stvx_pattern): Use MEM_P.
1819         (const_load_sequence_p, adjust_vperm, replace_swapped_load_constant):
1820         Use MEM_P and SYMBOL_REF_P.
1821         (rtx_is_swappable_p): Use REG_P and CONST_INT_P.
1822         (insn_is_swappable_p): Use REG_P and MEM_P.
1823         (insn_is_swap_p, (alignment_mask): Use CONST_INT_P.
1824         * config/rs6000/rs6000-string.c (expand_block_clear, expand_block_move):
1825         Use CONST_INT_P.
1826         * config/rs6000/rs6000.c (rs6000_secondary_reload, rs6000_emit_cmove):
1827         Use CONST_DOUBLE_P.
1828         (rs6000_output_move_128bit): Use CONST_DOUBLE_P, CONST_INT_P and
1829         CONST_WIDE_INT_P.
1830         (rs6000_legitimize_address): Use CONST_DOUBLE_P, CONST_INT_P,
1831         CONST_WIDE_INT_P, REG_P and SYMBOL_REF_P.
1832         (rs6000_emit_move): Use CONST_DOUBLE_P, CONST_INT_P, HARD_REGISTER_P,
1833         HARD_REGISTER_NUM_P, MEM_P, REG_P, SUBREG_P, SYMBOL_REF_P and
1834         reg_or_subregno:
1835         (output_toc): Use CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1836         (easy_altivec_constant, rs6000_legitimate_offset_address_p,
1837         rs6000_mode_dependent_address, rs6000_expand_mtfsf_builtin,
1838         rs6000_expand_set_fpscr_rn_builtin, rs6000_expand_set_fpscr_drn_builtin,
1839         rs6000_expand_unop_builtin, INT_P, rs6000_generate_compare,
1840         rs6000_machopic_legitimize_pic_address, rs6000_split_logical_inner,
1841         rs6000_split_logical_di): Use CONST_INT_P.
1842         (rs6000_legitimize_reload_address): Use CONST_INT_P, HARD_REGISTER_P,
1843         REG_P and SYMBOL_REF_P.
1844         (setup_incoming_varargs, rs6000_rtx_costs): Use CONST_INT_P and MEM_P.
1845         (print_operand): Use CONST_INT_P, MEM_P and REG_P.
1846         (virtual_stack_registers_memory_p, rs6000_legitimate_address_p,
1847         mems_ok_for_quad_peep): Use CONST_INT_P and REG_P.
1848         (rs6000_secondary_reload_memory): Use CONST_INT_P and SUBREG_P.
1849         (small_data_operand, print_operand_address): Use CONST_INT_P and
1850         SYMBOL_REF_P.
1851         (split_stack_arg_pointer_used_p): Use HARD_REGISTER_P.
1852         (rs6000_init_hard_regno_mode_ok, direct_move_p):
1853         Use HARD_REGISTER_NUM_P.
1854         (rs6000_secondary_reload_gpr): Use HARD_REGISTER_NUM_P and MEM_P.
1855         (rs6000_secondary_reload_class): Use HARD_REGISTER_NUM_P, REG_P,
1856         SUBREG_P and SYMBOL_REF_P.
1857         (register_to_reg_type, rs6000_secondary_reload_inner): Use SUBREG_P
1858         and HARD_REGISTER_NUM_P.
1859         (rs6000_adjust_vec_address): Use HARD_REGISTER_NUM_P and
1860         reg_or_subregno.
1861         (rs6000_adjust_cost, find_mem_ref): Use MEM_P.
1862         (macho_lo_sum_memory_operand, rs6000_eliminate_indexed_memrefs): Use
1863         MEM_P and REG_P.
1864         (legitimate_indirect_address_p, legitimate_lo_sum_address_p,
1865         registers_ok_for_quad_peep, rs6000_output_function_epilogue,
1866         find_addr_reg): Use REG_P.
1867         (altivec_expand_vec_perm_const): Use REG_P and SUBREG_P.
1868         (rs6000_emit_le_vsx_move): Use SUBREG_P.
1869         (offsettable_ok_by_alignment, constant_pool_expr_p,
1870         legitimate_small_data_p, rs6000_output_dwarf_dtprel,
1871         rs6000_delegitimize_address, rs6000_const_not_ok_for_debug_p,
1872         rs6000_cannot_force_const_mem, rs6000_output_addr_const_extra,
1873         rs6000_assemble_integer, create_TOC_reference,
1874         rs6000_emit_allocate_stack, rs6000_xcoff_encode_section_info,
1875         rs6000_call_aix, rs6000_call_aix): Use SYMBOL_REF_P.
1876         (rs6000_split_vec_extract_var): Use reg_or_subregno.
1877         * config/rs6000/rtems.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Use
1878         CONST_DOUBLE_P, CONST_INT_P and SYMBOL_REF_P.
1879         * config/rs6000/sysv4.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1880         * config/rs6000/xcoff.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Likewise.
1881         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Use SYMBOL_REF_P.
1882         (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Use HARD_REGISTER_NUM_P.
1883         (INT_REG_OK_FOR_INDEX_P, INT_REG_OK_FOR_BASE_P): Use HARD_REGISTER_P.
1884         (CONSTANT_ADDRESS_P): Use CONST_INT_P and SYMBOL_REF_P.
1885         * config/rs6000/rs6000.md (define_expands strlensi, mod<mode>3
1886         and cbranch<mode>4): Use CONST_INT_P.
1887         (multiple define_splits): Use REG_P and SUBREG_P.
1888         (define_expands call, call_value): Use MEM_P.
1889         (define_expands sibcall, sibcall_value): Use CONST_INT_P and  MEM_P.
1890         (define insn *mtcrfsi): Use CONST_INT_P and REG_P.
1891         * config/rs6000/vsx.md (*vsx_le_perm_load_<mode>,
1892         *vsx_le_perm_load_v8hi, *vsx_le_perm_load_v16qi): Use HARD_REGISTER_P
1893         and HARD_REGISTER_NUM_P.
1894         (multiple define_splits): Use HARD_REGISTER_NUM_P.
1896 2019-01-24  Uroš Bizjak  <ubizjak@gmail.com>
1898         PR rtl-optimization/88948
1899         * rtl.h (prepare_copy_insn): New prototype.
1900         * gcse.c (prepare_copy_insn): New function, split out from
1901         process_insert_insn.
1902         (process_insert_insn): Use prepare_copy_insn.
1903         * store-motion.c (replace_store_insn): Use prepare_copy_insn
1904         instead of gen_move_insn.
1906 2019-01-24  Jakub Jelinek  <jakub@redhat.com>
1908         PR debug/89006
1909         * config/i386/i386.c (ix86_pic_register_p): Return true for
1910         UNSPEC_SET_GOT too.
1912         PR tree-optimization/88964
1913         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Also
1914         punt if HONOR_SNANS (chrec).
1916         PR middle-end/89015
1917         * tree-nested.c (convert_nonlocal_reference_stmt,
1918         convert_local_reference_stmt, convert_tramp_reference_stmt,
1919         convert_gimple_call) <case GIMPLE_OMP_TEAMS>: Treat
1920         gimple_omp_teams_host teams stmts like GIMPLE_OMP_PARALLEL
1921         or GIMPLE_OMP_TASK.
1923         PR tree-optimization/89027
1924         * tree-inline.c (add_clobbers_to_eh_landing_pad): Don't add clobbers
1925         for "omp simd array" variables.
1927 2019-01-24  Richard Earnshaw  <rearnsha@arm.com>
1929         PR target/88469
1930         * profile-count.h (profile_count): On ARM systems using GCC 6/7/8
1931         force the alignment of m_val.
1933 2019-01-24  Richard Biener  <rguenther@suse.de>
1935         PR lto/87187
1936         * tree-streamer-out.c (write_ts_decl_common_tree_pointers):
1937         When in "legacy" debug mode make sure to reset self-origins.
1939 2019-01-24  Martin Liska  <mliska@suse.cz>
1941         PR gcov-profile/88994
1942         * gcov-io.c (mangle_path): Do not allocate a bigger buffer,
1943         result will be always smaller or equal to the original.
1944         * gcov.c (mangle_name): Fix else branch where we should
1945         also copy to PTR and shift the pointer.
1947 2019-01-24  Xiong Hu Luo  <luoxhu@linux.vnet.ibm.com>
1949         * tree-ssa-dom.c (test_for_singularity): Fix a comment typo.
1950         * vr-values.c (find_case_label_ranges): Fix a comment typo.
1952 2019-01-23  Bin Cheng  <bin.cheng@arm.com>
1953             Steve Ellcey <sellcey@marvell.com>
1955         PR target/85711
1956         * recog.c (address_operand): Return false on wrong mode for address.
1957         (constrain_operands): Check for mode with 'p' constraint.
1959 2019-01-23  Uroš Bizjak  <ubizjak@gmail.com>
1961         PR target/88998
1962         * config/i386/sse.md (sse2_cvtpi2pd): Add SSE alternatives.
1963         Disparage MMX alternative.
1964         (sse2_cvtpd2pi): Ditto.
1965         (sse2_cvttpd2pi): Ditto.
1967 2019-01-23  David Malcolm  <dmalcolm@redhat.com>
1969         PR driver/89014
1970         * config/aarch64/driver-aarch64.c (host_detect_local_cpu): Fix
1971         use-after-free of the result of
1972         aarch64_get_extension_string_for_isa_flags.
1974 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
1976         PR c/44715
1977         * doc/extend.texi: Document break and continue behavior in
1978         statement expressions.
1980 2019-01-23  Richard Biener  <rguenther@suse.de>
1982         PR tree-optimization/89008
1983         * tree-ssa-reassoc.c (eliminate_using_constants): For * 0 do
1984         not leave another stray operand.
1986 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
1988         * BASE-VER: Bump to 9.0.1.
1990 2019-01-23  Eric Botcazou  <ebotcazou@adacore.com>
1992         * cgraphunit.c (cgraph_node::expand_thunk): When expanding a GIMPLE
1993         thunk that returns by reference, use the type of the return object
1994         of the thunk instead of that of the alias to build the dereference.
1996 2019-01-23  Vineet Gupta  <vgupta@synopsys.com>
1998         * config/arc/atomic.md: Add operand to DMB instruction.
2000 2019-01-23  Jakub Jelinek  <jakub@redhat.com>
2002         PR tree-optimization/88964
2003         * gimple-loop-interchange.cc (loop_cand::analyze_induction_var): Use
2004         build_zero_cst instead of build_int_cst.  Return false for loop
2005         invariants which honor signed zeros.
2007 2019-01-22  Segher Boessenkool  <segher@kernel.crashing.org>
2009         * doc/invoke.texi (-fsplit-paths): This is enabled by default at -O3.
2011 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
2013         PR target/88965
2014         * config/rs6000/rs6000.c: Include tree-vrp.h and tree-ssanames.h.
2015         (rs6000_gimple_fold_builtin): If MEM_REF address doesn't satisfy
2016         is_gimple_mem_ref_addr predicate, force it into a SSA_NAME first.
2018         PR middle-end/88968
2019         * gimplify.c (gimplify_omp_atomic): Handle bitfield atomics with
2020         non-integral DECL_BIT_FIELD_REPRESENTATIVEs.
2022         PR target/87064
2023         * config/rs6000/vsx.md (*vsx_reduc_<VEC_reduc_name>_v2df_scalar):
2024         Disable for little endian.
2026 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
2028         PR target/88469
2029         * config/arm/arm.c (arm_needs_double_word_align): Check
2030         DECL_BIT_FIELD_TYPE.
2032 2019-01-22  Hongtao Liu  <hongtao.liu@intel.com>
2033             H.J. Lu  <hongjiu.lu@intel.com>
2035         PR target/88909
2036         * config/i386/i386-builtin.def: Add mask2 to all builtin
2037         initializations.  Merge ARGS2 and SPECIAL_ARGS2 into ARGS and
2038         SPECIAL_ARGS.
2039         * config/i386/i386.c (BDESC): Add mask2 to the definition.
2040         (BDESC_FIRST): Likewise.
2041         (define_builtin): Add an argument for mask2.  Updated to handle
2042         both ix86_isa_flags and ix86_isa_flags2.
2043         (define_builtin_const): Likewise.
2044         (define_builtin_pure): Likewise.
2045         (define_builtin2): Deleted.
2046         (define_builtin_const2): Likewise.
2047         (builtin_description): Add a member, mask2.
2048         (bdesc_*): Add mask2 to builtin initializations.
2049         (ix86_init_mmx_sse_builtins): Update calls to def_builtin,
2050         def_builtin_const and def_builtin_pure.  Remove SPECIAL_ARGS2
2051         support.
2052         (ix86_get_builtin_func_type): Remove SPECIAL_ARGS2 support.
2054 2019-01-22  H.J. Lu  <hongjiu.lu@intel.com>
2056         PR target/88954
2057         * config/i386/i386.c (ix86_force_load_from_GOT_p): Also check
2058         noplt attribute.
2060 2019-01-22  Richard Earnshaw  <rearnsha@arm.com>
2062         PR target/88469
2063         * config/arm/arm.c (arm_needs_doubleword_align): Return 2 if a record's
2064         alignment is dominated by a bitfield with 64-bit aligned base type.
2065         (arm_function_arg): Emit a warning if the alignment has changed since
2066         earlier GCC releases.
2067         (arm_function_arg_boundary): Likewise.
2068         (arm_setup_incoming_varargs): Likewise.
2070 2019-01-22  Richard Biener  <rguenther@suse.de>
2072         PR tree-optimization/88862
2073         * graphite-scop-detection.c
2074         (scop_detection::graphite_can_represent_scev): Reject ADDR_EXPR.
2076 2019-01-22  Andrew Stubbs  <ams@codesourcery.com>
2078         * doc/extend.tex (AMD GCN Function Attributes): New section.
2079         * doc/install.texi (amdgcn-unknown-amdhsa): New instructions.
2080         * doc/invoke.texi (AMD GCN Options): New section.
2081         * doc/md.texi (Constraints for Particular Machines): Add AMD GCN.
2083 2019-01-22  Eric Botcazou  <ebotcazou@adacore.com>
2085         * config/sparc/sparc.c (parc_delegitimize_address): Recognize the GOT
2086         register and decoded HIGH/LO_SUM combinations for labels in PIC mode.
2088 2019-01-22  Jakub Jelinek  <jakub@redhat.com>
2090         PR tree-optimization/88044
2091         * tree-ssa-loop-niter.c (number_of_iterations_cond): If condition
2092         is false in the first iteration, but !every_iteration, return false
2093         instead of true with niter->niter zero.
2095         PR rtl-optimization/88904
2096         * cfgcleanup.c (thread_jump): Verify cond2 doesn't mention
2097         any nonequal registers before processing BB_END (b).
2099         PR target/88905
2100         * optabs.c (add_equal_note): Add op0_mode argument, use it instead of
2101         GET_MODE (op0).
2102         (expand_binop_directly, expand_doubleword_clz,
2103         expand_doubleword_popcount, expand_ctz, expand_ffs,
2104         expand_unop_direct, maybe_emit_unop_insn): Adjust callers.
2106         PR rtl-optimization/49429
2107         PR target/49454
2108         PR rtl-optimization/86334
2109         PR target/88906
2110         * expr.c (emit_block_move_hints): Move marking of MEM_EXPRs
2111         addressable from here...
2112         (emit_block_op_via_libcall): ... to here.
2114 2019-01-22  Richard Biener  <rguenther@suse.de>
2116         * tree-vect-loop.c (vect_analyze_loop_operations): Use
2117         auto_vec for cost vector to fix memleak.
2118         (vectorize_fold_left_reduction): Properly gather SLP defs.
2119         (vectorizable_comparison): Do not swap operands to properly
2120         gather SLP defs.
2122 2019-01-22  Alan Modra  <amodra@gmail.com>
2124         PR target/88614
2125         * config/rs6000/predicates.md (unspec_tls): Ensure GOT reg
2126         stays a reg.  Allow a const_int.
2127         * config/rs6000/rs6000-protos.h (rs6000_output_tlsargs): Declare.
2128         * config/rs6000/rs6000.h (IS_V4_FP_ARGS): Define.
2129         (IS_NOMARK_TLSGETADDR): Define.
2130         * config/rs6000/rs6000.c (edit_tls_call_insn): Delete.
2131         (rs6000_output_tlsargs): New function.
2132         (rs6000_legitimize_tls_address): Don't say a !TARGET_TLS_MARKERS
2133         __tls_get_addr call takes an arg.
2134         (rs6000_call_sysv): Generate sysv4 secure plt call pattern here..
2135         * config/rs6000/rs6000.md (call_nonlocal_sysv): ..rather than here,
2136         delete split..
2137         (call_value_nonlocal_sysv): ..or here, delete split.
2138         (tls_gdld_nomark): Delete.
2139         (call_value_indirect_nonlocal_sysv): Use unspec_tls as operand2
2140         predicate.  Call rs6000_output_tlsargs.  Adjust length to suit.
2141         (call_value_nonlocal_sysv): Likewise.
2142         (call_value_nonlocal_sysv_secure): Likewise.
2143         (call_value_nonlocal_aix): Likewise.
2144         (call_value_indirect_aix): Likewise.
2145         (call_value_indirect_elfv2): Likewise.
2146         (call_value_local32, call_value_local64): Disable for no-mark tls.
2147         (call_value_local_aix): Likewise.
2149 2019-01-21  Uroš Bizjak  <ubizjak@gmail.com>
2151         PR target/88938
2152         * config/i386/i386.c (ix86_expand_builtin) [case IX86_BUILTIN_BEXTRI32,
2153         case IX86_BUILTIN_BEXTRI64]: Sanitize operands.
2155 2019-01-21  Michael Ploujnikov  <michael.ploujnikov@oracle.com>
2157         * hash-map-tests.c (test_map_of_strings_to_int): Show how to use
2158         string contents as hash_map keys.
2160 2019-01-21  Bernd Edlinger  <bernd.edlinger@hotmail.de>
2162         PR c/88928
2163         * c-warn.c (check_alignment_of_packed_member): Add a boolean parameter
2164         for rvalue context.  Handle rvalues correctly.  Use min_align_of_type
2165         instead of TYPE_ALIGN.
2166         (check_address_or_pointer_of_packed_member): Handle rvalues coorrectly.
2167         Use min_align_of_type instead of TYPE_ALIGN_UNIT.  Check for NULL
2168         pointer from TYPE_STUB_DECL.
2170 2019-01-21  Richard Biener  <rguenther@suse.de>
2172         PR tree-optimization/88934
2173         * tree-vect-slp.c (vect_mask_constant_operand_p): Always look
2174         at the possibly non-constant operand.
2175         (vect_get_constant_vectors): Adjust.
2177 2019-01-21  H.J. Lu  <hongjiu.lu@intel.com>
2179         PR target/71659
2180         * config/i386/adxintrin.h: Just check _IMMINTRIN_H_INCLUDED.
2181         * config/i386/clflushoptintrin.h: Check _IMMINTRIN_H_INCLUDED
2182         instead of _X86INTRIN_H_INCLUDED.
2183         * onfig/i386/clwbintrin.h: Likewise.
2184         * config/i386/pkuintrin.h: Likewise.
2185         * config/i386/prfchwintrin.h: Likewise.
2186         * config/i386/rdseedintrin.h: Likewise.
2187         * config/i386/wbnoinvdintrin.h: Likewise.
2188         * config/i386/xsavecintrin.h: Likewise.
2189         * config/i386/xsavesintrin.h: Likewise.
2190         * config/i386/fxsrintrin.h: Enable _IMMINTRIN_H_INCLUDED check.
2191         * config/i386/xsaveintrin.h: Likewise.
2192         * config/i386/xsaveoptintrin.h: Likewise.
2193         * config/i386/x86intrin.h: Move "#include" <rdseedintrin.h>,
2194         <prfchwintrin.h>, <fxsrintrin.h>, <xsaveintrin.h>,
2195         <xsaveoptintrin.h>, <adxintrin.h>, <clwbintrin.h>,
2196         <clflushoptintrin.h>, <xsavesintrin.h>, <xsavecintrin.h>,
2197         <wbnoinvdintrin.h> and <pkuintrin.h> to ...
2198         * config/i386/immintrin.h: Here.
2200 2019-01-20  Martin Jambor  <mjambor@suse.cz>
2202         PR ipa/87615
2203         * ipa-prop.h (struct ipa_func_body_info): Replaced field aa_walked
2204         with aa_walk_budget.
2205         * cgraph.h (ipa_polymorphic_call_context::get_dynamic_type): Add
2206         aa_walk_budget_p parameter.
2207         * ipa-fnsummary.c (unmodified_parm_1): New parameter fbi.  Limit AA
2208         walk.  Updated all callers.
2209         (unmodified_parm): New parameter fbi, pass it to unmodified_parm_1.
2210         (eliminated_by_inlining_prob): New parameter fbi, pass it on to
2211         unmodified_parm.
2212         (will_be_nonconstant_expr_predicate): New parameter fbi, removed
2213         parameter info.  Extract info from fbi.  Pass fbi to recursive calls
2214         and to unmodified_parm.
2215         (phi_result_unknown_predicate): New parameter fbi, removed parameter
2216         info, updated call to will_be_nonconstant_expr_predicate.
2217         (param_change_prob): New parameter fbi, limit AA walking.
2218         (analyze_function_body): Initialize aa_walk_budget in fbi.  Update
2219         calls to various above functions.
2220         * ipa-polymorphic-call.c (get_dynamic_type): Add aa_walk_budget_p
2221         parameter.  Use it to limit AA walking.
2222         * ipa-prop.c (detect_type_change_from_memory_writes): New parameter
2223         fbi, limit AA walk.
2224         (detect_type_change): New parameter fbi, pass it on to
2225         detect_type_change_from_memory_writes.
2226         (detect_type_change_ssa): Likewise.
2227         (aa_overwalked): Removed.
2228         (parm_preserved_before_stmt_p): Assume fbi is never NULL, stream line
2229         accordingly, adjust to the neew AA limiting scheme.
2230         (parm_ref_data_preserved_p): Likewise.
2231         (ipa_compute_jump_functions_for_edge): Adjust call to
2232         get_dynamic_type.
2233         (ipa_analyze_call_uses): Likewise.
2234         (ipa_analyze_virtual_call_uses): Pass fbi to detect_type_change_ssa.
2235         (ipa_analyze_node): Initialize aa_walk_budget.
2236         (ipcp_transform_function): Likewise.
2237         * tree-ssa-sccvn.c (eliminate_dom_walker::eliminate_stmt): Update call
2238         to get_dynamic_type.
2240 2019-01-19  Jakub Jelinek  <jakub@redhat.com>
2242         * config/aarch64/aarch64.c (aarch64_stack_protect_guard): Move
2243         outside of #if CHECKING_P code.
2245 2019-01-19  Richard Sandiford  <richard.sandiford@arm.com>
2247         * gimple-loop-versioning.cc (loop_versioning::dump_inner_likelihood):
2248         New function, split out from...
2249         (loop_versioning::analyze_stride): ...here.
2250         (loop_versioning::find_per_loop_multiplication): Use gassign.
2251         (loop_versioning::analyze_term_using_scevs): Return a success code.
2252         (loop_versioning::analyze_arbitrary_term): New function.
2253         (loop_versioning::analyze_address_fragment): Use
2254         analyze_arbitrary_term if all else fails.
2256 2019-01-18  Segher Boessenkool  <segher@kernel.crashing.org>
2258         PR target/88892
2259         * config/rs6000/rs6000.md (*movsi_from_df): Allow only register
2260         operands.
2262 2019-01-18  Richard Biener  <rguenther@suse.de>
2264         PR tree-optimization/88903
2265         * tree-vect-stmts.c (vectorizable_shift): Verify we see all
2266         scalar stmts a SLP shift amount is composed of when detecting
2267         shifts by scalars.
2269 2019-01-18  Richard Earnshaw  <rearnsha@arm.com>
2271         PR target/88799
2272         * config/arm/arm-cpus.in (mp): New feature.
2273         (sec): New feature.
2274         (fgroup ARMv7ve): Add mp and sec features.
2275         (arch armv7-a): Add options to allow mp and sec extensions.
2276         (cpu generic-armv7-a): Add options to allow mp and sec extensions.
2277         (cpu cortex-a5, cpu cortex-7, cpu cortex-a9): Add mp and sec
2278         extenstions to the base architecture.
2279         (cpu cortex-a8): Add sec extension to the base architecture.
2280         (cpu marvell-pj4): Add mp and sec extensions to the base architecture.
2281         * config/arm/t-aprofile (MULTILIB_MATCHES): Map all armv7-a arch
2282         variants down to the base v7-a varaint.
2283         * config/arm/t-multilib (v7_a_arch_variants): New variable.
2284         * doc/invoke.texi (ARM Options): Add +mp and +sec to the list
2285         of permitted extensions for -march=armv7-a and for
2286         -mcpu=generic-armv7-a.
2288 2019-01-18  Martin Liska  <mliska@suse.cz>
2290         * params.def: Fix comment.
2291         * tree-profile.c (gimple_init_gcov_profiler): Bump function
2292         name.
2293         (gimple_gen_ic_func_profiler): Likewise.
2295 2019-01-18  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2297         * config/aarch64/aarch64-opts.h (enum stack_protector_guard): New
2298         * config/aarch64/aarch64.c (aarch64_override_options_internal): Handle
2299         and put in error checks for stack protector guard options.
2300         (aarch64_stack_protect_guard): New.
2301         (TARGET_STACK_PROTECT_GUARD): Define.
2302         * config/aarch64/aarch64.md (UNSPEC_SSP_SYSREG): New.
2303         (reg_stack_protect_address<mode>): New.
2304         (stack_protect_set): Adjust for SSP_GLOBAL.
2305         (stack_protect_test): Likewise.
2306         * config/aarch64/aarch64.opt (-mstack-protector-guard-reg): New.
2307         (-mstack-protector-guard): Likewise.
2308         (-mstack-protector-guard-offset): Likewise.
2310 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
2312         PR tree-optimization/86214
2313         * tree-inline.h (struct copy_body_data): Add
2314         add_clobbers_to_eh_landing_pads member.
2315         * tree-inline.c (add_clobbers_to_eh_landing_pad): New function.
2316         (copy_edges_for_bb): Call it if EH edge destination is <
2317         id->add_clobbers_to_eh_landing_pads.  Fix a comment typo.
2318         (expand_call_inline): Set id->add_clobbers_to_eh_landing_pads
2319         if flag_stack_reuse != SR_NONE and clear it afterwards.
2321 2019-01-18  Christophe Lyon  <christophe.lyon@linaro.org>
2323         PR target/85596
2324         * doc/install.texi (with-multilib-list): Document for aarch64.
2326 2019-01-18  Jakub Jelinek  <jakub@redhat.com>
2328         PR target/88734
2329         * config/arm/arm_neon.h: Fix #pragma GCC target syntax - replace
2330         (("..."))) with ("...").
2332 2019-01-18  Sebastian Huber  <sebastian.huber@embedded-brains.de>
2334         * doc/extend.texi (Built-in Functions for Memory Model Aware
2335         Atomic Operations): Document atomic fetch and nand.
2337 2019-01-18  Martin Liska  <mliska@suse.cz>
2338             Richard Biener  <rguenther@suse.de>
2340         PR middle-end/88587
2341         * cgraph.h (create_version_clone_with_body): Add new argument
2342         with attributes.
2343         * cgraphclones.c (cgraph_node::create_version_clone): Add
2344         DECL_ATTRIBUTES to a newly created decl.  And call
2345         valid_attribute_p so that proper cl_target_optimization_node
2346         is set for the newly created declaration.
2347         * multiple_target.c (create_target_clone): Set DECL_ATTRIBUTES
2348         for declaration.
2349         (expand_target_clones): Do not call valid_attribute_p, it must
2350         be already done.
2351         * tree-inline.c (copy_decl_for_dup_finish): Reset mode for
2352         vector types.
2354 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
2356         PR target/88734
2357         * config/aarch64/arm_neon.h: Fix #pragma GCC target syntax - replace
2358         (("..."))) with ("...").  Use arch=armv8.2-a+sha3 instead of
2359         arch=armv8.2-a+crypto for vsha512hq_u64 etc. intrinsics.
2361 2019-01-17  Martin Sebor  <msebor@redhat.com>
2363         PR middle-end/88273
2364         * gimple-ssa-warn-restrict.c (builtin_memref::extend_offset_range):
2365         Handle anti-ranges the same as no range at all.
2367 2018-01-17  Steve Ellcey  <sellcey@cavium.com>
2369         * config/aarch64/aarch64.c (cgraph.h): New include.
2370         (intl.h): New include.
2371         (supported_simd_type): New function.
2372         (currently_supported_simd_type): Ditto.
2373         (aarch64_simd_clone_compute_vecsize_and_simdlen): Ditto.
2374         (aarch64_simd_clone_adjust): Ditto.
2375         (aarch64_simd_clone_usable): Ditto.
2376         (TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN): New macro.
2377         (TARGET_SIMD_CLONE_ADJUST): Ditto.
2378         (TARGET_SIMD_CLONE_USABLE): Ditto.
2379         * config/i386/i386.c (ix86_simd_clone_adjust): Add definition check.
2380         * omp-simd-clone.c (expand_simd_clones): Add targetm.simd_clone.adjust
2381         call.
2383 2019-01-17  Martin Sebor  <msebor@redhat.com>
2385         PR tree-optimization/88800
2386         * gimple-fold.c (gimple_fold_builtin_memory_op): Avoid checking
2387         NO_WARNING bit here.  Avoid folding out-of-bounds calls.
2388         * gimple-ssa-warn-restrict.c (maybe_diag_offset_bounds): Remove
2389         redundant argument.  Add new argument and issue diagnostics under
2390         its control.  Detect out-of-bounds access even with warnings
2391         disabled.
2392         (check_bounds_or_overlap): Change return type.  Add argument.
2393         (wrestrict_dom_walker::check_call): Adjust.
2394         * gimple-ssa-warn-restrict.h (check_bounds_or_overlap): Add argument.
2395         * tree-ssa-strlen.c (handle_builtin_strcpy): Adjust to change in
2396         check_bounds_or_overlap's return value.
2397         (handle_builtin_stxncpy): Same.
2398         (handle_builtin_strcat): Same.
2400 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
2401             Kwok Cheung Yeung  <kcy@codesourcery.com>
2402             Julian Brown  <julian@codesourcery.com>
2403             Tom de Vries  <tom@codesourcery.com>
2405         * doc/sourcebuild.texi: Document dg-add-options sqrt_insn.
2407 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
2409         * doc/sourcebuild.texi: Document dg-require-effective-target
2410         llvm_binutils and offload_gcn.
2412 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
2413             Kwok Cheung Yeung  <kcy@codesourcery.com>
2414             Julian Brown  <julian@codesourcery.com>
2415             Tom de Vries  <tom@codesourcery.com>
2417         * doc/sourcebuild.texi: Document dg-required-effective-target
2418         exceptions.
2420 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
2421             Kwok Cheung Yeung  <kcy@codesourcery.com>
2422             Julian Brown  <julian@codesourcery.com>
2423             Tom de Vries  <tom@codesourcery.com>
2424             Jan Hubicka  <hubicka@ucw.cz>
2425             Martin Jambor  <mjambor@suse.cz>
2427         * config.gcc: Add amdgcn*-*-amdhsa configuration.
2428         * configure.ac: Check for dlopen.
2429         * configure: Regenerate.
2431 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
2432             Kwok Cheung Yeung  <kcy@codesourcery.com>
2433             Julian Brown  <julian@codesourcery.com>
2434             Tom de Vries  <tom@codesourcery.com>
2435             Jan Hubicka  <hubicka@ucw.cz>
2436             Martin Jambor  <mjambor@suse.cz>
2438         * common/config/gcn/gcn-common.c: New file.
2439         * config/gcn/driver-gcn.c: New file.
2440         * config/gcn/gcn-builtins.def: New file.
2441         * config/gcn/gcn-hsa.h: New file.
2442         * config/gcn/gcn-modes.def: New file.
2443         * config/gcn/gcn-opts.h: New file.
2444         * config/gcn/gcn-passes.def: New file.
2445         * config/gcn/gcn-protos.h: New file.
2446         * config/gcn/gcn-run.c: New file.
2447         * config/gcn/gcn-tree.c: New file.
2448         * config/gcn/gcn.c: New file.
2449         * config/gcn/gcn.h: New file.
2450         * config/gcn/gcn.opt: New file.
2451         * config/gcn/t-gcn-hsa: New file.
2453 2019-01-17  Andrew Stubbs  <ams@codesourcery.com>
2454             Kwok Cheung Yeung  <kcy@codesourcery.com>
2455             Julian Brown  <julian@codesourcery.com>
2456             Tom de Vries  <tom@codesourcery.com>
2457             Jan Hubicka  <hubicka@ucw.cz>
2458             Martin Jambor  <mjambor@suse.cz>
2460         * config/gcn/constraints.md: New file.
2461         * config/gcn/gcn-valu.md: New file.
2462         * config/gcn/gcn.md: New file.
2463         * config/gcn/predicates.md: New file.
2465 2019-01-17  Eric Botcazou  <ebotcazou@adacore.com>
2467         * gimple-ssa-isolate-paths.c (stmt_uses_name_in_undefined_way): Replace
2468         flag_non_call_exceptions with cfun->can_throw_non_call_exceptions.
2469         (stmt_uses_0_or_null_in_undefined_way): Likewise.
2470         * tree-ssa-alias.c (same_addr_size_stores_p): Likewise.
2472 2019-01-17  Tamar Christina  <tamar.christina@arm.com>
2474         PR target/88851
2475         * config/aarch64/aarch64.md (STACK_CLASH_SVE_CFA_REGNUM): New.
2476         * config/aarch64/aarch64.c (aarch64_allocate_and_probe_stack_space): Use
2477         it and document registers.
2479 2019-01-17  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2481         * config/aarch64/aarch64.c (ares_tunings): Define.
2482         * config/aarch64/aarch64-cores.def (ares): Use the above.
2484 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
2486         PR target/88794
2487         Revert:
2488         2018-11-06  Wei Xiao  <wei3.xiao@intel.com>
2490         * config/i386/avx512fintrin.h: Update VFIXUPIMM* intrinsics.
2491         (_mm512_fixupimm_round_pd): Update parameters and builtin.
2492         (_mm512_maskz_fixupimm_round_pd): Ditto.
2493         (_mm512_fixupimm_round_ps): Ditto.
2494         (_mm512_maskz_fixupimm_round_ps): Ditto.
2495         (_mm_fixupimm_round_sd): Ditto.
2496         (_mm_maskz_fixupimm_round_sd): Ditto.
2497         (_mm_fixupimm_round_ss): Ditto.
2498         (_mm_maskz_fixupimm_round_ss): Ditto.
2499         (_mm512_fixupimm_pd): Ditto.
2500         (_mm512_maskz_fixupimm_pd): Ditto.
2501         (_mm512_fixupimm_ps): Ditto.
2502         (_mm512_maskz_fixupimm_ps): Ditto.
2503         (_mm_fixupimm_sd): Ditto.
2504         (_mm_maskz_fixupimm_sd): Ditto.
2505         (_mm_fixupimm_ss): Ditto.
2506         (_mm_maskz_fixupimm_ss): Ditto.
2507         (_mm512_mask_fixupimm_round_pd): Update builtin.
2508         (_mm512_mask_fixupimm_round_ps): Ditto.
2509         (_mm_mask_fixupimm_round_sd): Ditto.
2510         (_mm_mask_fixupimm_round_ss): Ditto.
2511         (_mm512_mask_fixupimm_pd): Ditto.
2512         (_mm512_mask_fixupimm_ps): Ditto.
2513         (_mm_mask_fixupimm_sd): Ditto.
2514         (_mm_mask_fixupimm_ss): Ditto.
2515         * config/i386/avx512vlintrin.h:
2516         (_mm256_fixupimm_pd): Update parameters and builtin.
2517         (_mm256_maskz_fixupimm_pd): Ditto.
2518         (_mm256_fixupimm_ps): Ditto.
2519         (_mm256_maskz_fixupimm_ps): Ditto.
2520         (_mm_fixupimm_pd): Ditto.
2521         (_mm_maskz_fixupimm_pd): Ditto.
2522         (_mm_fixupimm_ps): Ditto.
2523         (_mm_maskz_fixupimm_ps): Ditto.
2524         (_mm256_mask_fixupimm_pd): Update builtin.
2525         (_mm256_mask_fixupimm_ps): Ditto.
2526         (_mm_mask_fixupimm_pd): Ditto.
2527         (_mm_mask_fixupimm_ps): Ditto.
2528         * config/i386/i386-builtin-types.def: Add new types and remove useless ones.
2529         * config/i386/i386-builtin.def: Update builtin definitions.
2530         * config/i386/i386.c: Handle new builtin types and remove useless ones.
2531         * config/i386/sse.md: Update VFIXUPIMM* patterns.
2532         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2533         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2534         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Update.
2535         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2536         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2537         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Update.
2538         * config/i386/subst.md:
2539         (round_saeonly_sd_mask_operand4): Add new subst_attr.
2540         (round_saeonly_sd_mask_op4): Ditto.
2541         (round_saeonly_expand_operand5): Ditto.
2542         (round_saeonly_expand): Update.
2544 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
2546         PR target/88794
2547         Revert:
2548         2018-11-12  Wei Xiao  <wei3.xiao@intel.com>
2550         * config/i386/sse.md: Combine VFIXUPIMM* patterns
2551         (<avx512>_fixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2552         (<avx512>_fixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2553         (<avx512>_fixupimm<mode>_mask<round_saeonly_name>): Remove.
2554         (avx512f_sfixupimm<mode>_maskz<round_saeonly_expand_name>): Update.
2555         (avx512f_sfixupimm<mode><sd_maskz_name><round_saeonly_name>): Update.
2556         (avx512f_sfixupimm<mode>_mask<round_saeonly_name>): Remove.
2558 2019-01-17  Wei Xiao  <wei3.xiao@intel.com>
2560         PR target/88794
2561         Revert:
2562         2018-12-15  Jakub Jelinek  <jakub@redhat.com>
2564         PR target/88489
2565         * config/i386/sse.md (UNSPEC_SFIXUPIMM): New unspec enumerator.
2566         (avx512f_sfixupimm<mode><mask_name><round_saeonly_name>): Use it
2567         instead of UNSPEC_FIXUPIMM.
2569 2019-01-17  Richard Biener  <rguenther@suse.de>
2571         PR lto/86736
2572         * dwarf2out.c (want_pubnames): Never generate pubnames sections
2573         and friends for the LTO part of debug info.
2575 2019-01-17  Jakub Jelinek  <jakub@redhat.com>
2577         PR tree-optimization/86214
2578         * cfgexpand.c (add_stack_var_conflict): Don't add any conflicts
2579         if x == y.
2581         PR rtl-optimization/88870
2582         * dce.c (deletable_insn_p): Never delete const/pure calls that can
2583         throw if we can't alter the cfg or delete dead exceptions.
2584         (mark_insn): Don't call find_call_stack_args for such calls.
2586 2019-01-17  Kewen Lin  <linkw@gcc.gnu.org>
2588         * doc/extend.texi: Add four new prototypes for vec_ld and seven new
2589         prototypes for vec_st.
2590         * config/rs6000/rs6000-c.c (altivec_overloaded_builtins): Add entries
2591         for scalar address type variants of altivec_vec_ld/altivec_vec_st,
2592         mainly on signed/unsigned long long and double.
2594 2019-01-16  David Malcolm  <dmalcolm@redhat.com>
2596         PR target/88861
2597         * combine.c (delete_noop_moves): Convert to "bool" return,
2598         returning true if any edges are eliminated.
2599         (combine_instructions): Also return true if delete_noop_moves
2600         returns true.
2602 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
2604         * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Use
2605         correct max nunits for endian swap.
2606         (aarch64_expand_fcmla_builtin): Correct subreg code.
2607         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
2608         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>): Correct
2609         lane endianness.
2611 2019-01-16  Uroš Bizjak  <ubizjak@gmail.com>
2613         * config/alpha/alpha.c (alpha_gimplify_va_arg):
2614         Handle split indirect COMPLEX_TYPE arguments.
2616 2019-01-16  Richard Earnshaw  <rearnsha@arm.com>
2618         PR target/86891
2619         * config/aarch64/aarch64-modes.def: Add comment about how the carry
2620         bit is set by add and compare.
2621         (CC_ADC): New CC_MODE.
2622         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Use variables
2623         to cache the code and mode of X.  Adjust the shape of a CC_Cmode
2624         comparison.  Add detection for CC_ADCmode.
2625         (aarch64_get_condition_code_1): Update code support for CC_Cmode.  Add
2626         CC_ADCmode.
2627         * config/aarch64/aarch64.md (uaddv<mode>4): Use LTU with CCmode.
2628         (uaddvti4): Comparison result is in CC_ADCmode and the condition is GEU.
2629         (add<mode>3_compareC_cconly_imm): Delete.  Merge into...
2630         (add<mode>3_compareC_cconly): ... this.  Restructure the comparison
2631         to eliminate the need for zero-extending the operands.
2632         (add<mode>3_compareC_imm): Delete.  Merge into ...
2633         (add<mode>3_compareC): ... this.  Restructure the comparison to
2634         eliminate the need for zero-extending the operands.
2635         (add<mode>3_carryin): Use LTU for the overflow detection.
2636         (add<mode>3_carryinC): Use CC_ADCmode for the result of the carry out.
2637         Reexpress comparison for overflow.
2638         (add<mode>3_carryinC_zero): Update for change to add<mode>3_carryinC.
2639         (add<mode>3_carryinC): Likewise.
2640         (add<mode>3_carryinV): Use LTU for carry between partials.
2641         * config/aarch64/predicates.md (aarch64_carry_operation): Update
2642         handling of CC_Cmode and add CC_ADCmode.
2643         (aarch64_borrow_operation): Likewise.
2645 2019-01-16  Tamar Christina  <tamar.christina@arm.com>
2647         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): Remove patternmode.
2648         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): Likewise.
2649         * config/arm/neon.md (neon_vcmla_lane<rot><mode>, neon_vcmla_laneq<rot><mode>,
2650         neon_vcmlaq_lane<rot><mode>): Remove endianness conversion.
2652 2019-01-16  Martin Liska  <mliska@suse.cz>
2654         * Makefile.in: Set TOOL_INCLUDE_DIR and NATIVE_SYSTEM_HEADER_DIR
2655         for GCC driver.
2656         * config/gnu-user.h (TARGET_F951_OPTIONS): Add 'finclude%s/' as
2657         a new argument.
2658         * gcc.c (add_sysrooted_hdrs_prefix): New function.
2659         (path_prefix_reset): Move up in the source file.
2660         (find_fortran_preinclude_file): Make complex search for the
2661         fortran header files.
2663 2019-01-15  Nikhil Benesch  <nikhil.benesch@gmail.com>
2665         * godump.c (go_output_typedef): When outputting a typedef, refer
2666         to the underlying type by its name and not its structure.
2668 2019-01-15  David Malcolm  <dmalcolm@redhat.com>
2670         PR c++/88795
2671         * tree.c (build_function_type): Assert that arg_types is not
2672         error_mark_node.
2674 2019-01-15  Richard Sandiford  <richard.sandiford@arm.com>
2676         PR inline-asm/52813
2677         * doc/extend.texi: Document that listing the stack pointer in the
2678         clobber list of an asm is a deprecated feature.
2679         * common.opt (Wdeprecated): Moved from c-family/c.opt.
2680         * cfgexpand.c (asm_clobber_reg_is_valid): Issue a -Wdeprecated
2681         warning instead of an error for clobbers of the stack pointer.
2682         Add a note explaining why.
2684 2019-01-15  Richard Biener  <rguenther@suse.de>
2686         PR debug/88046
2687         * dwarf2out.c (gen_member_die): Do not generate inheritance
2688         DIEs late.
2690 2019-01-15  Richard Biener  <rguenther@suse.de>
2692         PR tree-optimization/88855
2693         * tree-if-conv.c (combine_blocks): Collect
2694         SSA_NAME_OCCURS_IN_ABNORMAL_PHI from propagated out virtuals.
2696 2019-01-15  Tom de Vries  <tdevries@suse.de>
2698         PR target/80547
2699         * config/nvptx/nvptx.c (nvptx_goacc_reduction_init): Handle
2700         lhs == NULL_TREE for gang-level reduction.
2702 2019-01-15  Richard Biener  <rguenther@suse.de>
2703             Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>
2705         PR ipa/88788
2706         * ipa-pure-const.c (malloc_candidate_p_1): Add parameter visited and
2707         return true if SSA_NAME is already marked in visited bitmap.
2708         (malloc_candidate_p): Pass visited to malloc_candidate_p_1.
2710 2019-01-15  Jakub Jelinek  <jakub@redhat.com>
2712         PR tree-optimization/88775
2713         * match.pd (cmp (convert1?@2 addr@0) (convert2? addr@1)): Optimize
2714         equal == 0 equality pointer comparisons some more if compared in
2715         integral types and either one points to an automatic var and the
2716         other to a global, or we can prove at least one points to the middle
2717         or both point to start or both point to end.
2719 2019-01-14  Andi Kleen  <ak@linux.intel.com>
2721         * Makefile.in: Lower autofdo sampling rate by 10x.
2722         * Makefile.tpl: Dito.
2724 2019-01-14  Tom Honermann  <tom@honermann.net>
2726         * defaults.h: Define CHAR8_TYPE.
2728 2019-01-14  Martin Sebor  <msebor@redhat.com>
2730         PR target/88638
2731         * doc/extend.texi (Darwin Format Checks): Clarify.
2733 2019-01-14  Richard Biener  <rguenther@suse.de>
2735         * genmatch.c (dt_simplify::gen_1): Change dumping dependent on
2736         whether we are in (simplify ...) or (match ...) context.
2738 2019-01-14  Jakub Jelinek  <jakub@redhat.com>
2740         PR rtl-optimization/88796
2741         * emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
2742         * cfgexpand.c (stack_protect_prologue): Initialize
2743         crtl->stack_protect_guard_decl.
2744         * function.c (stack_protect_epilogue): Use it instead of calling
2745         targetm.stack_protect_guard again.
2746         * dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
2747         MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
2748         crtl->stack_protect_guard_decl.
2749         * config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
2750         on the returned MEM_EXPR.
2752 2019-01-12  Tom de Vries  <tdevries@suse.de>
2754         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Alow setting
2755         vector length using -fopenacc-dim.
2757 2019-01-12  Tom de Vries  <tdevries@suse.de>
2759         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Take larger vector
2760         lengths into account.
2762 2019-01-12  Svante Signell  <svante.signell@gmail.com>
2764         * config/i386/gnu.h (TARGET_THREAD_SSP_OFFSET): Define.
2765         (TARGET_CAN_SPLIT_STACK): Define.
2766         (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
2768 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
2770         * params.def (inline-unit-growth): Set to 40.
2772 2019-01-12  Jakub Jelinek  <jakub@redhat.com>
2774         * tree-ssa-loop-ivopts.c (find_inv_vars): Fix a comment typo.
2776 2019-01-12  Tom de Vries  <tdevries@suse.de>
2778         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): In offloading
2779         region calling vector-partitionable routine, set default_vector_length
2780         to WARP_SIZE.
2782 2019-01-12  Tom de Vries  <tdevries@suse.de>
2784         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add an use new
2785         variable default_vector_length.
2787 2019-01-12  Tom de Vries  <tdevries@suse.de>
2789         PR middle-end/88703
2790         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Apply defaults
2791         from oacc_default_dims, as oacc_validate_dims would do it, and apply
2792         dimensions limits.
2794 2019-01-12  Tom de Vries  <tdevries@suse.de>
2796         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1)
2797         (nvptx_goacc_validate_dims): Add used parameter.
2798         * doc/tm.texi: Regenerate.
2799         * omp-offload.c (oacc_parse_default_dims, oacc_validate_dims): Add
2800         argument to call to targetm.goacc.validate_dims.
2801         (default_goacc_validate_dims): Add used
2802         parameter.
2803         * target.def (validate_dims): Add used parameter in DEFHOOK.
2804         * targhooks.h (default_goacc_validate_dims): Add used parameter.
2806 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
2808         PR middle-end/85956
2809         PR lto/88733
2810         * tree-inline.h (struct copy_body_data): Add adjust_array_error_bounds
2811         field.
2812         * tree-inline.c (remap_type_1): Formatting fix.  If TYPE_MAX_VALUE of
2813         ARRAY_TYPE's TYPE_DOMAIN is newly error_mark_node, replace it with
2814         a dummy "omp dummy var" variable if id->adjust_array_error_bounds.
2815         * omp-low.c (new_omp_context): Set cb.adjust_array_error_bounds.
2817 2019-01-11  Vladimir Makarov  <vmakarov@redhat.com>
2819         PR rtl-optimization/87305
2820         * lra-assigns.c
2821         (setup_live_pseudos_and_spill_after_risky_transforms): Add code
2822         for little endian pseudos used as paradoxical subreg.
2824 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
2826         PR tree-optimization/88693
2827         * tree-ssa-strlen.c (get_min_string_length): Don't set *full_string_p
2828         for STRING_CSTs that don't contain any NUL characters in the first
2829         TREE_STRING_LENGTH bytes.
2831 2019-01-11  Alan Modra  <amodra@gmail.com>
2833         PR 88777
2834         PR 88614
2835         * genattrtab.c (min_fn): Don't translate values.
2836         (min_attr_value): Return INT_MAX when the value can't be calculated.
2837         Return minimum among any values that can be calculated.
2838         (max_attr_value): Adjust.
2840 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
2842         * Makefile.in (PLUGIN_HEADERS): Add $(INSN_ATTR_H).
2844 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
2846         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2847         (aarch64_hard_regno_call_part_clobbered): Add insn argument.
2848         (aarch64_return_call_with_max_clobbers): New function.
2849         (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New macro.
2850         * config/avr/avr.c (avr_hard_regno_call_part_clobbered): Add insn
2851         argument.
2852         * config/i386/i386.c (ix86_hard_regno_call_part_clobbered): Ditto.
2853         * config/mips/mips.c (mips_hard_regno_call_part_clobbered): Ditto.
2854         * config/rs6000/rs6000.c (rs6000_hard_regno_call_part_clobbered): Ditto.
2855         * config/s390/s390.c (s390_hard_regno_call_part_clobbered): Ditto.
2856         * cselib.c (cselib_process_insn): Add argument to
2857         targetm.hard_regno_call_part_clobbered call.
2858         * ira-conflicts.c (ira_build_conflicts): Ditto.
2859         * ira-costs.c (ira_tune_allocno_costs): Ditto.
2860         * lra-constraints.c (inherit_reload_reg): Ditto.
2861         * lra-int.h (struct lra_reg): Add call_insn field, remove call_p field.
2862         * lra-lives.c (check_pseudos_live_through_calls): Add call_insn
2863         argument.  Call targetm.return_call_with_max_clobbers.
2864         Add argument to targetm.hard_regno_call_part_clobbered call.
2865         (calls_have_same_clobbers_p): New function.
2866         (process_bb_lives): Add call_insn and last_call_insn variables.
2867         Pass call_insn to check_pseudos_live_through_calls.
2868         Modify if stmt to check targetm.return_call_with_max_clobbers.
2869         Update setting of flush variable.
2870         (lra_create_live_ranges_1): Set call_insn to NULL instead of call_p
2871         to false.
2872         * lra.c (initialize_lra_reg_info_element): Set call_insn to NULL.
2873         * regcprop.c (copyprop_hardreg_forward_1): Add argument to
2874         targetm.hard_regno_call_part_clobbered call.
2875         * reginfo.c (choose_hard_reg_mode): Ditto.
2876         * regrename.c (check_new_reg_p): Ditto.
2877         * reload.c (find_equiv_reg): Ditto.
2878         * reload1.c (emit_reload_insns): Ditto.
2879         * sched-deps.c (deps_analyze_insn): Ditto.
2880         * sel-sched.c (init_regs_for_mode): Ditto.
2881         (mark_unavailable_hard_regs): Ditto.
2882         * targhooks.c (default_dwarf_frame_reg_mode): Ditto.
2883         * target.def (hard_regno_call_part_clobbered): Add insn argument.
2884         (return_call_with_max_clobbers): New target function.
2885         * doc/tm.texi: Regenerate.
2886         * doc/tm.texi.in (TARGET_RETURN_CALL_WITH_MAX_CLOBBERS): New hook.
2887         * hooks.c (hook_bool_uint_mode_false): Change to
2888         hook_bool_insn_uint_mode_false.
2889         * hooks.h (hook_bool_uint_mode_false): Ditto.
2891 2019-01-11  Steve Ellcey  <sellcey@marvell.com>
2893         * config/aarch64/aarch64.c (aarch64_simd_call_p): New function.
2894         (aarch64_remove_extra_call_preserved_regs): New function.
2895         (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New macro.
2896         * doc/tm.texi.in (TARGET_REMOVE_EXTRA_CALL_PRESERVED_REGS): New hook.
2897         * doc/tm.texi: Regenerate.
2898         * final.c (get_call_reg_set_usage): Call new hook.
2899         * target.def (remove_extra_call_preserved_regs): New hook.
2900         * targhooks.c (default_remove_extra_call_preserved_regs): New function.
2901         * targhooks.h (default_remove_extra_call_preserved_regs): New function.
2903 2019-01-11  Jakub Jelinek  <jakub@redhat.com>
2905         PR bootstrap/88714
2906         * passes.c (finish_optimization_passes): Call print_combine_total_stats
2907         inside of pass_combine_1 dump rather than pass_profile_1.
2909 2019-01-11  Tom de Vries  <tdevries@suse.de>
2911         * config/nvptx/nvptx.c (PTX_CTA_NUM_BARRIERS, PTX_PER_CTA_BARRIER)
2912         (PTX_NUM_PER_CTA_BARRIER, PTX_FIRST_PER_WORKER_BARRIER)
2913         (PTX_NUM_PER_WORKER_BARRIERS): Define.
2914         (nvptx_apply_dim_limits): Prevent vector_length 64 and
2915         num_workers 16.
2917 2019-01-11  Tom de Vries  <tdevries@suse.de>
2919         * config/nvptx/nvptx.c (PTX_CTA_SIZE): Move up.
2921 2019-01-11  Jan Beulich  <jbeulich@suse.com>
2923         * config/i386/i386.md (rex64suffix): Add L suffix for SI.
2924         * config/i386/sse.md (cvtusi2<ssescalarmodesuffix>32<round_name>,
2925         sse2_cvtsi2sd): Add {l}.
2926         (sse2_cvtsi2sdq<round_name>): Make q conditional upon AT&T
2927         syntax.
2929 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
2931         PR target/88785
2932         * config/i386/sse.md (float<floatunssuffix>v2div2sf2): Turn into
2933         define_expand.
2934         (*float<floatunssuffix>v2div2sf2): New define_insn.
2935         (float<floatunssuffix>v2div2sf2_mask): Turn into define_expand.
2936         (*float<floatunssuffix>v2div2sf2_mask): New define_insn.
2937         (*float<floatunssuffix>v2div2sf2_mask_1): Replace
2938         subrtxes (const_vector:V2SF [(const_int 0) (const_int 0)]) with
2939         match_operands with "const0_operand" "C".
2941 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
2943         * config/aarch64/aarch64-builtins.c
2944         (aarch64_init_builtins): Move aarch64_init_fcmla_laneq_builtins...
2945         (aarch64_init_simd_builtins): ...Here
2947 2019-01-10  Vladimir Makarov  <vmakarov@redhat.com>
2949         PR rtl-optimization/87305
2950         * lra-assigns.c
2951         (setup_live_pseudos_and_spill_after_risky_transforms): Check
2952         allocation for big endian pseudos used as paradoxical subregs and
2953         spill them if it is wrong.
2954         * lra-constraints.c (lra_constraints): Add a comment.
2956 2019-01-10  Richard Biener  <rguenther@suse.de>
2958         PR tree-optimization/88792
2959         * tree-ssa-pre.c (get_representative_for): Do not return a
2960         value-number here.
2962 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
2964         PR middle-end/84877
2965         PR bootstrap/88450
2966         * function.c (assign_stack_local_1): Revert the 2018-11-21 changes.
2967         (assign_parm_setup_block): Do the argument slot realignment here
2968         instead.
2970 2019-01-10  Stefan Agner  <stefan@agner.ch>
2972         PR target/88648
2973         * config/arm/arm.c (arm_option_override_internal): Force
2974         opts->x_inline_asm_unified to true only if TARGET_THUMB2_P.
2976 2019-01-10  Jakub Jelinek  <jakub@redhat.com>
2978         PR c/88568
2979         * attribs.c (handle_dll_attribute): Clear TREE_STATIC after setting
2980         DECL_EXTERNAL.
2982 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
2984         * config/arm/arm-builtins.c
2985         (enum arm_type_qualifiers): Add qualifier_lane_pair_index.
2986         (MAC_LANE_PAIR_QUALIFIERS): New.
2987         (arm_expand_builtin_args): Use it.
2988         (arm_expand_builtin_1): Likewise.
2989         * config/arm/arm-protos.h (neon_vcmla_lane_prepare_operands): New.
2990         * config/arm/arm.c (neon_vcmla_lane_prepare_operands): New.
2991         * config/arm/arm-c.c (arm_cpu_builtins): Add __ARM_FEATURE_COMPLEX.
2992         * config/arm/arm_neon.h:
2993         (vcadd_rot90_f16): New.
2994         (vcaddq_rot90_f16): New.
2995         (vcadd_rot270_f16): New.
2996         (vcaddq_rot270_f16): New.
2997         (vcmla_f16): New.
2998         (vcmlaq_f16): New.
2999         (vcmla_lane_f16): New.
3000         (vcmla_laneq_f16): New.
3001         (vcmlaq_lane_f16): New.
3002         (vcmlaq_laneq_f16): New.
3003         (vcmla_rot90_f16): New.
3004         (vcmlaq_rot90_f16): New.
3005         (vcmla_rot90_lane_f16): New.
3006         (vcmla_rot90_laneq_f16): New.
3007         (vcmlaq_rot90_lane_f16): New.
3008         (vcmlaq_rot90_laneq_f16): New.
3009         (vcmla_rot180_f16): New.
3010         (vcmlaq_rot180_f16): New.
3011         (vcmla_rot180_lane_f16): New.
3012         (vcmla_rot180_laneq_f16): New.
3013         (vcmlaq_rot180_lane_f16): New.
3014         (vcmlaq_rot180_laneq_f16): New.
3015         (vcmla_rot270_f16): New.
3016         (vcmlaq_rot270_f16): New.
3017         (vcmla_rot270_lane_f16): New.
3018         (vcmla_rot270_laneq_f16): New.
3019         (vcmlaq_rot270_lane_f16): New.
3020         (vcmlaq_rot270_laneq_f16): New.
3021         (vcadd_rot90_f32): New.
3022         (vcaddq_rot90_f32): New.
3023         (vcadd_rot270_f32): New.
3024         (vcaddq_rot270_f32): New.
3025         (vcmla_f32): New.
3026         (vcmlaq_f32): New.
3027         (vcmla_lane_f32): New.
3028         (vcmla_laneq_f32): New.
3029         (vcmlaq_lane_f32): New.
3030         (vcmlaq_laneq_f32): New.
3031         (vcmla_rot90_f32): New.
3032         (vcmlaq_rot90_f32): New.
3033         (vcmla_rot90_lane_f32): New.
3034         (vcmla_rot90_laneq_f32): New.
3035         (vcmlaq_rot90_lane_f32): New.
3036         (vcmlaq_rot90_laneq_f32): New.
3037         (vcmla_rot180_f32): New.
3038         (vcmlaq_rot180_f32): New.
3039         (vcmla_rot180_lane_f32): New.
3040         (vcmla_rot180_laneq_f32): New.
3041         (vcmlaq_rot180_lane_f32): New.
3042         (vcmlaq_rot180_laneq_f32): New.
3043         (vcmla_rot270_f32): New.
3044         (vcmlaq_rot270_f32): New.
3045         (vcmla_rot270_lane_f32): New.
3046         (vcmla_rot270_laneq_f32): New.
3047         (vcmlaq_rot270_lane_f32): New.
3048         (vcmlaq_rot270_laneq_f32): New.
3049         * config/arm/arm_neon_builtins.def (vcadd90, vcadd270, vcmla0, vcmla90,
3050         vcmla180, vcmla270, vcmla_lane0, vcmla_lane90, vcmla_lane180, vcmla_lane270,
3051         vcmla_laneq0, vcmla_laneq90, vcmla_laneq180, vcmla_laneq270,
3052         vcmlaq_lane0, vcmlaq_lane90, vcmlaq_lane180, vcmlaq_lane270): New.
3053         * config/arm/neon.md (neon_vcmla_lane<rot><mode>,
3054         neon_vcmla_laneq<rot><mode>, neon_vcmlaq_lane<rot><mode>): New.
3055         * config/arm/arm.c (arm_arch8_3, arm_arch8_4): New.
3056         * config/arm/arm.h (TARGET_COMPLEX, arm_arch8_3, arm_arch8_4): New.
3057         (arm_option_reconfigure_globals): Use them.
3058         * config/arm/iterators.md (VDF, VQ_HSF): New.
3059         (VCADD, VCMLA): New.
3060         (VF_constraint, rot, rotsplit1, rotsplit2): Add V4HF and V8HF.
3061         * config/arm/neon.md (neon_vcadd<rot><mode>, neon_vcmla<rot><mode>): New.
3062         * config/arm/unspecs.md (UNSPEC_VCADD90, UNSPEC_VCADD270,
3063         UNSPEC_VCMLA, UNSPEC_VCMLA90, UNSPEC_VCMLA180, UNSPEC_VCMLA270): New.
3065 2019-01-10  Tamar Christina  <tamar.christina@arm.com>
3067         * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers): Add qualifier_lane_pair_index.
3068         (emit-rtl.h): Include.
3069         (TYPES_QUADOP_LANE_PAIR): New.
3070         (aarch64_simd_expand_args): Use it.
3071         (aarch64_simd_expand_builtin): Likewise.
3072         (AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_laneq_builtin_datum): New.
3073         (FCMLA_LANEQ_BUILTIN, AARCH64_SIMD_FCMLA_LANEQ_BUILTIN_BASE,
3074         AARCH64_SIMD_FCMLA_LANEQ_BUILTINS, aarch64_fcmla_lane_builtin_data,
3075         aarch64_init_fcmla_laneq_builtins, aarch64_expand_fcmla_builtin): New.
3076         (aarch64_init_builtins): Add aarch64_init_fcmla_laneq_builtins.
3077         (aarch64_expand_buildin): Add AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V2SF,
3078         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V2SF,
3079         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ2700_V2SF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ0_V4HF,
3080         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ90_V4HF, AARCH64_SIMD_BUILTIN_FCMLA_LANEQ180_V4HF,
3081         AARCH64_SIMD_BUILTIN_FCMLA_LANEQ270_V4HF.
3082         * config/aarch64/iterators.md (FCMLA_maybe_lane): New.
3083         * config/aarch64/aarch64-c.c (aarch64_update_cpp_builtins): Add __ARM_FEATURE_COMPLEX.
3084         * config/aarch64/aarch64-simd-builtins.def (fcadd90, fcadd270, fcmla0, fcmla90,
3085         fcmla180, fcmla270, fcmla_lane0, fcmla_lane90, fcmla_lane180, fcmla_lane270,
3086         fcmla_laneq0, fcmla_laneq90, fcmla_laneq180, fcmla_laneq270,
3087         fcmlaq_lane0, fcmlaq_lane90, fcmlaq_lane180, fcmlaq_lane270): New.
3088         * config/aarch64/aarch64-simd.md (aarch64_fcmla_lane<rot><mode>,
3089         aarch64_fcmla_laneq<rot>v4hf, aarch64_fcmlaq_lane<rot><mode>,aarch64_fcadd<rot><mode>,
3090         aarch64_fcmla<rot><mode>): New.
3091         * config/aarch64/arm_neon.h:
3092         (vcadd_rot90_f16): New.
3093         (vcaddq_rot90_f16): New.
3094         (vcadd_rot270_f16): New.
3095         (vcaddq_rot270_f16): New.
3096         (vcmla_f16): New.
3097         (vcmlaq_f16): New.
3098         (vcmla_lane_f16): New.
3099         (vcmla_laneq_f16): New.
3100         (vcmlaq_lane_f16): New.
3101         (vcmlaq_rot90_lane_f16): New.
3102         (vcmla_rot90_laneq_f16): New.
3103         (vcmla_rot90_lane_f16): New.
3104         (vcmlaq_rot90_f16): New.
3105         (vcmla_rot90_f16): New.
3106         (vcmlaq_laneq_f16): New.
3107         (vcmla_rot180_laneq_f16): New.
3108         (vcmla_rot180_lane_f16): New.
3109         (vcmlaq_rot180_f16): New.
3110         (vcmla_rot180_f16): New.
3111         (vcmlaq_rot90_laneq_f16): New.
3112         (vcmlaq_rot270_laneq_f16): New.
3113         (vcmlaq_rot270_lane_f16): New.
3114         (vcmla_rot270_laneq_f16): New.
3115         (vcmlaq_rot270_f16): New.
3116         (vcmla_rot270_f16): New.
3117         (vcmlaq_rot180_laneq_f16): New.
3118         (vcmlaq_rot180_lane_f16): New.
3119         (vcmla_rot270_lane_f16): New.
3120         (vcadd_rot90_f32): New.
3121         (vcaddq_rot90_f32): New.
3122         (vcaddq_rot90_f64): New.
3123         (vcadd_rot270_f32): New.
3124         (vcaddq_rot270_f32): New.
3125         (vcaddq_rot270_f64): New.
3126         (vcmla_f32): New.
3127         (vcmlaq_f32): New.
3128         (vcmlaq_f64): New.
3129         (vcmla_lane_f32): New.
3130         (vcmla_laneq_f32): New.
3131         (vcmlaq_lane_f32): New.
3132         (vcmlaq_laneq_f32): New.
3133         (vcmla_rot90_f32): New.
3134         (vcmlaq_rot90_f32): New.
3135         (vcmlaq_rot90_f64): New.
3136         (vcmla_rot90_lane_f32): New.
3137         (vcmla_rot90_laneq_f32): New.
3138         (vcmlaq_rot90_lane_f32): New.
3139         (vcmlaq_rot90_laneq_f32): New.
3140         (vcmla_rot180_f32): New.
3141         (vcmlaq_rot180_f32): New.
3142         (vcmlaq_rot180_f64): New.
3143         (vcmla_rot180_lane_f32): New.
3144         (vcmla_rot180_laneq_f32): New.
3145         (vcmlaq_rot180_lane_f32): New.
3146         (vcmlaq_rot180_laneq_f32): New.
3147         (vcmla_rot270_f32): New.
3148         (vcmlaq_rot270_f32): New.
3149         (vcmlaq_rot270_f64): New.
3150         (vcmla_rot270_lane_f32): New.
3151         (vcmla_rot270_laneq_f32): New.
3152         (vcmlaq_rot270_lane_f32): New.
3153         (vcmlaq_rot270_laneq_f32): New.
3154         * config/aarch64/aarch64.h (TARGET_COMPLEX): New.
3155         * config/aarch64/iterators.md (UNSPEC_FCADD90, UNSPEC_FCADD270,
3156         UNSPEC_FCMLA, UNSPEC_FCMLA90, UNSPEC_FCMLA180, UNSPEC_FCMLA270): New.
3157         (FCADD, FCMLA): New.
3158         (rot): New.
3159         * config/arm/types.md (neon_fcadd, neon_fcmla): New.
3161 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
3163         PR other/16615
3165         * config/pa/pa.c: Change "can not" to "cannot".
3166         * gimple-ssa-evrp-analyze.c: Likewise.
3167         * ipa-icf.c: Likewise.
3168         * ipa-polymorphic-call.c: Likewise.
3169         * ipa-pure-const.c: Likewise.
3170         * lra-constraints.c: Likewise.
3171         * lra-remat.c: Likewise.
3172         * reload1.c: Likewise.
3173         * reorg.c: Likewise.
3174         * tree-ssa-uninit.c: Likewise.
3176 2019-01-09  Sandra Loosemore  <sandra@codesourcery.com>
3178         PR other/16615
3180         * Makefile.in: Mechanically replace "can not" with "cannot".
3181         * alias.c: Likewise.
3182         * builtins.c: Likewise.
3183         * calls.c: Likewise.
3184         * cgraph.c: Likewise.
3185         * cgraph.h: Likewise.
3186         * cgraphclones.c: Likewise.
3187         * cgraphunit.c: Likewise.
3188         * combine-stack-adj.c: Likewise.
3189         * combine.c: Likewise.
3190         * common/config/i386/i386-common.c: Likewise.
3191         * config/aarch64/aarch64.c: Likewise.
3192         * config/alpha/sync.md: Likewise.
3193         * config/arc/arc.c: Likewise.
3194         * config/arc/predicates.md: Likewise.
3195         * config/arm/arm-c.c: Likewise.
3196         * config/arm/arm.c: Likewise.
3197         * config/arm/arm.h: Likewise.
3198         * config/arm/arm.md: Likewise.
3199         * config/arm/cortex-r4f.md: Likewise.
3200         * config/csky/csky.c: Likewise.
3201         * config/csky/csky.h: Likewise.
3202         * config/darwin-f.c: Likewise.
3203         * config/epiphany/epiphany.md: Likewise.
3204         * config/i386/i386.c: Likewise.
3205         * config/i386/sol2.h: Likewise.
3206         * config/m68k/m68k.c: Likewise.
3207         * config/mcore/mcore.h: Likewise.
3208         * config/microblaze/microblaze.md: Likewise.
3209         * config/mips/20kc.md: Likewise.
3210         * config/mips/sb1.md: Likewise.
3211         * config/nds32/nds32.c: Likewise.
3212         * config/nds32/predicates.md: Likewise.
3213         * config/pa/pa.c: Likewise.
3214         * config/rs6000/e300c2c3.md: Likewise.
3215         * config/rs6000/rs6000.c: Likewise.
3216         * config/s390/s390.h: Likewise.
3217         * config/sh/sh.c: Likewise.
3218         * config/sh/sh.md: Likewise.
3219         * config/spu/vmx2spu.h: Likewise.
3220         * cprop.c: Likewise.
3221         * dbxout.c: Likewise.
3222         * df-scan.c: Likewise.
3223         * doc/cfg.texi: Likewise.
3224         * doc/extend.texi: Likewise.
3225         * doc/fragments.texi: Likewise.
3226         * doc/gty.texi: Likewise.
3227         * doc/invoke.texi: Likewise.
3228         * doc/lto.texi: Likewise.
3229         * doc/md.texi: Likewise.
3230         * doc/objc.texi: Likewise.
3231         * doc/rtl.texi: Likewise.
3232         * doc/tm.texi: Likewise.
3233         * dse.c: Likewise.
3234         * emit-rtl.c: Likewise.
3235         * emit-rtl.h: Likewise.
3236         * except.c: Likewise.
3237         * expmed.c: Likewise.
3238         * expr.c: Likewise.
3239         * fold-const.c: Likewise.
3240         * genautomata.c: Likewise.
3241         * gimple-fold.c: Likewise.
3242         * hard-reg-set.h: Likewise.
3243         * ifcvt.c: Likewise.
3244         * ipa-comdats.c: Likewise.
3245         * ipa-cp.c: Likewise.
3246         * ipa-devirt.c: Likewise.
3247         * ipa-fnsummary.c: Likewise.
3248         * ipa-icf.c: Likewise.
3249         * ipa-inline-transform.c: Likewise.
3250         * ipa-inline.c: Likewise.
3251         * ipa-polymorphic-call.c: Likewise.
3252         * ipa-profile.c: Likewise.
3253         * ipa-prop.c: Likewise.
3254         * ipa-pure-const.c: Likewise.
3255         * ipa-reference.c: Likewise.
3256         * ipa-split.c: Likewise.
3257         * ipa-visibility.c: Likewise.
3258         * ipa.c: Likewise.
3259         * ira-build.c: Likewise.
3260         * ira-color.c: Likewise.
3261         * ira-conflicts.c: Likewise.
3262         * ira-costs.c: Likewise.
3263         * ira-int.h: Likewise.
3264         * ira-lives.c: Likewise.
3265         * ira.c: Likewise.
3266         * ira.h: Likewise.
3267         * loop-invariant.c: Likewise.
3268         * loop-unroll.c: Likewise.
3269         * lower-subreg.c: Likewise.
3270         * lra-assigns.c: Likewise.
3271         * lra-constraints.c: Likewise.
3272         * lra-eliminations.c: Likewise.
3273         * lra-lives.c: Likewise.
3274         * lra-remat.c: Likewise.
3275         * lra-spills.c: Likewise.
3276         * lra.c: Likewise.
3277         * lto-cgraph.c: Likewise.
3278         * lto-streamer-out.c: Likewise.
3279         * postreload-gcse.c: Likewise.
3280         * predict.c: Likewise.
3281         * profile-count.h: Likewise.
3282         * profile.c: Likewise.
3283         * recog.c: Likewise.
3284         * ree.c: Likewise.
3285         * reload.c: Likewise.
3286         * reload1.c: Likewise.
3287         * reorg.c: Likewise.
3288         * resource.c: Likewise.
3289         * rtl.def: Likewise.
3290         * rtl.h: Likewise.
3291         * rtlanal.c: Likewise.
3292         * sched-deps.c: Likewise.
3293         * sched-ebb.c: Likewise.
3294         * sched-rgn.c: Likewise.
3295         * sel-sched-ir.c: Likewise.
3296         * sel-sched.c: Likewise.
3297         * shrink-wrap.c: Likewise.
3298         * simplify-rtx.c: Likewise.
3299         * symtab.c: Likewise.
3300         * target.def: Likewise.
3301         * toplev.c: Likewise.
3302         * tree-call-cdce.c: Likewise.
3303         * tree-cfg.c: Likewise.
3304         * tree-complex.c: Likewise.
3305         * tree-core.h: Likewise.
3306         * tree-eh.c: Likewise.
3307         * tree-inline.c: Likewise.
3308         * tree-loop-distribution.c: Likewise.
3309         * tree-nrv.c: Likewise.
3310         * tree-profile.c: Likewise.
3311         * tree-sra.c: Likewise.
3312         * tree-ssa-alias.c: Likewise.
3313         * tree-ssa-dce.c: Likewise.
3314         * tree-ssa-dom.c: Likewise.
3315         * tree-ssa-forwprop.c: Likewise.
3316         * tree-ssa-loop-im.c: Likewise.
3317         * tree-ssa-loop-ivcanon.c: Likewise.
3318         * tree-ssa-loop-ivopts.c: Likewise.
3319         * tree-ssa-loop-niter.c: Likewise.
3320         * tree-ssa-phionlycprop.c: Likewise.
3321         * tree-ssa-phiopt.c: Likewise.
3322         * tree-ssa-propagate.c: Likewise.
3323         * tree-ssa-threadedge.c: Likewise.
3324         * tree-ssa-threadupdate.c: Likewise.
3325         * tree-ssa-uninit.c: Likewise.
3326         * tree-ssanames.c: Likewise.
3327         * tree-streamer-out.c: Likewise.
3328         * tree.c: Likewise.
3329         * tree.h: Likewise.
3330         * vr-values.c: Likewise.
3332 2019-01-09  Uroš Bizjak  <ubizjak@gmail.com>
3334         * config/i386/i386-protos.h (ix86_expand_xorsign): New prototype.
3335         (ix86_split_xorsign): Ditto.
3336         * config/i386/i386.c (ix86_expand_xorsign): New function.
3337         (ix86_split_xorsign): Ditto.
3338         * config/i386/i386.md (UNSPEC_XORSIGN): New unspec.
3339         (xorsign<mode>3): New expander.
3340         (xorsign<mode>3_1): New insn_and_split pattern.
3341         * config/i386/sse.md (xorsign<mode>3): New expander.
3343 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
3345         * config/sparc/sparc.md (*tablejump_sp32): Merge into...
3346         (*tablejump_sp64): Likewise.
3347         (*tablejump<P:mode>): ...this.
3348         (*call_address_sp32): Merge into...
3349         (*call_address_sp64): Likewise.
3350         (*call_address<P:mode>): ...this.
3351         (*call_symbolic_sp32): Merge into...
3352         (*call_symbolic_sp64): Likewise.
3353         (*call_symbolic<P:mode>): ...this.
3354         (call_value): Remove constraint and add predicate.
3355         (*call_value_address_sp32): Merge into...
3356         (*call_value_address_sp64): Likewise.
3357         (*call_value_address<P:mode>): ...this.
3358         (*call_value_symbolic_sp32): Merge into...
3359         (*call_value_symbolic_sp64): Likewise.
3360         (*call_value_symbolic<P:mode>): ...this.
3361         (*sibcall_symbolic_sp32): Merge into...
3362         (*sibcall_symbolic_sp64): Likewise.
3363         (*sibcall_symbolic<P:mode>): ...this.
3364         (sibcall_value): Remove constraint and add predicate.
3365         (*sibcall_value_symbolic_sp32): Merge into...
3366         (*sibcall_value_symbolic_sp64): Likewise.
3367         (*sibcall_value_symbolic<P:mode>): ...this.
3368         (window_save): Minor tweak.
3369         (*branch_sp32): Merge into...
3370         (*branch_sp64): Likewise.
3371         (*branch<P:mode>): ...this.
3373 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
3374             James Clarke  <jrtc27@jrtc27.com>
3376         PR target/84010
3377         * config/sparc/sparc.c (sparc_legitimize_tls_address): Only use Pmode
3378         consistently in TLS address generation and adjust code to the renaming
3379         of patterns.  Mark calls to __tls_get_addr as const.
3380         * config/sparc/sparc.md (tgd_hi22): Turn into...
3381         (tgd_hi22<P:mode>): ...this and use Pmode throughout.
3382         (tgd_lo10): Turn into...
3383         (tgd_lo10<P:mode>): ...this and use Pmode throughout.
3384         (tgd_add32): Merge into...
3385         (tgd_add64): Likewise.
3386         (tgd_add<P:mode>): ...this and use Pmode throughout.
3387         (tldm_hi22): Turn into...
3388         (tldm_hi22<P:mode>): ...this and use Pmode throughout.
3389         (tldm_lo10): Turn into...
3390         (tldm_lo10<P:mode>): ...this and use Pmode throughout.
3391         (tldm_add32): Merge into...
3392         (tldm_add64): Likewise.
3393         (tldm_add<P:mode>): ...this and use Pmode throughout.
3394         (tldm_call32): Merge into...
3395         (tldm_call64): Likewise.
3396         (tldm_call<P:mode>): ...this and use Pmode throughout.
3397         (tldo_hix22): Turn into...
3398         (tldo_hix22<P:mode>): ...this and use Pmode throughout.
3399         (tldo_lox10): Turn into...
3400         (tldo_lox10<P:mode>): ...this and use Pmode throughout.
3401         (tldo_add32): Merge into...
3402         (tldo_add64): Likewise.
3403         (tldo_add<P:mode>): ...this and use Pmode throughout.
3404         (tie_hi22): Turn into...
3405         (tie_hi22<P:mode>): ...this and use Pmode throughout.
3406         (tie_lo10): Turn into...
3407         (tie_lo10<P:mode>): ...this and use Pmode throughout.
3408         (tie_ld64): Use DImode throughout.
3409         (tie_add32): Merge into...
3410         (tie_add64): Likewise.
3411         (tie_add<P:mode>): ...this and use Pmode throughout.
3412         (tle_hix22_sp32): Merge into...
3413         (tle_hix22_sp64): Likewise.
3414         (tle_hix22<P:mode>): ...this and use Pmode throughout.
3415         (tle_lox22_sp32): Merge into...
3416         (tle_lox22_sp64): Likewise.
3417         (tle_lox22<P:mode>): ...this and use Pmode throughout.
3418         (*tldo_ldub_sp32): Merge into...
3419         (*tldo_ldub_sp64): Likewise.
3420         (*tldo_ldub<P:mode>): ...this and use Pmode throughout.
3421         (*tldo_ldub1_sp32): Merge into...
3422         (*tldo_ldub1_sp64): Likewise.
3423         (*tldo_ldub1<P:mode>): ...this and use Pmode throughout.
3424         (*tldo_ldub2_sp32): Merge into...
3425         (*tldo_ldub2_sp64): Likewise.
3426         (*tldo_ldub2<P:mode>): ...this and use Pmode throughout.
3427         (*tldo_ldsb1_sp32): Merge into...
3428         (*tldo_ldsb1_sp64): Likewise.
3429         (*tldo_ldsb1<P:mode>): ...this and use Pmode throughout.
3430         (*tldo_ldsb2_sp32): Merge into...
3431         (*tldo_ldsb2_sp64): Likewise.
3432         (*tldo_ldsb2<P:mode>): ...this and use Pmode throughout.
3433         (*tldo_ldub3_sp64): Use DImode throughout.
3434         (*tldo_ldsb3_sp64): Likewise.
3435         (*tldo_lduh_sp32): Merge into...
3436         (*tldo_lduh_sp64): Likewise.
3437         (*tldo_lduh<P:mode>): ...this and use Pmode throughout.
3438         (*tldo_lduh1_sp32): Merge into...
3439         (*tldo_lduh1_sp64): Likewise.
3440         (*tldo_lduh1<P:mode>): ...this and use Pmode throughout.
3441         (*tldo_ldsh1_sp32): Merge into...
3442         (*tldo_ldsh1_sp64): Likewise.
3443         (*tldo_ldsh1<P:mode>): ...this and use Pmode throughout.
3444         (*tldo_lduh2_sp64): Use DImode throughout.
3445         (*tldo_ldsh2_sp64): Likewise.
3446         (*tldo_lduw_sp32): Merge into...
3447         (*tldo_lduw_sp64): Likewise.
3448         (*tldo_lduw<P:mode>): ...this and use Pmode throughout.
3449         (*tldo_lduw1_sp64): Use DImode throughout.
3450         (*tldo_ldsw1_sp64): Likewise.
3451         (*tldo_ldx_sp64): Likewise.
3452         (*tldo_stb_sp32): Merge into...
3453         (*tldo_stb_sp64): Likewise.
3454         (*tldo_stb<P:mode>): ...this and use Pmode throughout.
3455         (*tldo_sth_sp32): Merge into...
3456         (*tldo_sth_sp64): Likewise.
3457         (*tldo_sth<P:mode>): ...this and use Pmode throughout.
3458         (*tldo_stw_sp32): Merge into...
3459         (*tldo_stw_sp64): Likewise.
3460         (*tldo_stw<P:mode>): ...this and use Pmode throughout.
3461         (*tldo_stx_sp64): Use DImode throughout.
3463 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
3465         * config/aarch64/aarch64.c (aarch64_override_options): Add case to
3466         check configure option to set BTI and Return Address Signing.
3467         * configure.ac: Add --enable-standard-branch-protection and
3468         --disable-standard-branch-protection.
3469         * configure: Regenerated.
3470         * doc/install.texi: Document the same.
3472 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
3473             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
3475         * config.gcc (aarch64*-*-*): Add aarch64-bti-insert.o.
3476         * config/aarch64/aarch64.h: Update comment for TRAMPOLINE_SIZE.
3477         * config/aarch64/aarch64.c (aarch64_asm_trampoline_template): Update
3478         if bti is enabled.
3479         * config/aarch64/aarch64-bti-insert.c: New file.
3480         * config/aarch64/aarch64-passes.def (INSERT_PASS_BEFORE): Insert bti
3481         pass.
3482         * config/aarch64/aarch64-protos.h (make_pass_insert_bti): Declare the
3483         new bti pass.
3484         * config/aarch64/aarch64.md (unspecv): Add UNSPECV_BTI_NOARG,
3485         UNSPECV_BTI_C, UNSPECV_BTI_J and UNSPECV_BTI_JC.
3486         (bti_noarg, bti_j, bti_c, bti_jc): New define_insns.
3487         * config/aarch64/t-aarch64: Add rule for aarch64-bti-insert.o.
3489 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
3491         * config/aarch64/aarch64-protos.h (aarch64_bti_enabled): Declare.
3492         * config/aarch64/aarch64.c (aarch64_handle_no_branch_protection):
3493         Disable bti for -mbranch-protection=none.
3494         (aarch64_handle_standard_branch_protection): Enable bti for
3495         -mbranch-protection=standard.
3496         (aarch64_handle_bti_protection): Enable bti for "bti" in the string to
3497         -mbranch-protection.
3498         (aarch64_bti_enabled): Check if bti is enabled.
3499         * config/aarch64/aarch64.opt: Declare target variable.
3500         * doc/invoke.texi: Add bti to the -mbranch-protection documentation.
3502 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
3504         * config/aarch64/aarch64.c (aarch64_expand_prologue): Use new
3505         epilogue/prologue scratch registers EP0_REGNUM and EP1_REGNUM.
3506         (aarch64_expand_epilogue): Likewise.
3507         (aarch64_output_mi_thunk): Likewise
3508         * config/aarch64/aarch64.h (REG_CLASS_CONTENTS): Change
3509         TAILCALL_ADDR_REGS to x16 and x17.
3510         * config/aarch64/aarch64.md: Define EP0_REGNUM and EP1_REGNUM.
3512 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
3514         * config/aarch64/aarch64-option-extensions.def: Define
3515         AARCH64_OPT_EXTENSION for memtag, rng, sb, ssbs and predres.
3516         * config/aarch64/aarch64.h (AARCH64_FL_RNG): New.
3517         (AARCH64_FL_MEMTAG, ARCH64_FL_SB, AARCH64_FL_SSBS): New.
3518         (AARCH64_FL_PREDRES): New.
3519         (AARCH64_FL_FOR_ARCH8_5): Add AARCH64_FL_SB, AARCH64_FL_SSBS and
3520         AARCH64_FL_PREDRES by default.
3521         * doc/invoke.texi: Document rng, memtag, sb, ssbs and predres.
3523 2018-01-09  Sudakshina Das  <sudi.das@arm.com>
3525         * config/aarch64/aarch64-arches.def: Define AARCH64_ARCH for
3526         ARMv8.5-A.
3527         * config/aarch64/aarch64.h (AARCH64_FL_V8_5): New.
3528         (AARCH64_FL_FOR_ARCH8_5, AARCH64_ISA_V8_5): New.
3529         * doc/invoke.texi: Document ARMv8.5-A.
3531 2019-01-09  Alejandro Martinez  <alejandro.martinezvicente@arm.com>
3533         * config/aarch64/aarch64-sve.md (copysign<mode>3): New define_expand.
3534         (xorsign<mode>3): Likewise.
3536 2019-01-09  Jelinek  <jakub@redhat.com>
3538         PR middle-end/88758
3539         * tree.c (initializer_each_zero_or_onep) <case VECTOR_CST>: Use
3540         vector_cst_elt instead of VECTOR_CST_ENCODED_ELT.
3542         PR rtl-optimization/88331
3543         * function.c (assign_stack_local_1): Don't set dynamic_align_addr if
3544         not currently_expanding_to_rtl.
3546 2019-01-09  Eric Botcazou  <ebotcazou@adacore.com>
3548         * doc/invoke.texi (-Os): Remove trailing spaces.
3549         (-finline-functions): Remove reference to -O2.
3551 2019-01-08  Jakub Jelinek  <jakub@redhat.com>
3553         PR rtl-optimization/79593
3554         * config/i386/i386.md (reg = mem; mem = reg): New define_peephole2.
3556         * config/rs6000/rs6000.c (rs6000_delegitimize_address): Delegitimize
3557         UNSPEC_FUSION_GPR to its argument.  Formatting fixes.
3559 2019-01-08  Eric Botcazou  <ebotcazou@adacore.com>
3561         PR bootstrap/88721
3562         * config/sparc/sparc.c (function_arg_slotno): Set *PPREGNO & *PPADDING
3563         to -1 on entry.
3565         PR debug/88723
3566         * config/sparc/sparc.c (sparc_delegitimize_address): Deal with naked
3567         UNSPECs and UNSPEC_MOVE_GOTDATA specifically.
3569 2019-01-08  H.J. Lu  <hongjiu.lu@intel.com>
3571         PR target/88717
3572         * config/i386/i386.c (ix86_avx_u128_mode_exit): Call
3573         ix86_avx_u128_mode_entry.
3575 2019-01-08  Martin Liska  <mliska@suse.cz>
3577         PR tree-optimization/88753
3578         * tree-switch-conversion.c (switch_conversion::build_one_array):
3579         Come up with local variable constructor.  Convert first to
3580         type of constructor values.
3582 2019-01-08  Richard Biener  <rguenther@suse.de>
3584         PR tree-optimization/86554
3585         * tree-ssa-sccvn.c (eliminate_dom_walker, rpo_elim,
3586         rpo_avail): Move earlier.
3587         (visit_nary_op): When value-numbering to expressions
3588         with different overflow behavior make sure there's an
3589         available expression on the path.
3591 2019-01-08  Sam Tebbs  <sam.tebbs@arm.com>
3593         * config/aarch64/aarch64.c (BRANCH_PROTECT_STR_MAX,
3594         aarch64_parse_branch_protection,
3595         struct aarch64_branch_protect_type,
3596         aarch64_handle_no_branch_protection,
3597         aarch64_handle_standard_branch_protection,
3598         aarch64_validate_mbranch_protection,
3599         aarch64_handle_pac_ret_protection,
3600         aarch64_handle_attr_branch_protection,
3601         accepted_branch_protection_string,
3602         aarch64_pac_ret_subtypes,
3603         aarch64_branch_protect_types,
3604         aarch64_handle_pac_ret_leaf): Define.
3605         (aarch64_override_options_after_change_1, aarch64_override_options):
3606         Add check for accepted_branch_protection_string.
3607         (aarch64_option_save): Save accepted_branch_protection_string.
3608         (aarch64_option_restore): Save accepted_branch_protection_string.
3609         * config/aarch64/aarch64.c (aarch64_attributes): Add branch-protection.
3610         * config/aarch64/aarch64.opt: Add mbranch-protection. Deprecate
3611         msign-return-address.
3612         * doc/invoke.texi: Add mbranch-protection.
3614 2019-01-08  Alan Modra  <amodra@gmail.com>
3616         PR target/88614
3617         * genattrtab.c (max_attr_value, min_attr_value, or_attr_value):
3618         Delete "unknownp" parameter.  Adjust callers.  Handle
3619         CONST_INT, PLUS, MINUS, and MULT.
3620         (attr_value_aligned): Renamed from or_attr_value.
3621         (min_attr_value): Return INT_MIN for unhandled rtl case..
3622         (min_fn): ..and translate to INT_MAX here.
3623         (write_length_unit_log): Modify to cope without "unknown".
3624         (write_attr_value): Handle IF_THEN_ELSE.
3626 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
3628         * tree-vect-stmts.c (vectorizable_store): Don't use the dataref_offset
3629         optimization for masked stores.
3631 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
3633         PR middle-end/88567
3634         * tree-vect-loop.c (get_initial_defs_for_reduction): Pass the
3635         output vector directly to duplicate_and_interleave instead of
3636         going through a temporary.  Postpone insertion of ctor_seq to
3637         the end of the loop.
3639 2019-01-07  Richard Earnshaw  <rearnsha@arm.com>
3641         PR target/86891
3642         * config/aarch64/aarch64.c (aarch64_expand_subvti): New parameter
3643         unsigned_p.  Handle signed and unsigned overflow correction as
3644         required.
3645         * config/aarch64/aarch64-protos.h (aarch64_expand_subvti): Update
3646         prototype.
3647         * config/aarch64/aarch64.md (addv<mode>4): Use aarch64_plus_operand
3648         for operand 2.
3649         (add<mode>3_compareV_imm): Make this callable for expanding.
3650         (subv<GPI:mode>4): Use register_operand for operand 1.  Use
3651         aarch64_plus_operand for operand 2.
3652         (subv<GPI:mode>_insn): New insn pattern.
3653         (subv<GPI:mode>_imm): Likewise.
3654         (negv<GPI:mode>3): New expand pattern.
3655         (negv<GPI:mode>_insn): New insn pattern.
3656         (negv<GPI:mode>_cmp_only): Likewise.
3657         (cmpv<GPI:mode>_insn): Likewise.
3658         (subvti4): Use register_operand for operand 1.  Update call to
3659         aarch64_expand_subvti.
3660         (usubvti4): Likewise.
3661         (negvti3): New expand pattern.
3662         (negdi_carryout): New insn pattern.
3663         (negvdi_carryinV): New insn pattern.
3664         (sub<mode3>_compare1_imm): Delete named insn pattern, make anonymous
3665         version the named version.
3666         (peepholes to convert to sub<mode3>_compare1_imm): Adjust order of
3667         operands.
3668         (usub<GPI:mode>3_carryinC, usub<GPI:mode>3_carryinC_z1): New insn
3669         patterns.
3670         (usub<GPI:mode>3_carryinC_z2, usub<GPI:mode>3_carryinC): New insn
3671         patterns.
3672         (sub<mode>3_carryinCV, sub<mode>3_carryinCV_z1_z2): Delete.
3673         (sub<mode>3_carryinCV_z1, sub<mode>3_carryinCV_z2): Delete.
3674         (sub<mode>3_carryinCV): Delete.
3675         (sub<GPI:mode>3_carryinV): New expand pattern.
3676         sub<mode>3_carryinV, sub<mode>3_carryinV_z2): New insn patterns.
3678 2019-01-07  Richard Biener  <rguenther@suse.de>
3680         * tree-ssa-uncprop.c (ssa_equip_hash_traits): Remove in favor
3681         of tree_operand_hash.
3683 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
3685         PR tree-optimization/88598
3686         * tree.h (single_nonzero_element): Declare.
3687         * tree.c (single_nonzero_element): New function.
3688         * match.pd: Fold certain reductions of X & CST to X[I] & CST[I]
3689         if I is the only nonzero element of CST.
3691 2019-01-07  Richard Sandiford  <richard.sandiford@arm.com>
3693         PR tree-optimization/88598
3694         * tree.h (initializer_each_zero_or_onep): Declare.
3695         * tree.c (initializer_each_zero_or_onep): New function.
3696         (signed_or_unsigned_type_for): Handle float types too.
3697         (unsigned_type_for, signed_type_for): Update comments accordingly.
3698         * match.pd: Fold x * { 0 or 1, 0 or 1, ...} to
3699         x & { 0 or -1, 0 or -1, ... }.
3701 2019-01-07  Jonathan Wakely  <jwakely@redhat.com>
3703         * doc/install.texi: Replace references to x86_64-unknown-linux-gnu
3704         with x86_64-pc-linux-gnu.
3706 2019-01-07  Tom de Vries  <tdevries@suse.de>
3708         PR target/85486
3709         * config/nvptx/nvptx.c (has_vector_partitionable_routine_calls_p): New
3710         function.
3711         (nvptx_goacc_validate_dims): Force vl32 if calling vector-partitionable
3712         routines.
3714 2019-01-07  Jakub Jelinek  <jakub@redhat.com>
3716         * config/i386/sse.md (vec_extract<mode><ssehalfvecmodelower>): Use
3717         V_256_512 iterator instead of V_512 and TARGET_AVX instead of
3718         TARGET_AVX512F as condition.
3720         PR debug/88723
3721         * dwarf2out.c (const_ok_for_output_1): Remove redundant call to
3722         const_not_ok_for_debug_p target hook.
3723         (mem_loc_descriptor) <case UNSPEC>: Only call const_ok_for_output_1
3724         on UNSPEC and subexpressions thereof if all subexpressions of the
3725         UNSPEC are CONSTANT_P.
3727         PR tree-optimization/88676
3728         * tree-ssa-phiopt.c (two_value_replacement): New function.
3729         (tree_ssa_phiopt_worker): Call it.
3731         PR sanitizer/88619
3732         * cfgexpand.c (expand_stack_vars): Only align prev_offset to
3733         ASAN_MIN_RED_ZONE_SIZE, not to maximum of that and alignb.
3735         PR c++/85052
3736         * tree-vect-generic.c: Include insn-config.h and recog.h.
3737         (expand_vector_piecewise): Add defaulted ret_type argument,
3738         if non-NULL, use that in preference to type for the result type.
3739         (expand_vector_parallel): Formatting fix.
3740         (do_vec_conversion, do_vec_narrowing_conversion,
3741         expand_vector_conversion): New functions.
3742         (expand_vector_operations_1): Call expand_vector_conversion
3743         for VEC_CONVERT ifn calls.
3744         * internal-fn.def (VEC_CONVERT): New internal function.
3745         * internal-fn.c (expand_VEC_CONVERT): New function.
3746         * fold-const-call.c (fold_const_vec_convert): New function.
3747         (fold_const_call): Use it for CFN_VEC_CONVERT.
3748         * doc/extend.texi (__builtin_convertvector): Document.
3750 2019-01-07  Tom de Vries  <tdevries@suse.de>
3752         * config/nvptx/nvptx-protos.h (nvptx_output_red_partition): Declare.
3753         * config/nvptx/nvptx.c (vector_red_size, vector_red_align,
3754         vector_red_partition, vector_red_sym): New global variables.
3755         (nvptx_option_override): Initialize vector_red_sym.
3756         (nvptx_declare_function_name): Restore red_partition register.
3757         (nvptx_file_end): Emit code to declare the vector reduction variables.
3758         (nvptx_output_red_partition): New function.
3759         (nvptx_expand_shared_addr): Add vector argument. Use it to handle
3760         large vector reductions.
3761         (enum nvptx_builtins): Add NVPTX_BUILTIN_VECTOR_ADDR.
3762         (nvptx_init_builtins): Add VECTOR_ADDR.
3763         (nvptx_expand_builtin): Update call to nvptx_expand_shared_addr.
3764         Handle nvptx_expand_shared_addr.
3765         (nvptx_get_shared_red_addr): Add vector argument and handle large
3766         vectors.
3767         (nvptx_goacc_reduction_setup): Add offload_attrs argument and handle
3768         large vectors.
3769         (nvptx_goacc_reduction_init): Likewise.
3770         (nvptx_goacc_reduction_fini): Likewise.
3771         (nvptx_goacc_reduction_teardown): Likewise.
3772         (nvptx_goacc_reduction): Update calls to nvptx_goacc_reduction_{setup,
3773         init,fini,teardown}.
3774         (nvptx_init_axis_predicate): Initialize vector_red_partition.
3775         (nvptx_set_current_function): Init vector_red_partition.
3776         * config/nvptx/nvptx.md (UNSPECV_RED_PART): New unspecv.
3777         (nvptx_red_partition): New insn.
3778         * config/nvptx/nvptx.h (struct machine_function): Add red_partition.
3780 2019-01-07  Tom de Vries  <tdevries@suse.de>
3782         PR target/85381
3783         * config/nvptx/nvptx.c (nvptx_process_pars): Don't emit barriers for
3784         empty loops.
3786 2019-01-07  Tom de Vries  <tdevries@suse.de>
3788         * config/nvptx/nvptx.c (oacc_bcast_partition): Declare.
3789         (nvptx_option_override): Init oacc_bcast_partition.
3790         (nvptx_init_oacc_workers): New function.
3791         (nvptx_declare_function_name): Call nvptx_init_oacc_workers.
3792         (nvptx_needs_shared_bcast): New function.
3793         (nvptx_find_par): Generalize to enable vectors to use shared-memory
3794         to propagate state.
3795         (nvptx_shared_propagate): Initialize vector bcast partition and
3796         synchronization state.
3797         (nvptx_single):  Generalize to enable vectors to use shared-memory
3798         to propagate state.
3799         (nvptx_process_pars): Likewise.
3800         (nvptx_set_current_function): Initialize oacc_broadcast_partition.
3801         * config/nvptx/nvptx.h (struct machine_function): Add
3802         bcast_partition and sync_bar members.
3804 2019-01-07  Tom de Vries  <tdevries@suse.de>
3806         * config/nvptx/nvptx.c (nvptx_welformed_vector_length_p)
3807         (nvptx_apply_dim_limits): New function.
3808         (nvptx_goacc_validate_dims_1): Allow PTX_MAX_VECTOR_LENGTH larger than
3809         PTX_WARP_SIZE.
3811 2019-01-07  Tom de Vries  <tdevries@suse.de>
3813         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Move warnings to
3814         as late as possible.
3816 2019-01-07  Tom de Vries  <tdevries@suse.de>
3818         * config/nvptx/nvptx.c (PTX_VECTOR_LENGTH): Remove.
3819         (PTX_DEFAULT_VECTOR_LENGTH, PTX_MAX_VECTOR_LENGTH): Define.
3820         (nvptx_goacc_validate_dims_1, nvptx_dim_limit)
3821         (nvptx_goacc_reduction_fini): Use PTX_DEFAULT_VECTOR_LENGTH,
3822         PTX_MAX_VECTOR_LENGTH and PTX_WARP_SIZE instead of PTX_VECTOR_LENGTH.
3824 2019-01-07  Tom de Vries  <tdevries@suse.de>
3826         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims): Add asserts.
3828 2019-01-07  Tom de Vries  <tdevries@suse.de>
3830         * omp-offload.c (oacc_get_min_dim): New function.
3831         * omp-offload.h (oacc_get_min_dim): Declare.
3833 2018-12-26  Mateusz B  <mateuszb@poczta.onet.pl>
3835         PR target/88521
3836         * config/i386/i386.c (function_value_ms_64): Return small sturct in
3837         AX_REG and float/double in FIRST_SSE_REG for 4 or 8 byte modes.
3839 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
3841         PR tree-opt/86020
3842         Revert:
3843         2017-05-22  Jan Hubicka  <hubicka@ucw.cz>
3844         
3845         * ipa-inline.c (edge_badness): Use inlined_time instead of
3846         inline_summaries->get.
3848 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
3850         * opts.c (enable_fdo_optimizations): Enable
3851         version-loops-for-strides, loop-interchange, unrol-and-jam
3852         and tree-loop-distribution.
3853         * invoke.texi: Document newly enabled options.
3855 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
3857         * doc/invoke.texi (max-inline-insns-small): New parameters.
3858         * ipa-inline.c (want_early_inline_function_p): simplify.
3859         (want_inline_small_function_p): Fix pasto from previous patch;
3860         use max-inline-insns-small bound.
3861         * params.def (max-inline-insns-small): New param.
3862         * ipa-fnsummary.c (analyze_function_body): Initialize time/size
3863         variables correctly.
3865 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
3867         * doc/invoke.texi: Document max-inline-insns-size,
3868         uninlined-function-insns, uninlined-function-time,
3869         uninlined-thunk-insns and uninlined-thunk-time.
3870         * params.def: Add max-inline-insns-size,
3871         uninlined-function-insns, uninlined-function-time,
3872         uninlined-thunk-insns and uninlined-thunk-time.
3873         * ipa-fnsummary.c (compute_fn_summary, analyze_function_body): Use
3874         new parameters.
3875         * ipa-inline.c (can_inline_edge_by_limits_p,
3876         want_inline_small_function_p): Use new parameters.
3878 2019-01-05  Jan Hubicka  <hubicka@ucw.cz>
3880         * ipa-fnsummary.c (analyze_function_body): Fix accounting of time.
3882 2019-01-05  Jakub Jelinek  <jakub@redhat.com>
3884         PR middle-end/82564
3885         PR target/88620
3886         * expr.c (expand_assignment): For calls returning VLA structures
3887         if to_rtx is not a MEM, force it into a stack temporary.
3889         PR debug/88635
3890         * dwarf2out.c (const_ok_for_output_1): Reject MINUS that contains
3891         SYMBOL_REF, CODE_LABEL or UNSPEC in subexpressions of second argument.
3892         Reject PLUS that contains SYMBOL_REF, CODE_LABEL or UNSPEC in
3893         subexpressions of both operands.
3894         (mem_loc_descriptor): Handle UNSPEC if target hook acks it and all the
3895         subrtxes are CONSTANT_P.
3896         * config/i386/i386.c (ix86_const_not_ok_for_debug_p): Revert
3897         2018-11-09 changes.
3899 2019-01-04  Jan Hubicka  <hubicka@ucw.cz>
3901         * params.def (hot-bb-count-ws-permille): Set to 990.
3903 2019-01-04  Martin Sebor  <msebor@redhat.com>
3905         PR c/88546
3906         * attribs.c (decls_mismatched_attributes): Avoid warning for attribute
3907         leaf.
3909 2019-01-04  Martin Sebor  <msebor@redhat.com>
3911         PR c/88363
3912         * doc/extend.texi (attribute alloc_align, alloc_size): Update.
3914 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
3916         * gdbinit.in: Turn off pagination for the skip commands, restore
3917         it to previous state afterwards.
3919 2019-01-04  Jakub Jelinek  <jakub@redhat.com>
3921         PR target/88594
3922         * config/i386/i386.c (ix86_expand_divmod_libfunc): Use mode instead
3923         of GET_MODE (opN) as modes of the libcall arguments.
3925 2019-01-04  Jan Beulich  <jbeulich@suse.com>
3927         * config/i386/sse.md
3928         (<avx512>_cmp<mode>3<mask_scalar_merge_name><round_saeonly_name>,
3929         <avx512>_cmp<mode>3<mask_scalar_merge_name>,
3930         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3931         <avx512>_ucmp<mode>3<mask_scalar_merge_name>,
3932         avx512f_vmcmp<mode>3<round_saeonly_name>,
3933         avx512f_vmcmp<mode>3_mask<round_saeonly_name>,
3934         avx512f_maskcmp<mode>3,
3935         <avx512>_cvt<ssemodesuffix>2mask<mode>,
3936         <avx512>_cvt<ssemodesuffix>2mask<mode>,
3937         *<avx512>_cvtmask2<ssemodesuffix><mode>,
3938         *<avx512>_cvtmask2<ssemodesuffix><mode>,
3939         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3940         <avx512>_eq<mode>3<mask_scalar_merge_name>_1,
3941         <avx512>_gt<mode>3<mask_scalar_merge_name>,
3942         <avx512>_gt<mode>3<mask_scalar_merge_name>,
3943         <avx512>_testm<mode>3<mask_scalar_merge_name>,
3944         <avx512>_testnm<mode>3<mask_scalar_merge_name>,
3945         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext,
3946         *<avx512>_testm<VI1248_AVX512VLBW:mode>3_zext_mask,
3947         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext,
3948         *<avx512>_testnm<VI1248_AVX512VLBW:mode>3_zext_mask,
3949         avx512cd_maskb_vec_dup<mode>,
3950         avx512cd_maskw_vec_dup<mode>,
3951         avx512dq_fpclass<mode><mask_scalar_merge_name>,
3952         avx512dq_vmfpclass<mode>,
3953         avx512vl_vpshufbitqmb<mode><mask_scalar_merge_name>): Use =k
3954         instead of =Yk.
3956 2019-01-03  Martin Sebor  <msebor@redhat.com>
3958         PR tree-optimization/88659
3959         * calls.c (maybe_warn_nonstring_arg): Avoid assuming maxlen is set.
3961 2019-01-03  Aaron Sawdey  <acsawdey@linux.ibm.com>
3963         * config/rs6000/rs6000-string.c (expand_block_move): Don't use
3964         unaligned vsx and avoid lxvd2x/stxvd2x.
3965         (gen_lvx_v4si_move): New function.
3967 2019-01-03  Tom de Vries  <tdevries@suse.de>
3969         * config/nvptx/nvptx.c (MACH_VECTOR_LENGTH, MACH_MAX_WORKERS): Define.
3970         (init_axis_dim, nvptx_mach_max_workers, nvptx_mach_vector_length): New
3971         function.
3972         * config/nvptx/nvptx.h (struct machine_function): Add axis_dims.
3974 2019-01-03  Tom de Vries  <tdevries@suse.de>
3976         * config/nvptx/nvptx.c (struct offload_attrs): New.
3977         (populate_offload_attrs): New function.  Factor mask extraction out of
3978         nvptx_reorg.  Add extraction of dimensions.
3979         (nvptx_reorg): Use populate_offload_attrs.
3981 2019-01-03  Tom de Vries  <tdevries@suse.de>
3983         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): Add early-out
3984         cases for oacc_min_dims_p and routine_p.  Add asserts for
3985         oacc_default_dims_p and offload_region_p.
3987 2019-01-03  Tom de Vries  <tdevries@suse.de>
3989         * config/nvptx/nvptx.c (nvptx_goacc_validate_dims_1): New function,
3990         factored out of ...
3991         (nvptx_goacc_validate_dims): ... here.
3993 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
3995         PR tree-optimization/85574
3996         * tree-ssa-uncprop.c (struct equiv_hash_elt): Remove unused
3997         structure.
3998         (struct ssa_equip_hash_traits): Declare.
3999         (val_ssa_equiv): Use custom hash traits using operand_equal_p.
4001 2019-01-03  Jakub Jelinek  <jakub@redhat.com>
4003         PR debug/88644
4004         * dwarf2out.c (modified_type_die): If type is equal to sizetype,
4005         change it to qualified_type.
4007 2019-01-03  Jan Hubicka  <hubicka@ucw.cz>
4009         * ipa-utils.c (scale_ipa_profile_for_fn): Break out from ...
4010         (ipa_merge_profiles): ... here; do not ICE on thunks and aliases.
4012 2019-01-02  Martin Sebor  <msebor@redhat.com>
4013             Jeff Law  <law@redhat.com>
4015         * gimple-fold.c (strlen_range_kind): Remove SRK_LENRANGE_2.
4016         (get_range_strlen_tree): Update appropriately.
4017         (get_range_strlen)
4018         * gimple-fold.h (get_range_strlen): Drop unused last argument.
4020         * gimple-fold.c (gimple_fold_builtin_strlen): Use set_strlen_range
4021         rather than set_range_info.
4022         * tree-ssa-strlen.c (set_strlen_range): Extracted from
4023         maybe_set_strlen_range.  Handle potentially boundary crossing
4024         cases more conservatively.
4025         (maybe_set_strlen_range): Parts refactored into set_strlen_range.
4026         Call set_strlen_range.
4027         * tree-ssa-strlen.h (set_strlen_range): Add prototype.
4029         PR middle-end/88663
4030         * gimple-fold.c (get_range_strlen): Update prototype to no longer
4031         need the flexp argument.
4032         (get_range_strlen_tree): Drop flexp argument.  Drop flexp argument
4033         from calls to get_range_strlen.  Update comments.  Just update
4034         VAL for an unterminated const char array and let the reset of the
4035         code handle it normally.  No longer try to set *flexp.  Adjust
4036         return value.
4037         (get_range_strlen): Update for the new get_range_strlen API.
4038         (get_maxval_strlen): Similarly.
4039         (gimple_fold_builtin_strlen): Handle update meaning of return value
4040         from get_range_strlen.
4041         * gimple-ssa-sprintf.c (get_string_length): Update for the new
4042         get_range_strlen API.
4044 2019-01-02  Jan Hubicka  <hubicka@ucw.cz>
4046         PR lto/88130
4047         * varpool.c (varpool_node::ctor_useable_for_folding_p): Also return
4048         false at WPA time when body was removed.
4050 2019-01-02  Martin Liska  <mliska@suse.cz>
4052         PR tree-optimization/88650
4053         * predict.c (set_even_probabilities): Calculate probability
4054         remainer only when really used.
4056 2019-01-02  Richard Biener  <rguenther@suse.de>
4058         PR middle-end/88651
4059         * tree-data-ref.c (analyze_subscript_affine_affine): Use
4060         widest_ints when mangling max_stmt_execution results.
4062 2019-01-02  Richard Biener  <rguenther@suse.de>
4064         PR tree-optimization/88621
4065         * tree-ssa-loop-im.c (gather_mem_refs_stmt): Fix pastos, avoid
4066         bitfields when canoncalizing.
4068 2019-01-02  Richard Biener  <rguenther@suse.de>
4070         PR target/87545
4071         * config/i386/x86-tune-costs.h (intel_cost): Adjust
4072         cost of cheap SSE instruction.
4074 2019-01-02  Richard Biener  <rguenther@suse.de>
4076         PR ipa/85574
4077         * ipa-icf.h (sem_item_optimizer::sort_congruence_split): Declare.
4078         * ipa-icf.c (sem_item_optimizer::sort_congruence_split): New
4079         function.
4080         (sem_item_optimizer::do_congruence_step_f): Sort the congruence
4081         set after UIDs before splitting them.
4083 2019-01-01  Martin Sebor  <msebor@redhat.com>
4084             Jeff Law  <law@redhat.com>
4086         * gimple-fold.c (get_range_strlen_tree): Record if the computed
4087         length is optimistic.  If it is, then arrange to compute the
4088         conservative length as well.
4090         * gimple-fold.h (get_range_strlen): Update prototype.
4091         * builtins.c (check_access): Update call to get_range_strlen to use
4092         c_strlen_data pointer.   Change various variable accesses to instead
4093         pull data from the c_strlen_data structure.
4094         (check_strncat_sizes, expand_builtin_strncat): Likewise.
4095         * calls.c (maybe_warn_nonstring_arg): Likewise.
4096         * tree-ssa-strlen.c (maybe_diag_stxncpy_trunc): Likewise.  Reset
4097         minimum length if maximum lengh is unknown.
4098         * gimple-ssa-sprintf.c (get_string_length): Likewise.  Drop code
4099         that used c_strlen, it's no longer needed.  Restructure slightly.
4100         (format_string): Set unlikely range appropriately.
4101         * gimple-fold.c (get_range_strlen): Update comments.  Fix minor
4102         formatting issues.
4103         (get_range_strlen):  Accept c_strlen_data pointer for external
4104         call sites as well.  Pass through to call to internal get_range_strlen.
4105         Adjust minlen, maxlen and maxbound as needed.
4106         (get_maxval_strlen): Update comments.
4107         (gimple_fold_builtin_strlen):  Update call to get_range_strlen
4108         to use c_strlen_data pointer.  Change variable accesses to instead
4109         use c_strlen_data data members.
4111         * gimple-fold.c (get_range_strlen): Update prototype.
4112         (get_range_strlen_tree): Update prototype.  Drop minlen/maxlen
4113         local variables.  Use pdata to return information to caller.
4114         Update calls to get_range_strlen.  Update pdata->maxbound.
4115         (get_range_strlen -- static version): Similarly.
4116         (get_range_strlen -- extern version): Update for internal
4117         get_range_strlen API change.  Convert to external data format.
4118         (get_maxval_strlen): Similarly.
4120 2019-01-01  Jan Hubicka  <hubicka@ucw.cz>
4122         * coverage.c (get_coverage_counts): Use current_function_decl.
4123         * profile.c (read_thunk_profile): New function.
4124         (branch_prob): Add THUNK parameter.
4125         * tree-profile.c (tree_profiling): Handle thunks.
4126         * value-prof.c (init_node_map): Handle thunks.
4127         * value-prof.h (branch_prob): Upate prototype.
4128         (read_thunk_profile): Declare.
4130 2019-01-01  Jakub Jelinek  <jakub@redhat.com>
4132         Update copyright years.
4134         * gcc.c (process_command): Update copyright notice dates.
4135         * gcov-dump.c (print_version): Ditto.
4136         * gcov.c (print_version): Ditto.
4137         * gcov-tool.c (print_version): Ditto.
4138         * gengtype.c (create_file): Ditto.
4139         * doc/cpp.texi: Bump @copying's copyright year.
4140         * doc/cppinternals.texi: Ditto.
4141         * doc/gcc.texi: Ditto.
4142         * doc/gccint.texi: Ditto.
4143         * doc/gcov.texi: Ditto.
4144         * doc/install.texi: Ditto.
4145         * doc/invoke.texi: Ditto.
4147 Copyright (C) 2019 Free Software Foundation, Inc.
4149 Copying and distribution of this file, with or without modification,
4150 are permitted in any medium without royalty provided the copyright
4151 notice and this notice are preserved.