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