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